トレンドマイクロは、Google Play 上に公開された 340個のアプリに、広告のクリックを自動的にカウントするアドウェアが組み込まれているのを確認しました。弊社は、このアドウェアを「GhostClicker(ゴーストクリッカー)」(「ANDROIDOS_GHOSTCLICKER.AXM」として検出)と名づけました。問題の GhostClicker が組み込まれたアプリの1つに、既に 100万回以上ダウンロードされている「Aladdin’s Adventures World」というゲームアプリがあり、これ以外にも、クリーナやブースタのような最適化ツール、ファイル管理、QRスキャナやバーコードスキャナ、マルチメディアレコーダやプレーヤ、充電管理ツール、GPSやナビゲーションアプリなどが確認されています。
2017年8月7日現在、確認されたアドウェアを組み込んだアプリの大半は Google Play から既に削除されていますが、101個についてはまだダウンロード可能な状態です。これらのアプリが検出された地域は、東南アジア諸国の他、ブラジル、日本、台湾、ロシア、イタリア、米国です。
問題の GhostClicker は、Google の人気アプリや API をまとめた「Googleモバイルサービス(GMS)」や「Facebook広告」のソフトウェア開発キット(SDK)に「logs」というパッケージ名の自身のコードを組み込み、正規のアプリのように偽装します。
図1:GhostClicker が組み込まれたゲームアプリ。インストール数は100万~500万回
図2:GMS(左)および Facebook広告(右)の SDK に組み込まれたコード
■管理者権限を要求する GhostClicker
GhostClickerが活動を実行するには条件があります。アプリを起動すると、Android端末のシステムプロパティ “http.agent” を確認します。このプロパティは、Android端末の User-Agent 文字列を定義します。User-Agent 文字列に「nexus」が含まれる場合 GhostClicker は始動しません。これは、「Androidアプリケーションサンドボックス」などのサンドボックス技術を回避する目的と考えられます。Android のエミュレータやサンドボックス環境は通常「Nexus ○○○」と名付けられているからです。
図3:端末の ”http.agent” に「nexus」が含まれていないことを確認し、始動する
解析した GhostClicker を組み込んだアプリには、初回実行時にモバイル端末管理者権限を要求するだけで、データ消去やパスワードのリセットなどのセキュリティ設定については表示しないものがありました。これは、ユーザにアプリを容易に削除させないようにする手口と考えられます。モバイル端末管理者権限を与えられたアプリをアンインストールする手順はわかりにくく、まず端末管理者権限を無効化する必要があるからです。
図4:モバイル端末管理者権限を要求する GhostClicker を組み込んだアプリ
図5:アプリのアンインストールができないと伝えるユーザレビュー
■自動クリックで広告収入を得る GhostClicker
解析した GhostClicker は、JavaScriptコードを利用して広告を検索しクリックする他のアドウェアと異なり、自身のコードを Google のモバイル向け広告プラットフォーム「AdMob」の SDK に組み込むことによって広告を検索します。Android端末の画面サイズ(縦x横)を確認した後、適切な XY座標を計算し、タッチイベントを処理する dispatchTouchEventメソッドを利用します。実際、GhostClicker という名前が示す通り、あたかも幽霊が端末画面に表示される広告をクリックしているように実行されます。
また、GhostClicker は偽のトラフィックを生成し、広告収入の機会を増やします。コマンド&コントロール(C&C)サーバとの通信を利用して、Google Play の他のアプリがダウンロードされる時や、YouTube が開かれた時にポップアップ広告を表示します。モバイル端末管理者権限が有効になると、GhostClicker は分刻みで自動的にクリックします。
図6:「AdMob」の広告を読み込むコード
図7:XY座標を計算するコード
図8:計算されたXY座標でタッチイベントを生成するコード
図9:dispatchTouchEventメソッドを利用し広告を自動クリックするコード
■GhostClicker の更新履歴
GhostClickerの更新履歴を確認したところ、自動クリック機能が搭載されたバージョンは初期のバージョンと、その間の更新されたバージョンは、自動クリック機能とモバイル端末管理者権限の要求部分がどちらも削除されているのが確認できました。これは、ユーザに気付かれずに活動することを狙った試行と考えられます。そして、端末の画面ロックが解除されると、データ通信接続されている場合、GhostClicker は一定間隔でポップアップ広告を表示し続けます。上述の Aladdin’s Adventure’s World にはこのバージョンの GhostClicker が組み込まれていました。
GhostClicker が組み込まれたアプリは、約1年間に渡って継続的にリリースされていたことが確認されています。
- 早くとも2016年8月までに「GMS」に組み込まれる。自動クリック機能を採用し管理者権限を要求する初期のバージョンが確認される
- 2017年3月までには、「Admob」、「Startapp」、「Facebook広告」を利用する。自動クリック機能を削除し、代わりにC&Cコマンドによってポップアップ広告を表示させるものが確認される
- 2017年5月までには、「Facebook広告」の SDK を利用して自動クリック機能を再び組み込む
このように更新と拡散が継続していることから、GhostClicker がクリック詐欺のキャンペーン活動、ともすればサイバー犯罪活動である可能性も考えられます。
■被害に遭わないためには
通常の広告はモバイル業界にとって不可欠なものですが、今回報告した GhostClicker のように、ユーザに害をもたらすアドウェアが端末に侵入する場合があります。このようなアドウェアは、CPU使用率、バッテリー消費やデータ通信量など、端末のリソースにも大きな負担を与えることになります。また、ユーザの個人情報が気付かぬうちに窃取され、漏えいにつながる恐れがあります。アドウェアは単に煩わしい広告の表示活動にとどまらず、不正活動を実行するマルウェアへユーザを誘導する可能性もあります。
GhostClicker のようなアドウェアによる被害は、通常企業用の端末と BYOD管理、セキュリティ対策などのアプリで使われているモバイル端末管理者の設定機能を制限することで軽減できます。そのような制限をしてもユーザの使用感にあまり影響はないでしょう。
端末の OS を最新の状態に保ってください。利用端末が更新プログラムに対応していない場合、端末の製造元へ OS の更新について問い合わせることができます。また、個人のモバイル端末を保護するためのベストプラクティスを採用してください。企業用端末や BYOD環境は、モバイル端末管理者機能を使用するため、同様のベストプラクティスを導入する必要があります。アプリのレビューを読んで、アプリに不審な挙動がないか確認することも役に立ちます。
■トレンドマイクロの対策
トレンドマイクロでは、モバイル環境での総合セキュリティ対策として、個人利用者向けには「ウイルスバスターモバイル」、法人利用者向けには「Trend Micro Mobile Security」を提供しています。これらの製品ではトレンドマイクロのクラウド型セキュリティ基盤「Trend Micro Smart Protection Network(SPN)」の機能である「モバイルアプリケーションレピュテーション(MAR)」技術や「Web レピュテーション(WRS)」技術により、不正/迷惑アプリの検出や不正/迷惑アプリに関連する不正 Webサイトのブロックに対応しています。
トレンドマイクロは、調査結果を Google に公開し、アドウェアを組み込んだアプリを Google Play から削除するために協力しました。GhostClicker の関連ハッシュ(SHA256)、パッケージ名、およびアプリケーションラベルを含む侵入の痕跡(Indicators of Compromise、IoCs)についてはこちらを参照してください。
参考記事:
- 「GhostClicker Adware is a Phantomlike Android Click Fraud」
by Echo Duan and Roland Sun (Mobile Threat Response Team)
翻訳:室賀 美和(Core Technology Marketing, TrendLabs)