ユーザの望まない広告表示活動を行う「アドウェア」は、長い間ユーザを煩わせてきた課題であり、現在もその状況は変わりません。事実、トレンドマイクロは2018年12月に、Android端末向けアドウェアアプリ(「AndroidOS_HidenAd」ファミリとして検出)を85個確認しました。これらのアドウェアアプリは、Google Play上で、ゲーム、テレビ視聴、およびテレビ用リモコン等のアプリに偽装しており、世界全体で合計約900万回ダウンロードされていました。Googleはトレンドマイクロの通知を検証し、迅速にこれらの偽アプリを公開停止にしました。
確認された偽アプリは、全画面広告の表示、アイコンの隠ぺい、端末ロック解除操作の監視機能を備えており、アイコンを非表示にした後はバックグラウンドで動作を続けます。


図 1:アドウェアが埋め込まれたGoogle Play上の偽アプリ
■偽アプリの例:「Easy Universal TV Remote」
偽アプリの中で最も多くダウンロードされていた「Easy Universal TV Remote」は、スマートフォンを使用してテレビを操作することができるアプリだとうたっています。


図 2:リモコンアプリに偽装した「Easy Universal TV Remote」
この偽アプリはすでに500万回以上ダウンロードされており、レビュー欄にはアプリの挙動に関する苦情が複数投稿されていました。

図 3:偽アプリ「Easy Universal TV Remote」のレビュー
「アプリが消える」、「説明通りに動作しない」、
「広告がポップアップする」等の苦情が確認できる。
■偽アプリの挙動
問題のアドウェアに関連する偽アプリを個別に調査したところ、別々のメーカーによって作成されており、APKの署名に使用された公開鍵もそれぞれ異なるものでした。しかし、これらの偽アプリは類似した挙動を示し、同じコードを共有していました。
全画面広告の表示
偽アプリをダウンロードして起動すると、初めに全画面広告がポップアップします。



図 4:感染端末でポップアップする全画面広告
最初に表示された広告を閉じると、「START」、「OPEN APP」、「NEXT」のようなユーザに行動を促す文言が書かれたボタンと、バナー広告が表示されます。ユーザがボタンをタップすると、また別の全画面広告が表示されます。



図 5:ユーザの行動を促すボタンとバナー広告

図 6:ボタンをタップすると全画面広告がポップアップ
この全画面広告を閉じると、アプリ関連のユーザ設定を装った複数のボタンが表示されます。ユーザがこれらのボタンのいずれかをクリックすると、さらに全画面広告が表示されます。また、星5つの評価を付けるようにユーザを促します。



図 7:アプリ関連のユーザ設定を装ったボタン
タップすると全画面広告が表示される
自身を隠ぺいしバックグラウンドで動作
続いて、読み込み中であることを示す画面が表示されますが、数秒経つとこの偽アプリは端末の画面から消え、アイコンも非表示となります。



図 8:偽アプリが表示する読み込み中画面

図 9:アイコンを非表示にするコード
このようにして自身を隠ぺいした後も偽アプリはバックグラウンドで動作を続け、15分または30分毎に全画面広告を表示します。

図 10:偽アプリは自身を隠ぺいしバックグラウンドで動作
画面ロック解除をきっかけとして全画面広告を表示
偽アプリのいくつかでは、ユーザによる画面ロック解除をきっかけとして広告を表示する別の挙動も確認されました。画面ロックを解除する操作を監視するために、Androidシステムにアプリに関する重要な情報を提供する「AndroidManifest.xml」ファイルにレシーバが登録されています。

図 11:画面ロック解除を監視するために「AndroidManifest.xml」に登録されたレシーバ

図 12:感染端末の画面ロック解除時に全画面広告を表示するコード

図 13:画面ロック解除後に表示される全画面広告
■トレンドマイクロの対策
ますます多くのユーザがモバイル端末を利用する中、増加を続けるモバイルの脅威から端末を保護する重要性が高まっています。
トレンドマイクロでは、モバイル環境での総合セキュリティ対策として、個人利用者向けには「ウイルスバスター™モバイル」、法人利用者向けには「Trend Micro Mobile Security™」を提供しています。これらの製品ではトレンドマイクロのクラウド型セキュリティ基盤「Trend Micro Smart Protection Network(SPN)」の機能である「モバイルアプリケーションレピュテーション(MAR)」技術や「Web レピュテーション(WRS)」技術により、不正/迷惑アプリの検出や不正/迷惑アプリに関連する不正 Web サイトのブロックに対応しています。
侵入の痕跡(Indicators of Compromise、IoCs)はこちらを参照してください。
参考記事:
翻訳: 澤山 高士(Core Technology Marketing, TrendLabs)