トレンドマイクロは、2014年3月16日、Google のセキュリティ対策基盤である「Bouncer」に影響する 、Androidシステムにおけるクラッシュを引き起こす脆弱性に関する記事を確認しました。この脆弱性は、Android OS 4.0 以上を搭載したモバイル機器にも影響を与えます。弊社は、Android を搭載したスマートフォンおよびタブレットに深刻な被害を与えようと、サイバー犯罪者によってこの脆弱性が利用される可能性があると予想しています。この脆弱性を持つ端末は、リブートの無限ループ、またはブートループに入ります。これにより、端末がまったく反応しなくなる「文鎮化」の状態となります。
■どのように脆弱性を利用するか
弊社の解析により、最初のクラッシュは、「WindowManager」内のメモリ破損によって引き起こされたことを確認しています。WindowManager は、アプリが任意の画面の、ウインドウの外観や配置を制御するのに使われるインターフェイスです。Windows のウインドウタイトルに相当するラベル「Activity」内に、大量のデータが入力されました。
サイバー犯罪者が Activity を非表示にした大きなラベルを含むアプリを作成した場合、ユーザは、この脆弱性の利用が実際どこで起きているのかまったくわかりません。サイバー犯罪者は、現在のアプリの動作を止め、非表示の Activity を開くタイムイベントを設定することで脆弱性の利用をさらに隠ぺいすることができます。このタイムイベントが作動するとエクスプロイトコードが実行され、結果的にシステムサーバがクラッシュします。これにより、モバイル端末のすべての機能が停止し、システムが強制的に再起動します。
さらに深刻な事例は、端末の起動時に自動的に不正プログラムが実行されるように設計されている場合です。端末がリブートのループから抜け出せなくなり、使用不可能になります。この状態では、「boot loader recovery fix」以外は実行できません。つまり、連絡先、写真、ファイルといった端末内に保存してあるすべての情報が消去されます。
■一連のサービスをクラッシュさせるバグを確認
弊社のさらなる調査により、WindowManagerサービスだけでなく、PackageManager および ActivityManager も同様のクラッシュを引き起こす脆弱性の影響を受けやすいことを確認しました。ここでの決定的な違いは、不正なエクスプロイトコードの含まれたアプリがインストールされるとユーザの端末は即座にクラッシュします。ここで留意すべきは、この事例で不正なエクスプロイトコードの含まれたアプリは、特別な許可を必要としないということです。
“AndroidManifest.xml” では、アプリのラベル名は、要素の属性「android:label」内に設定することができ、文字列リソースの参照だけでなく、raw文字列で記述することができます。通常、”AndroidManifest.xml”内で宣言される非常に長い raw文字列のラベルを持つアプリは、Android の「binder」のトランザクション・バッファ・サイズ制限により、インストールすることができません。しかし、多くの第三者マーケットクライアントで使われるインターフェイス「Android Debug Bridge(ADB)」を通すことで、上述のアプリをインストールすることができます。つまり、必然的に PackageManager サービスは、即時にクラッシュすることになります。
連鎖反応で、PackageManager に依存する他のすべてのプロセスがクラッシュし、Android端末は完全に使用不能となります。図2 は、クラッシュしたサービス(「Launcher」および「android.process.acore」)の通知メッセージです。
Binder のトランザクションでの持続的なエラーにより、システムサービス「ActivityManager」も影響を受けます。これは、Binder のドライバクラッシュにつながる可能性があり、結果的に端末の自動リブートを引き起こします。現時点では、ユーザには、すべての保存してあるデータが消去される危険性を覚悟して、工場出荷状態に戻す以外の手段はありません。
■ユーザはどう対処すべきか
弊社が常に助言しているように、運営者の不明な第三者のアプリストアからは決してアプリをダウンロードしないでください。不審な第三者アプリストアのアプリについては、常に疑いの目を持ち、簡単に信用しないことが重要です。サイバー犯罪者は、Android端末を隈なく調べ、攻撃の機会を絶えずうかがっています。Google は、すでにこの脆弱性について報告を受けていますが、ユーザは自身のモバイル端末を守るため、引き続き必要な予防措置を取ることが推奨されます。
ADB の使用に精通している開発者は、これを使うことで、問題になっている疑わしいアプリを削除することもできます。
弊社は、この問題について Google の Android セキュリティチームに報告しています。
参考記事:
by Veo Zhang (Mobile Threats Analyst)
翻訳:木内 牧(Core Technology Marketing, TrendLabs)