ZimperiumのzLabs研究所の研究者は、RatHatという新たなAndroidマルウェアを発見した。このマルウェアは、AIを利用したサブシステムを用いて、運用者が感染デバイス内を移動し、リモートコマンドを実行できるようにする。研究者によると、このマルウェアは、悪意のある広告、テキストメッセージ、Google Playストア外のAPKファイルを宣伝するフィッシングサイトを通じて拡散する。
研究者は、中国語で書かれた大規模言語モデル向けのプロンプトを発見したことから、RatHatが中国の脅威アクターと関連している可能性があると考えている。ただし、この観察結果はキャンペーンやその運用者に対する最終的な帰属を示すものではなく、マルウェア分析における一つの状況証拠にすぎない。
Androidの権限による、より深い制御
RatHatは、他のAndroidマルウェアファミリーと同様に、アクセシビリティサービスの権限を悪用して、高い権限を必要とする操作を実行する。さらに重要なのは、開発者向けオプションとワイヤレスデバッグ機能を有効化する点である。これにより、外部コンピューターを必要とせず、ADB shellレベルの権限を持つローカル実行コンテキストを作成できる。この手法は、ToxicPandaやRedHookのマルウェアに見られた仕組みに類似している。
ADBへのアクセスを取得すると、マルウェアはGoで構築されたクライアントをliblocal-service.soファイル内にインストールする。このクライアントはADB shell権限でコマンドを実行し、バッテリー制限を回避し、デバイス上の永続化メカニズムを管理する。また、削除または停止された場合にはマルウェアを再起動でき、RatHat側もクライアントを再インストールできるため、相互にバックアップする永続化チャネルが形成される。
2つ目のクライアントであるlibmedia_codec.soは、FRPのリバースプロキシクライアントとして動作し、デバイスと攻撃者を接続する持続的なトンネルを構築する。
AIは何を追加するのか?
RatHatは、AndroidのライブなアクセシビリティツリーをXML形式でシリアライズし、Zimperiumの報告書では名前が明らかにされていないAIアシスタントに送信する。システムには、インターフェース上の特定要素の中心座標の特定、実際に表示されているテキストの抽出、SCROLL_DOWNなどのナビゲーション指示の返却が求められる。
実際には、この手法により、マルウェアは固定テキストに完全に依存するシナリオよりも柔軟に変化するインターフェースを扱える。また、運用者による直接的かつ継続的な操作の必要性も減少する。Zimperiumは、これにより制御がより適応的になり、事前に定義された操作に基づく従来型の自動化と比較して、検出が難しくなる可能性があるとしている。
データ窃取と削除耐性
RatHatは、銀行アプリや暗号資産アプリの上にHTMLレイヤーを表示し、被害者を誘導してアカウント情報を入力させる。また、テキストメッセージや通知を傍受し、ワンタイムパスコードも対象とするほか、テキスト変更イベントを記録し、ブラウザーのアドレスバーからURLを抽出し、PIN、パスワード、ロック解除パターンを取得する。
マルウェアはアンインストール確認画面を傍受して処理をキャンセルし、その後、Google Playを模倣した偽のオーバーレイを表示して、偽のエラーメッセージを提示する。さらに、APKコンテナの改ざん、サイズが61メガバイトに膨張したAndroidマニフェストファイル、分析ツールを混乱させたり機能停止させたりすることを目的とした偽または無効なDEX命令など、複数の解析対策技術も用いられている。
ユーザーにとって何を意味するのか?
AIの使用だけで、マルウェアがあらゆる防御手段を突破できることが証明されるわけではない。しかし、実際の弱点は変化する。制御は、予測可能な固定経路だけに依存するものではないからだ。そのため、アプリのインストール元とアクセシビリティ権限は、依然として重要な要因である。Zimperiumは、提供元を明確に信頼できる場合を除き、Google Play外からAPKファイルをインストールしないこと、不要なアプリにアクセシビリティ権限を付与しないこと、Play Protectを使用して定期的に検査することを推奨している。