LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック

メールマガジン

サイバーセキュリティや
ラックに関する情報をお届けします。

サービス・製品 | 

あなたの開発したアプリに思わぬ落とし穴?今、アプリ開発に欠かせない重要なポイントとは

いまや世の中のネットサービスは、スマホアプリで利用できることが当たり前の時代。簡単にハイブリッドアプリが開発できる環境も整い、日々多様なアプリが大量にリリースされています。
ところが、アプリ開発が簡単になった反面、困ったことも起きていると言います。それは、アプリのセキュリティの問題です。

Androidアプリ脆弱性診断ツール

Secure Coding Checker

ラックは、2020年8月20日、アシアル株式会社が提供する、アプリ開発プラットフォーム「Monaca」に、ラックのアプリ診断ツール「Secure Coding Checker®」(以下、「SCC」)を機能連携させることを発表しました。

ラック、モバイルアプリのセキュリティソリューション提供でアシアル社と協業

Androidアプリ脆弱性診断ツール

Secure Coding Checker

今回は、利用者25万人を抱える「Monaca」の開発者である、アシアルの渡辺さんを迎え、このアプリ開発におけるセキュリティの問題についてお話を聞かせていただこうと思います。

対談メンバー

渡辺 卓弥

渡辺 卓弥
アシアル株式会社
Monaca開発エンジニア / マネージャー

SI企業にて金融系システムの開発を経験。アシアルに入社後、本格的にプログラミングをスタート。サーバーサイドからフロントエンド、マーケティング関係まで幅広く業務に携わる。

安田 良明

安田 良明
株式会社ラック
セキュリティソリューション企画開発部 担当部長

Secure Coding Checkerのプロダクトマネージャー。社外では(ISC)²、一般社団法人 日本情報システムユーザー協会(JUAS)で情報セキュリティ人材育成の講師に従事。

山本 和輝(進行役)
株式会社ラック CC・IR室室長

ラックの広報やマーケティング活動を担う。社外ではフィッシング対策協議会、SPREADセキュリティ対策推進協議会などで、セキュリティ啓発活動にも従事。


(山本)いま世の中では、スマートフォンの普及拡大によって、アプリ開発のニーズが非常に高まっていると思います。「Monaca」というアプリ開発プラットフォームを提供されているアシアルさんから見て、アプリ開発のやり方はどのように変化しているのでしょうか?

さらに詳しく知るにはこちら

Monaca - すべての人にアプリ開発を

 渡辺  アシアルが「Monaca」を提供し始めたのが今から7年前になります。当時、AndroidアプリはJava、iOSアプリはObjective-Cが使われていて、ハイブリッドというカテゴリーは主流ではありませんでした。しかし、最近ではAndroid、iOSのアプリをもっと簡単に、同時に作りたいというニーズが高まっており、ハイブリッドの開発ツールが主流になっています。

さらに詳しく知るにはこちら

Monaca - すべての人にアプリ開発を

「Monaca」ではApache Cordovaというオープンソースモバイル開発フレームワークを使っているのですが、他にもいくつものハイブリッドのアプリ開発ツールが出てきています。

(山本)なるほど、Android、iOSのアプリが一つの開発で作れると便利ですね。しかし、OS自体も機能追加や脆弱性のアップデートが行なわれることもあるかと思います。動作面で問題になることは無いのでしょうか?

 渡辺  そうですね。アプリが簡単に作れるようになっている一方で、このようなハイブリッド開発ツールというのは、ネイティブのプログラミング言語の上にもう一つレイヤーが重なってしまう構造になります。

例えば、アプリにネイティブ機能を追加する際には、プラグインを追加し、JavaScript経由でネイティブ機能(カメラやGPSなど)を呼び出して利用します。

コーディング

機能の追加は、プラグインを追加することで簡単にできる一方で、プラグインの中身については、ネイティブのコードで記述されているため、セキュリティ的な観点で見ることは、なかなか難しいのが現状だと思います。もちろんそこをカバーできる知識、スキルを持った開発者の方も居るとは思いますが、ネイティブの開発を行う人と同じレベルでキャッチアップするのは難しいと思います。

(山本)セキュリティに関して、具体的に出てきている問題はあるのでしょうか?

 安田  Androidアプリですと、自分で作ったアプリを他にインストールしているアプリから勝手に操作されてしまうといった事例が一番多いですね。他のアプリを経由して、メッセージを送られてしまう、画像を見られ投稿される、データを削除されるなども起こります。

通常、アプリとアプリの間でアクセス制御を行うことが必要なのですが、Android OSの場合はOSが自動的に行ってはくれない。だから、アプリ開発者が自分でどういったことができるのか制御しなくてはならないのですが、アプリの設計段階でそこが抜け落ちてしまうんです。

(山本)開発者自身がそのようなセキュリティ面の知識を習得していくのは難しいのでしょうか?

 安田  はい、セキュリティに関してはOSやモバイル機器が新しくなるに従って、新たな問題やチェックすべきポイントも増加していきます。そういったこともあり、ラックが発起人となっている、日本スマートフォンセキュリティ協会では、スマホアプリの開発ガイドラインを策定し、毎年更新してきているわけです。

ラックが提供する「SCC」は、そのガイドラインに沿って、開発したAndroidアプリを自動的にチェックして、知識が無くても修正点を指摘してくれる便利なツールです。「SCC」では、良いコードの書き方について、一定の基準があって、それを逸脱していれば何かしら違反の判定が出る仕組みになっています。

(山本)判定というのは、具体的にどのような感じでユーザーに知らせるのでしょうか?

 安田  例えば先ほどの、トラブル事例ですと、自分のアプリの機能をアクセス保護していなかった場合に「他のアプリから読み取られてしまいますが大丈夫ですか?」といったことを違反の項目として知らせてくれ、それが設計として意図しているのか、意図していないのかを確認するよう促します。

他のアプリからの連携と操作を意図しているのであれば問題ありません。しかし「自分たちはこんなことは考えていなかった」といったことがあれば、ガイドラインに沿って制御を追加する修正を加えれば良いわけです。

(山本)そうすると、今回の「Monaca」と「SCC」の連携は、必然性があったのですね。

 渡辺  ハイブリッドアプリかどうかに関わらず、明確なセキュリティの基準の有無は、とても重要だと思います。事実、アプリ開発を依頼した先によってその基準が違っていることもあります。「Monaca」を利用する開発者の皆さんには「SCC」を利用してもらうことで、一つの明確な基準が提供できたらいいなと考えています。

昔インターネットの普及が始まったころ、HTMLというWebの標準技術で誰にでもホームページを簡単に作れるということが、インターネットのスタートだったと思います。そこに様々な機能が付加され高度化、複雑化していくなかで、Webサイトの安全性を確保していかなくてはならなくなってきた。

今、アプリ開発もどんどん簡単になっていく中で、同じように安全に使うという観点が加わっていく必要があると思っています。その安全基準というものを、ラックさんの協力を得てアプリ開発の中に取り込んでいきたいと思っています。

(山本)ところで「Monaca」を使って開発されたハイブリッドアプリというのは、具体的にどのようなものがあるのでしょうか?

 渡辺  わかりやすいところでは、大手金融機関のアプリで株取引を行うものや残高確認アプリなどでしょうか?金融系事業者さんのサービスにはご利用いただいています。

(山本)金融系はアプリ本体だけでなく、認証などバックエンドのシステムとの通信にも安全性が求められますね。他には、どんな事例がありますか?

 渡辺  エレベーター・エスカレーターメーカー様の事例は、アプリ内製化を実現した特徴的な事例の一つです。社内の開発効率や生産性を向上させるための、出勤簿など社内業務システムを利用できるスマホアプリを作られています。

(山本)商用のWebサービスだけでなく、社内システムにもアプリ開発が手軽に用いられるようになっているのですね。そのような社内システムであっても、やはりアプリに脆弱性があっては問題が生じる。だから、アプリ開発プラットフォーム自体に、簡単にセキュリティ診断が行なえる機能が必要ということなのですね。

それでは、最後に、アシアルさんとして「Monaca」の将来の方向性、目標などについてお聞かせいただけないでしょうか?

 渡辺  「Monaca」は、最初は個人の開発者、趣味の開発者に利用されていましたが、最近はビジネスで利用されるお客様が非常に多くなっています。商用のサービスから、社内の業務システムまで、あらゆる側面でビジネスを支えるアプリ開発プラットフォームになっていければと考えています。

(山本)ありがとうございます。では、ラックとしては、アプリ開発という分野においてどのようなことができるのか、お聞かせいただけないでしょうか?

 安田  ラックとしては、Webアプリケーションのセキュリティ診断を約25年やってきているので、「Monaca」はフロントのアプリを素早く作ってもらう役割、ラックはバックエンド側で接続する環境を安全に保っていくという役割で協力していけると思います。アシアルさんと一緒に、フロントエンドから、バックエンドまでシームレスにセキュリティ環境を維持するために、強力なサポートを提供できると考えています。また、アプリの診断機能もAndroidから始めていき、OWASPなどのガイドラインへの対応にもチャレンジできればと考えています。

オンラインで対談する3人
オンラインで対談する3人

まとめ

アプリ開発は、最近「ノーコード」「ローコード」などとも言われ、開発者の利便性がさらに進んでいくと思います。ただその利便性と相反して、見えないところでちょっとしたアプリ制御の設定ミスで、攻撃を受けてしまうリスクにもつながる。

「便利なアプリ開発ツールには、便利なアプリ診断ツールを組み合わせて使う」

ということが、今後のアプリ開発者のスタンダードになっていくのではないでしょうか。

より詳しく知るにはこちら

より詳しく知るにはこちら

Secure Coding Checkerは、Androidアプリの開発者、発注者それぞれのニーズに合った使いやすい機能を備えた、Webベースの脆弱性検査サービスです。

この記事は役に立ちましたか?

はい いいえ