SoumniBot malware exploits Android bugs to evade detection

SoumniBot」と名付けられた新しいAndroidバンキングマルウェアは、Androidマニフェストの抽出および解析手順の弱点を突くことで、あまり一般的ではない難読化アプローチを使用している。

この手法により、SoumniBotはAndroid携帯に見られる標準的なセキュリティ対策を回避し、情報窃取を実行することができます。

このマルウェアはカスペルスキーの研究者によって発見・分析され、マルウェアがAPKマニフェストを解析・抽出するためにAndroidのルーチンを利用する手法に関する技術的な詳細を提供しています。

Androidのパーサーを騙す

マニフェストファイル(’AndroidManifest.xml’)は各アプリのルートディレクトリに存在し、コンポーネント(サービス、ブロードキャストレシーバー、コンテンツプロバイダー)、パーミッション、アプリデータに関する詳細が含まれています。

Zimperiumには、悪意のあるAPKがセキュリティツールを欺き、分析を回避するために使用するさまざまな圧縮トリックがありますが、カスペルスキーのアナリストは、SoumniBotがパーサーチェックを回避するために、マニフェストファイルの圧縮とサイズの操作を伴う3つの異なる方法を使用していることを発見しました。

まず、SoumniBot は APK のマニフェストファイルを解凍する際に無効な圧縮値を使用します。これは、この役割を担う Android の「libziparchive」ライブラリが期待する標準的な値(0 または 8)とは異なります。

Android APKパーサーは、これらの値を受け入れ不可能なものとして扱う代わりに、バグによりデータを非圧縮として認識するようデフォルト設定し、APKがセキュリティチェックを回避してデバイス上で実行を継続できるようにします。

Extracting the manifest file from the APK
APK からマニフェストファイルを抽出する
(Kaspersky)

2つ目の方法は、APK内のマニフェストファイルのサイズを誤って報告し、実際の数値よりも大きな値を提供することです。

このファイルは前のステップで非圧縮とマークされているため、アーカイブから直接コピーされ、その差分をジャンクな「オーバーレイ」データで埋める。

カスペルスキーは、この余分なデータはAndroidが無視するように設定されているため、デバイスに直接害を与えることはないが、コード解析ツールを混乱させる上で重要な役割を果たすと説明している。

Reporting the wrong file size
誤ったファイルサイズを報告する
(カスペルスキー)

3 つ目の回避テクニックは、マニフェスト ファイル内の XML 名前空間の名前に非常に長い文字列を使用することです。これにより、自動解析ツールによるチェックが非常に困難になり、処理に十分なメモリが不足することがよくあります。

Long strings in manifest
マニフェスト内の長い文字列
(Kaspersky)

カスペルスキーは、Android の公式解析ユーティリティであるAPK Analyzer が上記の回避方法を使用したファイルを処理できないことを Google に通知しました。

また、カスペルスキーはGoogleにコメントを求めたところ、広報担当者から以下のような回答があった:

我々の現在の検出結果によると、このマルウェアを含むアプリはGoogle Playでは見つかっていません。このマルウェアの既知のバージョンは、Google Playサービスを利用するAndroid端末でデフォルトで有効になっているGoogle Playプロテクトによって、Androidユーザーを自動的に保護しています。

Google Playプロテクトは、悪意のある動作をすることが判明しているアプリに対して、ユーザーに警告を発したり、ブロックしたりすることができます。- グーグルの広報担当者

SoumniBotの脅威

起動すると、SoumniBot はハードコードされたサーバーアドレスに設定パラメータを要求し、感染したデバイスの番号、キャリアなどのプロファイル情報を送信します。

次に、悪意のあるサービスを開始し、停止すると16分ごとに再起動し、被害者から盗んだデータを15秒ごとに送信します。

流出した詳細情報には、IPアドレス、連絡先リスト、アカウント詳細、SMSメッセージ、写真、ビデオ、オンラインバンキングのデジタル証明書などが含まれる。

データの流出は、マルウェアがMQTTサーバー経由で受け取るコマンドによって制御される。これらのコマンドは、以下のような機能も命令する:

  • 既存の連絡先の削除または新しい連絡先の追加
  • SMSメッセージの送信(転送)
  • 着信音の音量レベルの設定
  • マナーモードのオン/オフ
  • デバイスのデバッグモードのオン/オフ

SoumniBotがどのようにしてデバイスに到達するのかは不明だが、サードパーティのAndroidストアや安全でないウェブサイトでの配布から、信頼できるリポジトリにある正規アプリを悪意のあるコードでアップデートする方法まで、方法はさまざまだろう。

SoumniBotは韓国のユーザーをターゲットにしており、多くの悪意のあるAndroidアプリと同様に、インストール後にアイコンを非表示にして削除を難しくしています。しかし、バックグラウンドで活動を続け、被害者からデータをアップロードします。

カスペルスキーは、マルウェアのハッシュ値や、マルウェアの運営者がコマンド&コントロール活動に使用する2つのドメインなど、侵害の指標となる簡単なセットを提供しています。

更新 4/18– Googleのコメントを追加