NorthBitエクスプロイトはMetaphorと呼ばれます。 脆弱性の悪用メカニズムの詳細な説明に加えて、研究者はAndroidの脆弱性を提示し、データ領域のシェルコードの場所に依存する悪用から保護するために使用されるDEPおよびASLR防御メカニズムを回避し、安定した動作のためにAndroidメモリの固定アドレスにも依存します脆弱性。 Windowsと同様、クロールはよく知られたROPおよびヒープスプレー方式を使用して実行されます。
エクスプロイト攻撃はいくつかのステップに分割されます。
- 最初の段階で、たとえば、悪意のあるMitMまたはXSSリダイレクト、メッセージ内の悪意のあるリンク、悪意のあるHTTPコンテンツなどの攻撃ベクトルが選択されます。
- JavaScriptコードの形式でWebページに悪用されると、いわゆる 攻撃セッションを行い、デバイスID Device IDを受信します。その後、この情報を攻撃者サーバーに送信します。 このコードは、複数の悪意のあるMPEG4ファイルが関与する、その後の悪用プロセス全体の実行に特化しています。
- 攻撃者がIDを必要とする場合、特別に作成されたMPEG4ビデオファイル(crash.mp4)が特別な方法で被害者に送信されます。
- Androidはmediaserverプロセスを使用してこのビデオファイルを再生します。これにより、mediaserverシステムプロセスがクラッシュします。 この手順は、プロセスを初期状態に設定するために必要です。これにより、脆弱性が正しく悪用される可能性があります。 異常終了後、プロセスは自動的に再開します。
- 次に、エクスプロイトコードは、leak.mp4という別のMPEG4ファイルを取得するためのリクエストをリモートの攻撃者サーバーに送信します。 Androidシステムのメモリポインターを公開し、ASLRをバイパスする必要があります。
- リモートサーバーは、前のステップで悪用されたデバイスID情報に基づいて、leac.mp4とlibc.soシステムファイルの相対オフセットを返し、ROPガジェットを形成し、DEPをバイパスします。
- leak.mp4を再生するために、Androidは再び偽のファイルメタデータを解析し、ASLRをバイパスするエクスプロイトによって使用されるmediaserverプロセスを使用します。 ASLRをバイパスするには、Androidで使用されるLinux 32ビットARMアルゴリズムを使用して、初期形成の脆弱性を介してデルタを計算するための普遍的な方法が使用されます。 ASLRバイパスの結果は、実行可能なELFファイルのヘッダーのメモリ内での正常な検出であり、それに基づいてプロセス内の絶対アドレスを計算するためのデルタが形成されます。
- この段階で、すべての準備手順が完了し、JavaScriptコードはリモートサーバーにCVE-2015-3864脆弱性のRCEエクスプロイトを要求し、前述のデバイスIDとメモリ内のAndroidモジュールの場所に関する追加情報を提供します。
- リモートサーバーは、rce.mp4ファイルを悪意のあるJavaScriptコードに送信するとともに、脆弱性の正常な動作に必要なメモリ内のアドレスに関するすべての情報を送信します。 leak.mp4を使用してアドレスが事前に計算されました。
- 最後の段階で、悪意のあるJavaScriptコードは実行のためにrce.mp4を起動します。これにより、脆弱性の操作とリモートコードの実行が行われます。 このエクスプロイトはメディアサーバーシステムプロセスのコンテキストで実行されるため、Androidで拡張権限を取得します。
図 エクスプロイトメタファーのデモンストレーション。 被害者は、悪用された悪意のあるビデオコンテンツが存在する動物の画像を含むWebページへのリンクをたどります。
市場アナリストによると、数億台のAndroidデバイスが、Metaphorに対して脆弱なこのモバイルOSのバージョンを実行しています。 デバイスにAndroidの更新プログラムをインストールすることは、このような脆弱性に対する最善の対策ですが、製造元がGoogleからリリースされた新しいファームウェアを採用していないスマートフォンのユーザーはどうでしょうか。 まあ、この質問に対する決定的な答えはまだありません...ユーザーがフィッシングリンクをクリックしないで(ビデオに示されているように)、デバイスを保護する主要な手段の1つとしてウイルス対策ソフトウェアを使用することをお勧めします。
このリンクでMetaphorの機能の詳細な説明を見つけることができます。
記載された脆弱性は、 Nexus Security Bulletinアップデート-2015年9月で、昨年9月にGoogleによって閉鎖されました。