2012年01月20日 18時30分 UPDATE
特集/連載

アプリに暗号鍵をハードコーディングAndroidアプリの40%が欠陥品!? 原因は安易な開発姿勢

米企業がモバイルアプリを分析調査したところ、Androidアプリの40%から「深刻な問題を引き起こしかねない」問題が見つかった。解決にはアプリ開発者の意識改革が必要だ。

[Robert Westervelt,TechTarget]

 Android搭載端末向けのアプリケーション(アプリ)を開発しているモバイル開発者は、企業の開発者と同じ過ちを多数犯している。そしてそのコードの出来の悪さにより、暗号などのセキュリティ機能の効果を帳消しにしているかもしれない──。そんな実態が最新の調査で明らかになった。こうした欠陥のあるアプリがAndroidの脆弱性と組み合わさると、攻撃者にとって格好の標的になりかねないことも分かった。

 セキュリティ診断を手掛ける米Veracodeがモバイルアプリの分析調査を実施した結果、Androidアプリの40%に少なくとも1件のハードコーディングされた暗号鍵が見つかった。同社共同創業者のクリス・ワイソパルCTO(最高技術責任者)によると、アプリの全ユーザーに同じ暗号鍵を付与するこの行為は、組織内の全員が自分のデータを保護するために同じパスワードを使っているのに等しい。Androidアプリは簡単に逆コンパイルできるため、攻撃者がハードコーディングされた暗号鍵を取り出して公開することも簡単にできてしまうという。

 「Android搭載端末を紛失した場合、攻撃者がアプリにアクセスできてしまい、その組織の全員がアクセスできる全データにアクセスされる恐れがある」とワイソパル氏は解説する。

 Veracodeが調べたのは、主に金融機関や医療関連企業の従業員が使う企業向けのAndroidアプリだった。ワイソパル氏によれば、開発者はアプリ開発を容易にする目的で暗号鍵をハードコーディングしているという。

 ワイソパル氏はこう続ける。「開発者は、モバイルアプリ開発に移行する際に認証システムを開発し直すことを好まない」

 暗号鍵のハードコーディングは、サーバサイドで実行するWebアプリでは一般的だ。この場合、サーバはバックエンドのデータソースに対して認証を行う。Webサーバにアクセスできるのはそのサーバの管理者のみであり、攻撃者に暗号鍵を取得されるリスクは極めて低い。これに対し、「モバイルでは誰もがその中にある鍵を使ってソフトウェアにアクセスできる」とワイソパル氏は指摘する。

 同氏によると、モバイルアプリ開発のためのツールやフレームワークは成熟度が低く、モバイルアプリにはコーディングエラーが多い。モバイルアプリを専門に手掛ける企業は大量の仕事を請け負っている。というのも、ほとんどの組織の開発チームはJ2EE、Java、.NET Webアプリ開発のスキルは高くても、モバイルアプリのスキルは高くないからだ。モバイルアプリは組織外で、しかもずっと速いペースで開発されていると同氏は言う。

 「われわれの顧客の中にはモバイルアプリを2週間で開発したというところもある。この種の開発作業においてセキュリティがおろそかにされている実態がここからうかがえる」(ワイソパル氏)

 同氏は、モバイルプラットフォームのリスクとそれがどう攻撃されるかについて、組織はようやく理解し始めたところだと語った。Webアプリの場合、大きな問題となる脆弱性が理解されるまでに約5年を要した。SQLインジェクションとクロスサイトスクリプティングの脆弱性は今もWebアプリを脅かし続けている。

 「こうした攻撃がモバイルにおいてどのように発生し、どうしたらそれを防げるのかについて理解するまでには数年かかるだろう。ただし、どのような攻撃に遭うかは分からなくても、モバイルアプリ開発において慎重を期すことはできる」とワイソパル氏。

 Veracodeによると、暗号鍵のハードコーディング以外にモバイル端末に問題を引き起こすコーディングエラーとして、重要情報の漏えいや危険なデータ保存、危険なデータ転送などが挙げられる。また、機能面でも問題を誘発しかねない。例えばコードの出来が悪いアプリは攻撃者に改ざんされ、行動の監視や無許可のメッセージ送信などに利用される恐れがある。

 プラットフォームに組み込まれたセキュリティ機能(コード署名、サンドボックス、パーミッション通知)は、ソフトウェア開発者がうまく使えばセキュリティの大幅な強化につながるとワイソパル氏は言う。コード署名ではアプリが正規の開発元のものであることをユーザーが確認でき、サンドボックスはアプリを重要なプロセスから隔離する。パーミッション通知では、アプリが位置情報やメッセージングなどのデータソースにアクセスしようとするとユーザーに警告を出す。

 いずれのセキュリティ機能にも弱点はあるものの、手始めにはなる。ワイソパル氏は「こうしたものの多くは概念としては優れている。だが優れた強制の枠組みがないため実地ではうまくいっていない」と話している。

この記事を読んだ人にお薦めのホワイトペーパー

この記事を読んだ人にお薦めの関連記事