先日、モバイルのWebブラウザでいくつかの脆弱性が発見されました。これらの脅威は、Android(Google)、WebOS(Palm)、iOS(Apple)といった複数のスマートフォンプラットフォームに対し、既に影響を及ぼしています。3つのプラットフォームはすべて、独自のアプリケーションと環境を有していますが、興味深いことに、これらの脆弱性はモバイルブラウザという同じ侵入口によるものです。今回はその3つのプラットフォームで発見された、脆弱性について解説します。
Android:データの盗み出し
セキュリティ研究者であるThomas Cannon氏が発見したAndroidの脆弱性を利用することで、SDカードからデータを盗み出すことができます。彼が公開したコンセプト実証サイトは、JavaScriptを含むHTMLファイルを携帯電話にダウンロードして実行します。その後、このローカルでロードされたファイルがSDカードに保存されているファイルにアクセスします。攻撃者のサイトは、JavaScriptを呼び出し、既知のパスを使ってファイルをアップロードできます。
この脆弱性の鍵は、ローカルでロードされたHTMLファイルは、Webからロードされたページよりも少ない制限で、ブラウザ内で実行されるということです。アクセス可能なのは、ブラウザがアクセスできるフォルダだけで、携帯電話全体にはアクセスできません。複数のアプリケーションが既知のパスでSDカードにデータを保存しており、これらはすべて攻撃者に利用される危険性があります。
この脆弱性による影響を防ぐため、ブラウザのJavaScriptをオフにすることが推奨されていますが、JavaScriptをオフにするとWebアプリケーションが破損し、ブラウザの全体的な実用性が低下してしまいます。
WebOS:XSSとモバイルボットネット
セキュリティコンサルタント会社であるSecTheoryの研究者、Orlando Barrera氏とDaniel Herrera氏は、Palm PreのWebOS(バージョン1.4~2.0)で複数のバグを発見しました。WebOSは、Appleがネイティブアプリケーションを許可する前のiOSに似ており、Palm PreのアプリケーションはすべてWebアプリケーションです。
Barrera氏らは、クロスサイトスクリプティング(XSS)の欠陥、浮動小数点オーバーフローのバグ、サービス拒否の脆弱性を発見しました。XSSの欠陥は連絡先アプリケーションにあり、アプリケーションのシンクウィンドウのフィールドがデータをサニタイズしないため、彼らは連絡先データベース(メールアドレス、メール、連絡先などを含む)にアクセスできるコードを挿入できました。また、データを攻撃者に送信するキーロガーとメソッドを実装することもできました。彼らは、Palm Preデバイスにボットネットを実装するための基本的な枠組みを構築しました。
Palmは、その後リリースされたWebOS 2.0でXSSの脆弱性を修正しましたが、他の2つの欠陥はまだ修正されていません。
iOS:サイトの偽装/フィッシング
最後に、セキュリティ研究者のNitesh Dhanjani氏が、iPhoneのSafariでのWebサイト偽装の可能性を指摘した件を紹介します。Safariでは、サイトが完全にロードされると、アドレスバーが非表示になります。攻撃者はこれを利用して、自分たちのサイトではなく、オンラインバンキング、あるいはオンラインショッピングサイトのアドレスが記載された独自のアドレスバーを表示できます。Dhanjani氏は、バンキングサイトを装ったiPhoneのコンセプト実証サイトを公開しています。
オリジナルのアドレスバーを表示するには、ページを上にスクロールする必要があります。
コンセプト実証サイトの警告文がなければ、疑いを持たないユーザーは簡単にフィッシング詐欺に引っ掛かることでしょう。
この脆弱性の問題は、Androidのブラウザと異なり、Safariがフィッシング攻撃の可能性を示す手掛かりを取り除いているという点です。アドレスバーがないという特徴のため、ネイティブアプリケーションとほぼ同じ没入型のWebアプリケーションになりますが、このことを攻撃者に利用されてしまうのです。
修正プログラムは完全な解決策か
このような脆弱性のいくつかは既に修正されていますが、影響を受けるすべてのデバイスの安全が確保されたわけではありません。組み込みシステムや携帯電話の脆弱性を修正するのは、PCの脆弱性を修正するほど簡単ではありません。修正プログラムがワイヤレスで配信され、帯域幅、送信時間、デバイスの停止にコストがかかるため、頻繁なアップデートには反対の声があります。また、これらのアップデートでは、影響を受けるすべてのデバイスでテストや品質保証が行われるわけではありません。その結果、「CVS、SVNなどで脆弱性を修正する」ことになり、開発者がプロジェクトのソースコードではバグを修正しているのに、現在コンパイルされているプログラムには修正プログラムが届かないという状況が発生します。
ほとんどのシステムソフトウェアとアプリケーションがファームウェアに組み込まれている携帯電話と異なり、スマートフォンは、簡単に書き込めるストレージにインストールされる傾向があります。また、ブラウザにバグがあった場合も、携帯電話のようにファームウェアをリフレッシュする必要はなく、小さな署名付きアップデートで修正することが可能です。その他、アプリケーションと潜在的な攻撃ベクトルの間に薄いファームウェア/IDS層を配置する動きも見られます。モバイルアプリケーションで発見される脆弱性が増えれば、このようにターゲットを絞った小さな修正プログラムが当たり前になるかもしれません。
関連記事
- [2012/11/21] モバイル犯罪は割に合わない
- [2012/11/19] モバイルから個人情報が漏れないように
- [2011/01/11] 携帯電話ネットワークを所有するモバイルボット
- [2010/12/20] モバイルセキュリティとその管理
- [2010/08/20] モバイルのセキュリティ-3:Androidのセキュリティ
- [2010/08/06] モバイルのセキュリティ-2:必要な対策
- [2010/07/01] モバイルのセキュリティ-1:取り巻く脅威
※本ページの内容はMcAfee Blogの抄訳です。
原文:Mobile Browsers: Trouble Comes in Threes