研究者らは、Hirudoという新たなAndroidマルウェアを発見した。このマルウェアは、端末内の正規の銀行アプリを改変版に置き換えることで、銀行サービスの利用者を標的にする。モバイルセキュリティ企業ThreatFabricの報告によると、このマルウェアはコードインジェクション用のエンジンを使用し、アプリの署名チェック、アクセシビリティサービス、Play Integrityのチェックを回避する。
8つの銀行アプリの悪意あるコピーが確認されており、その中には少なくとも7つのインドネシアの銀行のアプリが含まれていた。また、このキャンペーンは中国、インド、メキシコ、モロッコ、タイの金融機関も標的にしていたが、被害者数は依然として不明だ。
Hirudoはどのように端末へ侵入するのか?
このマルウェアは通常、ショッピングやエンターテインメントコンテンツ向けの機能を提供する、正常に見えるアプリを通じて侵入する。例として、Shopora、1V1 X、ZoyaTV、KoiShortなどがある。これらのアプリはマルウェアのダウンローダーとして機能し、その後、偽のアップデート通知を表示して、ユーザーにAccessibility権限などの追加権限を付与させる。
権限が有効になると、悪意あるアプリは本物の銀行アプリを削除し、改変版をダウンロードしてインストールしようとする。ThreatFabricは、この処理について、ユーザーが2つの段階で中断できるため、攻撃者にとってリスクが伴うと説明している。
保護機構を回避手段へと転換
改変版は銀行アプリの元のコードの大部分を保持しているが、オープンソースのYAHFAおよびDobbyフレームワークを基盤とするエンジンを追加している。このエンジンは銀行アプリ自体のプロセス内で動作するため、アプリの外部から攻撃するのではなく、チェック結果を操作できる。
- 照会された際に、元の署名証明書を置き換える。
- 有効になっているAccessibilityサービスを隠す。
- スクリーンショット保護を無効にし、遠隔からの閲覧と録画を可能にする。
- 鍵に関連付けられた認証証明書を変更し、Play Integrityのリクエストを攻撃者が管理するサーバー経由で送信する。
攻撃者は何を盗めるのか?
Hirudoは、銀行口座のパスワード、秘密の決済コード、端末のロック解除に関する秘密情報、SMSメッセージを盗めるほか、スマートフォンの画面をストリーミングし、2つのカメラを制御できる。また、偽の決済画面を使って決済コードを収集し、データ窃取を隠すために偽の成功結果を表示する。
ThreatFabricは、保護されていないバックエンドパネル上に、アプリの認証情報を含む数千件の記録が存在することを確認した。そこには端末情報、ロック画面、金融ファイルも含まれていた。これらのデータがすべての被害者のものなのか、一部の被害者のものなのかは、報告書では明らかにされていない。
制限事項と取るべき対策
回避手法には制限がないわけではない。組み込まれた認証鍵が公に流出する可能性があり、Googleはそのうち2つの証明書を侵害された証明書のリストに追加した。これにより、サーバー側で証明書の失効チェックを実行する際、サーバーが偽造処理を検出できるようになる。
ThreatFabricは、Hirudoについて、アプリ内部の保護機構を標的にするため、Android上の銀行口座窃取マルウェアの手法におけるエスカレーションを示すものだと見ている。同社は銀行に対し、サーバー側で安全性の検証と認証を行い、チェックをセッションや重要な処理に関連付け、行動管理と取引リスク管理を維持するよう提案している。
ユーザーには、端末を最新の状態に更新し、非公式ストアからAPKファイルを入手することを避け、Play Protectを使用して定期的にチェックを行うことが推奨される。