Bluebox Securityが発見したAndroidの新たな設計上の欠陥により、悪意のあるアプリがインストール時に特別な権限を要求することなく、ユーザーのデバイスを広範囲に制御することが可能になりました。この問題は、2010年以降に販売されたほぼすべてのAndroidスマートフォンに影響を及ぼします。
Blueboxはこの脆弱性を「偽ID」と呼んでいます。これは、マルウェアアプリがAndroidに偽の認証情報を渡してしまうことで、Androidがアプリの暗号署名を適切に検証できないためです。その代わりに、Androidはマルウェアが主張する正規アプリのアクセス権限をすべて不正アプリに付与してしまいます。
これは、Google が Android のさまざまな信頼できるアプリに広範な権限を付与しているため、特に深刻です。マルウェアは、これらの信頼できるアプリの 1 つを装うことで、特別な権限を必要としないアプリをインストールしているとユーザーを騙し、システムを騙してデバイスの実質的な完全な制御権をマルウェアに与え、ユーザーの財務データ、連絡先、その他の個人情報、さらにはクラウドに保存されているデータにもアクセスできるようになります。
ブルーボックス社は、この脆弱性を3ヶ月前にGoogleに報告したと述べている。同社の最高技術責任者(CTO)ジェフ・フォリスタル氏は、来週ラスベガスで開催されるセキュリティカンファレンス「BlackHat USA 2014」で、この脆弱性の発見経緯と仕組みについて講演する予定だ。
偽のIDはFlashを悪用して他のアプリに感染する可能性がある
Fake ID で偽装できる信頼できるアプリの中には Adobe Flash があります。Google は、モバイル デバイスで Flash を使うのは良くないという Steve Jobs 氏の意見が間違っていたことを証明しようとして、Android の Web ブラウザーに Adobe Flash を深く統合しました。
Google は最終的に Android 向け Flash を断念しましたが、Adobe Flash プラグインの権限昇格の脆弱性は、昨秋の Android 4.4 KitKat のリリースまで、Android の Webview (Web コンテンツを表示するサードパーティ アプリに埋め込まれるブラウザー コンポーネント) に埋め込まれたままでした。
AndroidのWebViewコンポーネントにFlashが深く統合されているため、Fake IDを使ってFlashを装うマルウェアはAndroidのアプリサンドボックスを回避し、SalesforceやMicrosoft OneDriveなどの他のアプリを制御し、それらのアプリからデータを取得し、それらのアプリのネットワークトラフィックを盗聴し、それらのアプリが持つ追加の権限を取得することができます。AmazonのFire OSや中国で使用されているさまざまなパッケージを含むAndroidオープンソースプロジェクトのフォークもFake IDの影響を受けます。
Google は昨秋、Android の WebView Flash の脆弱性を 4.4 KitKat から削除しましたが、7 月 7 日時点で、新しいバージョンをインストールしたユーザーは 18% 未満であると報告しています。
残りの 82 パーセントは、モバイル通信事業者やメーカーがアップデートの提供を遅らせたり、提供しないことを選択するというよく知られた問題のために、アップデートできないことがよくあります。
Google自身も、Galaxy Nexusの発売から2年未満であるにもかかわらず、購入者にKitKatアップデートを提供する価値がないと判断しました。Google Play以外では、AmazonのFire OSや中国で使用されている様々なパッケージを含むAndroid Open Source Projectのフォークも、Fake IDの影響を受けやすいです。
フラッシュは不要:偽のIDでもNFCを偽装できる
Google は Android に広範な Flash 権限を組み込んでいるほか、NFC 決済データに結び付けられた独自の Google Wallet のサポートも Android に組み込んでいます。
インストール時にユーザーに特別な権限を求めないマルウェア アプリは、Fake ID を使用することで、その後 Google Wallet アプリになりすますことができます。Android は、ユーザーの財務データを含む、独自の NFC インフラストラクチャに付与したすべての権限を不正アプリに付与します。
もう一つの悪用経路は、GoogleがMotorolaを買収した際に継承した(後に放棄された)MDM(モバイルデバイス管理)パッケージである3LMです。しかし、Blueboxは、「HTC、Pantech、Sharp、Sony Ericsson、Motorolaの様々なデバイス」にAndroid 3LMコードが組み込まれており、Fake IDによって「マルウェアによるデバイスの部分的または完全な侵害」が可能になると指摘しています。
偽のIDにより、どんなアプリでもどんなアプリのふりをすることができる
Blueboxはさらに、「アプリケーションの認証に特定の署名の存在を前提とする他のデバイスやアプリケーションも、この脆弱性の影響を受ける可能性があります。基本的に、Androidアプリケーションの検証済み署名チェーンに依存するものはすべて、この脆弱性の影響を受けます」と述べています。
Wallet、3LM、その他のアプリはFlash / Android WebViewの脆弱性に依存していないため、これらの攻撃ベクトルはKitKatでは修正されていません。つまり、Fake IDは最新のAndroid 4.4.4と次期「Android L」(Android 5.0ベータ版)を含むすべてのバージョンのAndroidに影響します。Fake IDは最新のAndroid 4.4.4と次期「Android L」を含むすべてのバージョンのAndroidに影響します。
Google は Fake ID 用のパッチを開発すると予想されており、キャリアやハードウェア ベンダーからタイムリーなアップデートが提供されない可能性が高い大多数の Android ユーザーを悪用しようとするマルウェアからユーザーを保護するために、Google Play でマルウェアのスキャンを試みる可能性があります。
しかし、それでも、Amazon や、Google が Android をほとんど管理していない中国を含む海外で運営されているさまざまなストアなど、他のアプリ マーケットからアプリをインストールする「サイドローディング」方式は、依然として広く採用されています。
AppleのiOSアプリ署名のように、検証部分を除いたもの
Android アプリは、2008 年に導入された Apple の iOS と同様に、開発者のデジタル証明書を使用して署名されます。
アプリが暗号署名されると、システムによって本物であると検証されます。その後の改ざん(悪意のあるウイルス コードの追加など)により署名が破壊され、システムがアプリの実行を拒否できるようになります。
しかし、Blueboxは「Androidパッケージインストーラは証明書チェーンの信頼性を検証しようとしない。つまり、あるIDが別のIDによって発行されたと主張することができ、Androidの暗号コードはその主張を検証しない(通常は発行者の公開証明書に対して子証明書の発行者署名を検証することで行われる)」ことを発見した。「Androidパッケージインストーラは証明書チェーンの信頼性を検証しようとしない」 - Bluebox
たとえば、攻撃者は新しいデジタル ID 証明書を作成し、その ID 証明書が Adobe Systems によって発行されたという主張を偽造し、悪意のある ID 証明書と Adobe Systems 証明書を含む証明書チェーンを使用してアプリケーションに署名することができます。
Android パッケージインストーラはインストール時に、悪意のある ID 証明書のクレームを検証せず、両方の証明書を含むパッケージ署名を作成します。これにより、Webview プラグインマネージャ内の証明書チェックコード(Adobe 証明書のチェーンを明示的にチェックする)が欺かれ、Adobe Systems に付与されている特別な Webview プラグイン権限がアプリケーションに付与されてしまいます。その結果、サンドボックスが回避され、Webview プラグインの形で他のアプリケーションに悪意のあるコードが挿入される可能性があります。
同社はさらに、「AOSP [Android Open Source Project] JarUtilsクラスのcreateChain()関数とfindCert()関数を実際に確認してみてください。発行者証明書のクレームに対する暗号検証が全く行われておらず、代わりにsubjectDNとissuerDNの単純な文字列マッチングがデフォルトで行われていることが分かります。Adobe Systemsのハードコードされた証明書の例は、AOSP WebkitのPluginManagerクラスにあります」と付け加えた。
さらに別の複雑な問題もあります。「Androidアプリケーションには複数の署名者が署名できる(各署名者がアプリケーションの同じ部分に署名する限り)という事実によって、問題はさらに複雑になります」とBlueboxは指摘しています。
「これにより、ハッカーは、複数の偽のIDを同時に持つ単一の悪意のあるアプリケーションを作成し、複数の署名検証権限の機会を利用してサンドボックスを回避し、安全な支払いに使用されるNFCハードウェアにアクセスし、デバイスのユーザーにプロンプトや通知を提供せずにデバイスの管理制御を取得できます。」
偽のIDは、2月にAppleのiOSとOS Xに影響を与えることが発見されたSSLの欠陥といくつかの類似点がある。どちらの場合も、暗号化チェーンがバイパスされ、データへの悪意のあるアクセスが可能になる可能性がある。
AppleのSSL脆弱性を悪用するには、攻撃者が共有ネットワークへのアクセスと、ユーザーが実際に送信している暗号化トラフィックの種類に一致する偽造証明書を作成できる必要があります。偽IDを使用するアプリは大量生産され、無害なゲームや無料のセキュリティツールとしてAndroidユーザーに配布されるため、わずかな労力で被害者を見つけて悪用することがはるかに容易になります。
AndroidはWindowsによく似ている
昨年の夏、フォリスタル氏はAndroidで同様のセキュリティ欠陥を発見した。Blueboxはこれを「マスターキー」と名付けたが、この欠陥により、署名を破ることなくアプリのコードを変更することが可能になった。
この脆弱性はその後1ヶ月以内にマルウェア作成者によって悪用されたが、「マルウェアがステルス的に利用するのは困難」だとフォリスタル氏はAppleInsiderのブリーフィングで述べた。「Androidマルウェアのエコシステムは、Windowsを取り巻くエコシステムに似てきています」 - F-Secure Labs
一方、偽IDはユーザーの介入を必要とせず、特別な権限を要求しない無害なアプリやゲームを装ったマルウェアによって悪用される可能性があります。インストールされると、アプリはユーザーが感染していることに気付かないまま、不正に操作を行う可能性があります。
マルウェアは2012年にAndroid向けに急速に進化し始めたが、F-Secure Labsの研究者が2013年初頭に指摘したように、昨年は「高度に専門化されたサプライヤー」がAndroidプラットフォームの脆弱性を特に狙った「コモディティ化されたマルウェアサービスを提供」し始めたため、マルウェアはさらに洗練され、影響範囲が拡大した。
「Androidマルウェアのエコシステムは、Windowsを取り巻くエコシステムに似てきている」と同社は指摘した。9月までに、Duo Securityは「Androidデバイスの半数以上が、既知のAndroidセキュリティ欠陥の少なくとも1つに対して脆弱である」と発表した。
シマンテックは4月に、モバイルマルウェア作成者が「ほぼ独占的に」Androidに焦点を合わせていると報告した。
今年初め、わずか 300 ドルで購入できる安価な「Android RAT」、つまりリモート管理ツール パッケージが登場し始めました。
このRATは、オリジナルまたは盗まれたAndroidアプリにマルウェアペイロードを追加し、悪意のあるコードを隠蔽して、Google Playに送信されたアプリ内のマルウェアコードを検出するために使用されるGoogleのBouncerスキャンプロセスによる検出を回避するように設計されています。
iOSとAndroidのセキュリティに対する異なるアプローチ
AppleとGoogleは、モバイルソフトウェアの設計において大きく異なるアプローチを表明しています。今年初め、AppleはiOSのセキュリティに関するホワイトペーパーを公開し、「可能な限り最高のモバイルOSの開発に着手した際、数十年にわたる経験を活かし、全く新しいアーキテクチャを構築しました」と述べています。
デスクトップ環境のセキュリティリスクを考慮し、iOSの設計においてセキュリティへの新たなアプローチを確立しました。モバイルセキュリティを強化し、システム全体をデフォルトで保護する革新的な機能を開発・実装しました。その結果、iOSはOSセキュリティにおける大きな飛躍を遂げました。
その結果、Apple は企業や政府機関のユーザーの間で急速に普及したが、Google はそうではなかった。
今月初め、Apple と IBM は、iOS 専用の新しいビジネス アプリ スイートを通じて企業における Apple 製品をさらに推進するための提携を発表しました。