NoVoiceは、Google Play上の50以上のアプリに隠れていた新しいAndroidルートキットキャンペーンであり、22の脆弱性を悪用して数百万の古いパッチが当たっていないAndroidデバイスをハイジャックし、WhatsAppセッションのクローンまで作成しています。
これらのアプリはクリーナー、カジュアルゲーム、ギャラリーツールなど日常的なユーティリティとして偽装され、疑いを避けるために正常に動作していました。合計で50以上の悪意あるアプリは削除前に少なくとも230万回以上ダウンロードされました。
このキャンペーンは、2016年から2021年の間にパッチが当たった既知のAndroid脆弱性を悪用して、脆弱なデバイスで管理者権限を取得しています。
McAfeeのモバイル研究チームはOperation NoVoiceという大規模なAndroidルートキットキャンペーンを発見しました。このキャンペーンはGoogle Playで以前利用可能だったアプリを通じて完全に配布されていました。
Android 2021-05-01以降のセキュリティパッチレベルを持つデバイスは、回復された特定のエクスプロイトに対して脆弱ではありませんが、同じフレームワークによって配信された他のペイロードに実は露出していた可能性があります。
2021年にセキュリティ更新の受信を停止したAndroid 7以下の古いサポート終了デバイスが最もリスクが高いです。これはルートキットがそれらのデバイスでファクトリーリセットから復旧できるためです。
Google Playを通じた秘密裏の配布
攻撃は、ユーザーがGoogle Playからトロイの木馬化されたアプリの1つをインストールして初めて開く時に始まります。
表面的には、アプリはアドバタイズされた通りに機能しますが、バックグラウンドでは、アプリが使用する正当なFacebook SDKの初期化パスに組み込まれた隠しコードをトリガーしています。
キャリアアプリは異常な権限をリクエストせず、Firebase、Google Analytics、Facebook SDK、AndroidXなどの一般的なSDKをバンドルしており、正当なソフトウェアに溶け込むのに役立っています。
初期悪意あるペイロードは、アプリのアセットディレクトリのポリグロット画像として保存されます。これは通常のPNGとしてレンダリングされますが、PNG IENDマーカーの後に暗号化されたAPKが追加されています。
隠しコードが実行されると、このペイロードをメモリで抽出して復号化し、それを追加のAPKとしてロードして、フォレンジック痕跡を減らすために中間ファイルをクリーンアップします。
最初のペイロードがアクティブになると、NoVoiceは回避とモジュラリティを重視する長い段階的なチェーンを通じて進みます。
ネイティブライブラリはゲートキーパーとして機能し、正しいアプリで実行されていることを確認し、エミュレータ、デバッガ、VPN、プロキシ、ルーティングフック、さらには北京や深圳などの特定の地域のデバイスを避けるためのジオフェンシングをスキャンします。
15個のチェックすべてに合格した場合にのみ、マルウェアはコマンド&コントロール(C2)サーバーに接続するために進みます。
チェックに合格した場合、アプリはアセットディレクトリから独自のポリグロット画像を読み込み、画像データの後に隠された暗号化ペイロード(enc.apk)を抽出し、h.apkを生成するために復号化します。
フレームワークはC2を60秒ごとにポーリングし、画像ファイルとして偽装されたプラグインをダウンロードします。再び通常の画像コンテンツの後に暗号化されたデータを隠しています。
C2は各デバイスを詳細にプロファイリングし、ハードウェアモデル、カーネルバージョン、インストール済みパッケージ、セキュリティパッチ日付などを収集し、そのデバイスに合わせた一連のルートエクスプロイトで応答します。
エクスプロイトが実行される前に、CsKaitno.dとして特定されたキャンペーンのコアルートキットは復号化され、ディスクに段階的に配置されます。
選択されたエクスプロイトが成功すると、攻撃者はSELinuxが無効化されたルートシェルを取得し、すぐにルートキットをシステムパーティションにインストールします。
CsKaitno.dは、libandroid_runtime.soやlibmedia_jni.soなどの重要なシステムライブラリをラッパーバイナリに置き換え、これがシステム関数をフックして、任意のアプリが開始されるたびに攻撃者制御のコードに実行をリダイレクトします。
WhatsAppセッション盗難
システムライブラリがフックされると、デバイス上のすべてのアプリが注入されたコードと共に起動し、マルウェアはそれが占有するプロセスに応じて異なるペイロードをアクティベートします。
McAfeeは22のエクスプロイトバイナリを回復しました。これにはIPv6の解放後使用脆弱性とMali GPUドライバの脆弱性を活用するチェーンが含まれており、カーネルの読み書きアクセスを取得し、最終的にSELinuxを無効化しています。
埋め込まれた1つのペイロードは攻撃者にアプリのインストールと削除の無音制御を与え、別のものはインターネットアクセスを持つ任意のアプリ内で実行され、タスキングとデータ盗難のための二重C2チャネルを維持しています。
McAfeeが回復した唯一の利用後タスク(PtfLibcという名前)は、具体的にWhatsAppをターゲットにしています。
WhatsAppが起動されると、PtfLibcはその暗号化されたデータベースをコピーし、Signal プロトコルアイデンティティキー、登録ID、最近署名された事前キー、および電話番号、国コード、バックアップアカウント識別子などのメタデータを抽出します。
このデータはその後、層化暗号化を通じて正当なGoogleトラフィックを模倣する攻撃者制御のドメインに流出され、オペレータが別のデバイスで被害者のWhatsAppセッションのクローンを作成できるようになります。
NoVoiceは複数のドメイン全体の分割されたインフラストラクチャを使用しています。一部はデバイス登録を処理し、他はプラグイン配信、エクスプロイトホスティング、またはタスク配布を処理し、ペイロードもAlibaba Cloud OSSやAmazon S3加速エンドポイントなどのクラウドサービスに保存されています。
この分離により、オペレータは操作全体を崩すことなくドメインをローテーション、または置き換えることができ、すべてのプライマリC2が数日間ダークになった場合に新しいドメインリストを取得できます。
McAfeeはNoVoiceとAndroid Triadaファミリーの間の強い技術的な重複を指摘しています。これには、侵害されたデバイスにマークを付けるための同じ構成プロパティの使用と、libandroid_runtime.soを置き換えてすべてのアプリにコードを注入する戦略が含まれています。
McAfeeは責任ある情報公開チャネルを通じてこのキャンペーンをGoogleに報告しました。その後、Googleは特定されたアプリをGoogle Playから削除し、関連する開発者アカウントを禁止しました。
App Defense Allianceのメンバーとして、McAfeeはこのケースが、公式アプリストアでさえ高度でモジュール化されたルートキットに悪用される可能性があることを示していることを強調しています。
McAfee Mobile Securityは現在、この脅威をハイリスクのAndroid/NoVoiceマルウェアファミリーとして検出でき、時間内に保護をインストールしたデバイスでそれをブロックするのに役立ちます。
翻訳元: https://gbhackers.com/novoice-on-google-play/