Android.MagicAdは、OSのセキュリティ機能を迂回してバックグラウンドから侵襲的な広告を表示する、隠密性の高いAndroidトロイの木馬ファミリーです。
これらのアプリは数週間だけストアに掲載された後に削除されますが、すでにインストールされた端末ではそのまま動作し続けます。これにより、攻撃者はアプリストアへの露出を抑えながら、広告詐欺と持続的なアクセスを維持できる仕組みになっています。
技術的に高度な作りとなっており、Android.MagicAdはアプリのリソースディレクトリに保存された暗号化ネイティブライブラリの中に重要なコードを隠します。実行時にはライブラリを復号化し、dexコンポーネントを展開して実行します。
活動を開始する前に、マルウェアは検知回避のための複数の環境チェックを実行します。具体的には、仮想マシン環境の痕跡の有無、インストールが通常の方法で行われたかどうかの確認、そして端末のIPアドレスをブラックリストと照合するフィルタリングです。
安全と判断した場合、トロイの木馬はランチャーアイコンを非表示にし、通知チャネルを作成して、複数のバックグラウンドサービスを起動します。
Doctor WebがGBhackersと共有したレポートによると、Android.MagicAdの亜種はXiaomiのGetAppsを通じて配布された50タイトル以上に埋め込まれており、Samsung Galaxy Storeでも検出されました。
また、サービスを定期的に再起動するウォッチドッグタスクをスケジュール設定し、古いAndroidバージョンではバーチャルスクリーンを起動してシステムによるバックグラウンドコンポーネントの中断を防ぎます。
MagicAd Androidマルウェアの手口
Android.MagicAdの際立った特徴は、本来オーバーレイ表示を許可するSYSTEM_ALERT_WINDOW権限を要求せずに広告を表示できる点です。
代わりに、端末固有のテクニックと汎用テクニックを組み合わせ、他のアプリの上に半透明のActivityウィンドウとして広告バナーを描画します。
テクニックの一つは、アプリ間通信の悪用です。トロイの木馬はIntentを巧みに構成するか、または復号化したdexモジュールに処理を委譲し、特定OEMビルド上でシステムレベルの権限を持つインストール済みアプリに送り込みます。
Xiaomi端末では、Android.MagicAdはMi BrowserとMIUI SystemUIシェルを標的にします。Amazon端末ではFire TV Home Screenランチャーを悪用します。
これらのターゲットアプリは明示的に起動されていなくてもIntentを処理できるため、トロイの木馬はそれらを利用して広告を表示させたり、自身のモジュールを間接的に起動したりすることができます。
Mi Browserが通常の(非システム)アプリとして存在する場合も、そのウィンドウが閉じられるまでの間、同様の方法で一時的に悪用されます。
同様のOEM向けカスタマイズが施された亜種は、Android Binderを使ってVivo端末のシステムサービスと通信します。
この亜種では、iManager、Phonebook、Vivo Browser、カスタマイズされたBaidu IMEなどのサービスに対し、Parcelオブジェクトにパッケージ化したIntentを送信します。これらのサービスがトロイの木馬のdexモジュールを起動し、バックグラウンドから広告が表示される仕組みです。
こうしたベンダー固有の手法に加え、Android.MagicAdはシステムのメディアプレーヤーを悪用する広範囲に有効な汎用トリックも実装しています。
トロイの木馬は埋め込まれたオーディオファイルを復号化して保存し、ほぼゼロに近い音量でメディアプレーヤーを起動してメディアボタンイベントのブロードキャストレシーバーを登録します。
次に、adbコマンドに似た方法でプレーヤーの録音コントロールをユーザーが操作したように見せかけ、直後にプレーヤーのUIを閉じます。
このメディアボタンイベントはシステムのメディアレシーバーで処理されますが、トロイの木馬はこれをエントリーポイントとして半透明の広告Activityを起動します。広告表示を正規のメディア操作に偽装する巧妙な手口です。
運営面では、Android.MagicAdの背後にいる攻撃者は公式ストアで不正アプリをローテーションすることで検知を最小限に抑えようとしていました。アプリは一定期間だけ掲載された後、同じ開発者が公開した新しいタイトルに入れ替わる手法が取られていました。
Doctor Webのレポートによれば、問題のアプリはGetAppsからすでに削除されており、特定された発行者アカウントも新たな不正アプリのアップロードを停止しています。ただし、既存のインストール済み端末は引き続きリスクにさらされています。
Doctor WebのAndroid.MagicAd.1およびAndroid.MagicAd.1.originの検出ページには、セキュリティチームとユーザー向けの技術的指標と動作の説明が掲載されています。https://vms.drweb.com/search/?q=Android.MagicAd.1&lng=en および https://vms.drweb.com/search/?q=Android.MagicAd.1.origin&lng=en をご参照ください。
対策としては、感染したアプリを削除し、信頼性の高いモバイルセキュリティツールでスキャンを実施するとともに、サイドロードや知名度の低い地域限定アプリストアの利用を避けることが求められます。
OEMメーカーおよびアプリストア運営者は、暗号化されたネイティブペイロードに対する審査を強化し、短期間でのアプリローテーションを監視する体制を整えるべきです。またAndroidのメンテナーは、IntentのハンドリングとメディアコントロールAPIを悪用した広告配信の踏み台利用を防ぐため、これらの仕様の厳格化を検討することが望まれます。
翻訳元: https://gbhackers.com/magicad-android-malware/