RatHatは新たに確認されたAndroid向けバンキングマルウェアファミリーで、Accessibility(ユーザー補助機能)の悪用、ローカルのAndroid Debug Bridge(ADB)ペアリング、ネイティブなシェルレベルのコンポーネント、そして生成AIを活用したインターフェース自動化を組み合わせています。
この攻撃活動は中国を拠点とする脅威アクターとの関連が指摘されており、主に感染したAndroidデバイスから銀行の認証情報、決済用PIN、ワンタイムパスワード、端末ロック解除用の秘密情報、その他の価値の高いデータを窃取することを目的としています。
データガバナンスコンサルティング
解析対象となったあるビルドでは、マルウェアが有名な動画配信サービスになりすまし、表示されるアイコンやアプリ名を動的に変更できることが確認されました。これには「Chrome」というアクティビティエイリアスの使用も含まれます。
この感染チェーンの中で最も重大な部分は、Androidのワイヤレスデバッグを自律的に悪用する仕組みです。
被害者を説得してAndroidのユーザー補助機能(Accessibility Service)を有効にさせた後、RatHatのSystemHelperコンポーネントは合成タップ操作を使って開発者向けオプションを解除し、ワイヤレスデバッグを有効化してペアリング画面を開き、画面上に表示される一時的な6桁のADBペアリングコードと動的ポート番号を読み取ります。
その後、組み込みのADBライブラリを通じてデバイスのローカルADBデーモンとペアリングを行い、接続されたホストコンピューターを必要とせずに攻撃者にシェルレベルの実行環境を与えます。
このシェルアクセスにより、RatHatは/data/local/tmpに偽装した2つのGoバイナリを配置できます。
1つ目のliblocal-service.soは、権限を持つローカルエージェントとして動作し、マルウェアをDoze(省電力)制限から除外するコマンドの発行、アクティブなスタンバイバケットへの移動、権限の付与、特定パッケージの無効化や削除といった機能を持っています。
2つ目のlibmedia_codec.soは、FRPツールを基にしたFast Reverse Proxy Clientです。これは持続的なリバーストンネルを構築し、端末内部のサービスを操作者に対して公開できるようにすることで、実質的にNATやファイアウォールの境界を回避します。
RatHatはまた、マルウェア解析の作業を妨害することを狙った多層的な解析対策の仕組みも備えています。

このAPKには、Androidは許容するもののパッキング解除ツールの多くは処理できないZIPコンテナの不整合、未文書の0x9999チャンクで水増しされた61MBのAndroidマニフェスト、逆アセンブルを妨害する不正な形式のDEX擬似命令、複数の文字列難読化手法などが含まれる場合があります。
さらに実行時の防御機構として、JDWPデバッガー、ptraceによるアタッチ、Frida、Xposed、root化の痕跡、エミュレーター、改変されたビルドプロパティ、リパッケージの兆候などをチェックします。
このマルウェアの最も特異な認証情報窃取機能は、シェルを利用した生入力データの収集です。
そのGoエージェントはAndroidのgeteventユーティリティを呼び出して/dev/inputのイベントを監視し、タイムスタンプ付きでタッチ座標を取得します。
通常、標準的なAndroidアプリケーションはこれらの端末入力ノードを読み取ることができませんが、ワイヤレスデバッグ経由で取得したシェル環境によってこの収集が可能になります。
GBhackersと共有されたレポートの中でZimperiumが述べたところによると、RatHatは標的型のスミッシングメッセージ、悪意のある広告、サードパーティのフォーラム、そして正規アプリに見せかけたAPKファイルをサイドロードするよう被害者を誘導する欺瞞的なダウンロードサイトを通じて拡散します。
RatHatマルウェアによる攻撃
RatHatは、主要な端末メーカーのキーパッドやパターンロックのレイアウト情報を含むlocateValues.jsonを参照することで、生の座標データを認証情報に変換します。

これにより、タッチ座標をPINパッド上の数字に対応付けたり、一連の座標をAndroidの3×3パターングリッドに対応付けたりすることが可能になります。
この仕組みにより、スクリーンショットの取得を制限する保護機能や、ロック画面の数字をユーザー補助機能から隠す機能、カスタムキーボードの使用といった対策を迂回する経路が生まれます。
アンチウイルス&マルウェア
生の入力データの収集に加え、RatHatはユーザー補助機能によるテキスト変更イベントを記録し、ブラウザのURLを収集し、画面の動作を記録し、WebViewベースのHTMLオーバーレイを使って標的となる金融アプリケーションを模倣します。

また、SMSや通知の内容を傍受し、OTPや2FAコードを取得することもできます。Zimperiumの解析では特に、銀行や仮想通貨関連アプリ、さらにはWeChatやAlipayといった決済サービスを標的としたオーバーレイが確認されています。
zLabsによると、RatHatは稼働中のユーザー補助機能のツリー情報をXML形式にシリアライズし、操作タスクのために広く使われている生成AIアシスタントに送信します。
このプロンプトは、画面上の名前付き要素の座標を要求したり、インターフェースから可視のテキストを抽出したり、SCROLL_DOWNのようなナビゲーション動作を返させたりすることができます。
この機能により、マルウェアが硬直的でアプリ固有の自動化スクリプトに依存する度合いが減り、インターフェースの変更に対する耐性が高まる可能性があります。
このマルウェアは主に2つのコマンド&コントロール経路を維持しています。Androidアプリケーションが使用するHTTP/WebSocketチャンネルと、Goエージェントによって127.0.0.1:7910にバインドされたローカルHTTPサービスです。
このエージェントは、リバーストンネルの設定を取得したり、端末のテレメトリを送信したり、キューに入ったコマンドを処理したり、画面の監視を行ったり、ファイルを転送したり、動画をアップロードしたり、コンポーネントの更新を確認したりすることができます。
RatHatはアンインストールの処理を横取りし、偽のGoogle Playスタイルの失敗画面を表示することで削除を妨害しようとします。さらに重要なのは、そのローカルなシェルレベルのサービスが通常のAndroidパッケージのライフサイクルの外に存在している点です。
被害者が可視のアプリのアンインストールに成功した場合でも、常駐エージェントがその不在を検知し、実行時権限付きでAPKを再インストールした上で、それ以上の操作を必要とせずにユーザー補助機能の設定を再度有効化できます。
この攻撃活動は、攻撃者がカーネルエクスプロイトを使わなくても意味のある制御を獲得できる、拡大しつつあるモバイル脅威モデルを示しています。
サイドロードされたAPK、ユーザー補助機能の権限、ワイヤレスデバッグ、ローカルADBペアリング、リバーストンネリングを連鎖させることで、RatHatは従来型のオーバーレイ詐欺の枠を超え、持続的な端末上アクセスへと踏み込んでいます。
Androidユーザーは、望んでもいないテキストメッセージや広告、非公式サイトを通じて勧められるAPKの利用を避けるべきです。ユーザー補助機能の要求は高リスクなものとして扱い、明示的に必要な場合を除いて開発者向けオプションとワイヤレスデバッグは無効にしておき、予期しないユーザー補助機能サービスやデバイス管理者の要求、デバッグ通知が現れた場合は直ちに調査してください。
組織は、特に銀行取引や多要素認証、社内アクセスに使用される端末について、管理対象デバイスにおけるユーザー補助機能の悪用、開発者向けオプションの有効化、ローカルADBペアリングの試みを監視すべきです。
SOCのアラート調査時間を1件あたり21分短縮。即座のインシデント対応のためにIOCコンテキストを即座に提供し、SOCを強化しましょう: TI Lookupを貴社のSOCに統合する
翻訳元: https://gbhackers.com/rathat-malware-attack/