Androidのバグを悪用することで署名済みアプリに悪意のコードを埋め込めてしまう脆弱性が修正!

Googleは4日(現地時間)、同社が開発するスマートフォン(スマホ)やタブレットなど向けプラットフォーム「Android」における2017年12月度のセキュリティーパッチを提供開始したとお知らせしています。

すでにAndroidのオープンソース版「AOSP(Android Open Source Project)」のほか、Googleブランドの「Nexus 6P」や「Nexus 5X」、「Nexus Player」、「Pixel」シリーズ向けには順次OTAも配信開始されおり、ファクトリーイメージも公開されています。

これにより、40件の脆弱性が修正され、その中には署名済みの信頼できるアプリに悪意のあるコードを埋め込める脆弱性、通称「Janus」が含まれていました。Janusは、今回修正された脆弱性の中でも一番タチが悪く、非常に大きなセキュリティーインシデントを発生させる原因となるものでした。

spyware-2319403_1280

Janusは、攻撃者がAPKファイルに対して、悪質なDEX(Dalvik Executable:単一のAPKファイルに圧縮されたAndroidプログラム内のコードを構成する)ファイルをAPKファイルの署名に影響を当たることなく挿入できてしまう脆弱性です。

この脆弱性はGuardSquareのCTOを務めるEric Lafortne氏によって今年初めに発見された脆弱性(CVE-2017-13156)で、Googleには今年の7月に報告していました。

悪用するとアプリ配信マーケット「Google Playストア」などで評判の良いアプリに悪意のあるコードを埋め込ませることによって「検証済みのアプリだからインストールしても大丈夫」とユーザーに誤認させマルウェアを感染させることができてしまいます。

署名済みの信頼されたAPKファイルであればどれでも良いため、オンラインバンキングアプリやSNSクライアント、システムユーティリティーアプリに混入させ、感染者数を莫大なスピードで増やせるケースが想定できるとLafortne氏は説明しているようです。

この脆弱性で混入されたDEXファイルは、アプリと同じシステム権限を持つため、オンラインバンキングのログインIDとパスワードや、Twitterのダイレクトメッセージなどが傍受されることもできてしまいます。

car-accident-337764_1280

今回の脆弱性はAndroid 7.0(開発コード名:Nougat)より古いバージョンでかつ、APK署名スキームv1をサポートしているすべてのAndroid搭載製品が影響を受けます。そのため、2016年7月に導入されたAPK署名スキームv2をサポートするように更新されたAndroid搭載製品であれば、この脆弱性の影響を受けることはありません。

本来APKファイルへの署名は、APKファイルの完全性を強化し、不正に改ざんされることを防ぐことを目的として導入されているだけに、今回の脆弱性はその根幹を揺るがしかねません。ユーザーにとってもAPKファイルの署名の信頼性が下がってしまうと、何を持って信頼済みで安心できるアプリであるか、何を信用してインストールするアプリを選べば良いのか分からなくなってしまいます。

2016年7月に導入されたAPK署名スキームv2をサポートするように更新された機種であれば、今回の脆弱性の影響を受けませんが、必ずしも新しい機種を使っているわけではありませんし、機種への更新パッチを提供するメーカーの対応もまちまちなため、ユーザー自身で今すぐ解決できない問題が山積しています。

このような脆弱性がなくなればどれだけ良いことか、と思いますが世の中に100%脆弱性が存在しない、100%欠陥が存在しない、100%安全な物などこの世に存在しないので、こればかりは何を言っても仕方ありませんね。

記事執筆:YUKITO KATO


■関連リンク
エスマックス(S-MAX)
エスマックス(S-MAX) smaxjp on Twitter
S-MAX - Facebookページ
Android Security Bulletin—December 2017  |  Android Open Source Project
Google Developers Japan: Android Studio 2.2 の APK パッケージングを理解する