Janus の脆弱性により、攻撃者は署名に影響を与えることなくアプリを変更できます。 この問題は GuardSquare によって発見され、Google によって修正されました。
Android は膨大な数のデバイスにインストールされているため、悪意のある攻撃者の標的となっています。 Google のモバイル オペレーティング システムの脆弱性は毎月発見され続けていますが、良いニュースは、Google が 通常、定期的なセキュリティ パッチで問題を修正することに熱心で、それが OEM に提供され、OEM がそれを出荷します。 デバイス。
最近、セキュリティ研究者が脆弱性を発見しました ユーザーをだまして攻撃者がデバイスの画面を録画できるようにする. この特定のエクスプロイトは Android Oreo で修正されましたが、アナリストは ガードスクエア 最近、古い署名スキームで署名された Android アプリに影響を与える別の深刻な脆弱性が報告されました。
ガードスクエアの報告書によれば、 ヤヌス脆弱性 Android の (CVE-2017-13156) により、攻撃者は署名に影響を与えることなくアプリケーション内のコードを変更できます。 レポートは続けて、この脆弱性の根本は、ファイルが同時に有効な APK ファイルであると同時に有効な DEX ファイルになる可能性があることであると述べています。
Janus は、APK ファイルと DEX ファイル内で余分なバイトが認識されないという事実を利用します。 の ガードスクエア レポートでは、APK ファイルは ZIP アーカイブであり、その ZIP エントリの先頭、前、および間に任意のバイトを含めることができると説明しています。 JAR 署名スキームでは ZIP エントリのみが考慮され、アプリケーションの署名を計算または検証するときに余分なバイトは無視されます。
一方、DEX ファイルの最後には、文字列、クラス、メソッド定義などの通常のセクションの後に、任意のバイトを含めることができると説明が続けられています。 したがって、ファイルは有効な APK ファイルであると同時に有効な DEX ファイルである可能性があります。
ガードスクエア また、この脆弱性の重要な要素は、Dalvik/ART 仮想マシンの「無害な」機能であるとも述べています。 レポートによると、理論上、Android ランタイムは APK ファイルをロードし、その DEX ファイルを抽出してコードを実行します。 ただし、実際には、仮想マシン (VM) は APK ファイルと DEX ファイルの両方をロードして実行できます。 問題は、VM が APK ファイルを取得するときに、ファイルの種類が DEX か APK であるかを判断するためにヘッダー内のマジック バイトを依然として参照することです。 DEX ヘッダーを見つけると、ファイルを DEX ファイルとしてロードします。 ヘッダーが見つからない場合は、DEX ファイルを含む zip エントリを含む APK ファイルとしてファイルをロードします。
したがって、デュアル DEX/APK ファイルを誤って解釈する可能性があります。ガードスクエア によると、攻撃者は VM のこの二重性機能を利用して、署名に影響を与えることなく悪意のある DEX ファイルを通常の APK ファイルに追加することができます。 Android ランタイムは、APK ファイルを正規の以前のアプリ バージョンへの有効なアップデートとして受け入れますが、Dalvik VM は、悪意のあるコードが挿入された DEX ファイルからコードをロードします。
通常、ユーザーがアプリの更新バージョンをインストールするたびに、アプリの署名が Android ランタイムによって検証され、古いバージョンと一致するかどうかが確認されます。 検証が成功すると、更新されたアプリケーションは、元のアプリケーションに付与されていたアクセス許可を取得します。 このようにして、攻撃者は Janus の脆弱性を利用して署名検証プロセスをバイパスし、疑いを持たないユーザーのデバイスに未検証のコードをインストールすることができます。
さらに悪いことに、この未検証のコードが強力な権限にアクセスできる可能性があることです。 これにより、いくつかの深刻な可能性が生じます。 ガードスクエア 状態:
「攻撃者は、高い権限を持つ信頼できるアプリケーション (システム アプリなど) を変更された更新プログラムに置き換えて、その権限を悪用する可能性があります。 対象となるアプリケーションによっては、ハッカーがデバイスに保存されている機密情報にアクセスしたり、デバイスを完全に乗っ取ったりする可能性があります。 あるいは、攻撃者は、機密アプリケーションの変更されたクローンを正規のアップデートとして渡すことができ、[これにより] 元のアプリケーションと同じように見え、動作しますが、悪意のある動作が注入される可能性があります。」
同社は、現時点でJanusを悪用するアプリケーションは実際には確認されていないと付け加えた。 もう 1 つの良いニュースは、この脆弱性により、ユーザーは Google Play ストア以外のソースから悪意のあるアップデートをインストールする必要があることです。 したがって、アプリのインストールを Play ストアに制限するユーザーは保護されます。
Janus の脆弱性は、Android 5.0 以降を実行しているデバイスに影響します。 APK 署名スキーム v1 で署名されたアプリケーションが影響を受けます。 署名スキーム v2 で署名された APK は脆弱性から保護されます. これには、最新の署名スキーム (Android 7.0 以降) をサポートするデバイス上で APK が実行されている必要があります。 スキーム v1 とは異なり、APK ファイル内のすべてのバイトが考慮されるため、スキーム v2 は保護されます。
「古いバージョンのアプリケーションや、古いデバイスで実行されている新しいアプリケーションは依然として影響を受けます。 開発者は少なくとも常に署名スキーム v2 を適用する必要があります。」 ガードスクエア 州。
ガードスクエア は、2017 年 7 月 31 日にこの問題を Google に報告し、同日に承認を受けました。 同社の報告書によると、Googleは11月にパートナー向けにパッチをリリースし、2017年12月4日にAndroidセキュリティ情報でバグ(CVE-2017-13156)を公開したという。 この脆弱性には、 2017 年 12 月の Android セキュリティ パッチで修正されました. これとは別に、公式リポジトリの F-Droid アプリケーションは安全であることが確認されています。 最後に、脆弱性が修正されたことが確認されました。 APKミラー.
出典: ガードスクエア