トレンドマイクロは、Android向けの正規アプリマーケットである「Google Play」上で新たに、ゲームアプリやカメラアプリを偽装した49個の不正アプリを確認しました。これらは、モバイルデバイス内に隠れて広告を表示させる典型的なアドウェアですが、同時にアンインストールおよび検出を回避する機能も備えていました。これらのアドウェアはすでにGoogleによってGoogle Playから削除されています。ただし、削除される前には合わせて300万を超えるダウンロード回数を確認しており、多くの利用者が被害に遭ったものと考えられます。
このところモバイルに侵入するアドウェアが活発化しています。2019年8月には、85個のフォトアプリおよびゲームアプリを装うアドウェアが確認され、やはり独自の検出回避方法を利用していました。このようなアドウェアは、モバイル関連企業を長い間悩ませる問題でした。 Googleはそのような不正アプリを次々と削除し続けなければなりません。トレンドマイクロは7月にも100個を超えるアドウェアアプリを確認しており、さらにそれ以前の1月には900万人以上のユーザに影響を与えたアドウェアアプリについて報告しています。弊社では何年もの間、モバイル向けアドウェアによる詐欺事例を注意深く追跡してきましたが、これらアドウェアは2018年の時点ですでにまん延していたと言えます。今回の事例も最近のアドウェア活発化の傾向を明確に表しているものであり、アドウェアアプリはバージョン更新を繰り返し現在も常にアップロードされているため、弊社では監視を継続しています。
図1:Google Play上に確認されたアドウェアアプリ
■アドウェアアプリの挙動を解析
前回に報告したケースと同様、今回確認された最新のアドウェアアプリはアイコンを偽装し、感染デバイスに全画面広告を表示させます。通常の方法でユーザが広告を終了させることはできません。戻る、またはホームボタンをクリックすることによってのみ閉じることができます。
図2:不正なアドウェアアプリのアイコンがどのように非表示に、または削除されるかを示すコード
図3:感染デバイスに表示される全画面広告
これらのアドウェアには、効果的な検出回避方法が利用されていました。以下に挙げるアドウェアの活動の多くはセキュリティ対策ソフトによる静的および動的解析を困難化させるための手法と言えます。
- コードが非常に難読化されている(図4)
- アプリ内の文字列は、base64エンコードに加え、パッケージ名をキーとしたカスタムアルゴリズムで暗号化されている (図5)
- アドウェアのショートカットは、一般的にデフォルトとして利用されるブラウザと同じアイコンに偽装する。ユーザがアイコンをクリックすると実際には広告ページが開かれ、ホーム画面に多くのショートカットが作成される (図6、7、8)
- OSのバージョンによって、特にショートカットの作成において挙動が異なる(図10)。これは、Android OS 8.0のリリース後に、Googleがショートカットの許可を厳しくしたためと推測される。ユーザによる同意がなければ、アプリはショートカットを作成することができない(図11)
- アドウェアは、StartForgroundService関数(Android OS 8.0以降で実装)によって活動を持続させる。これによりアドウェアはフォアグラウンドサービスとして登録され、ユーザが操作に関与しなくても実行可能となるだけでなく、メモリ不足の際に削除される可能性も低くする。この挙動から、アドウェアは常に改良され、新しいOSの機能と更新に対応していると考えられる
- 不正活動の実行間隔が長く設定されている。これは動的解析を困難化させる意図があるものと考えられる
図4:コードの難読化
図5:パッケージ名をキーとしたカスタムアルゴリズムによる暗号化を示すコード(左)と以前のバージョンでは暗号化がされていないことを示すコード(右)
図6:一般的にデフォルトで利用されるブラウザのリストを表示するコード
図7:ショートカットの複製を作成可能であることを示すコード
前述のように、アドウェアアプリはブラウザアイコンのショートカットの複製を多数作成します。そして、たとえばユーザが偽Chromeアイコンをクリックすると、空白のWebページが開き、ページが全画面広告へと変わります。
ユーザは全画面広告を見た後で、 [Recent Screen(履歴画面)]ボタンなどをクリックし、どこから広告が出たのか確認をしようとするか、あるいは広告を閉じようとするかもしれません。 しかし、なんの情報も表示されず、広告の出所についての手がかりもありません。 この手法は、アドウェアを隠しておくために役立ちます。 また、アドウェアアプリ自身のアイコンは隠されているため、ユーザがアプリを見つけてアンインストールすることが困難となっています。
図8:Chromeブラウザを偽装するショートカットの複製が多数表示される(左)、偽のChromeブラウザアイコンをクリックすると表示される全画面広告(中央)、[履歴画面]ボタンをクリックすると表示される黒いバー(右)
アドウェアアプリの作成者は、Activityクラスの新しいsetTaskDescription(…)メソッドを使用しています。 このメソッドによって、[履歴画面]にタスクのタイトルとアイコンを表示する方法を設定できます。 このアドウェアアプリの場合、タイトルとアイコンが非表示に設定されています。 図8(右)に示されているように、[履歴画面]ボタンをクリックしてもページは表示されず、ただの黒いバーが表示されます。
図9:タイトルは空欄、アイコンが非表示に設定されている
図10:Android OSのバージョンによって異なる活動をするコード
図11:Android OS 8.0のデバイスでショートカットの作成をユーザに要求する画面
アドウェアのコードには、ユーザのデバイスに広告が表示される最大回数および、表示間隔が設定されています。
問題のアドウェアプリのGoogle Playのレビューには、多くの不審な挙動が報告されていました。全画面広告が数分ごとにポップアップする、ユーザが画面上の任意の場所をクリックすると広告がポップアップする、ユーザがデバイスの画面ロックを解除するたびに広告が表示される(OSが通知「android.intent.action.USER_PRESENT」をアプリに送信するため、広告が表示される)などが挙げられていました。
図12: Google Playのレビューには、アドウェアアプリの不審な動作について報告されている
このようなアドウェアアプリの動作は、単にユーザを悩ますだけではありません。ポップアップ広告が継続して表示された場合、デバイスのバッテリーが過度に消費されます。これは何年も前から報告されている問題です。また、メモリにも影響します。実行中のプロセスはフォアグラウンドサービスと見なされ、システムはそれをユーザが認識している活動と見なすためメモリが不足しても終了することはありません。また、自身を隠蔽する手法を利用しているために、ユーザによるアンインストールが難しいことも問題です。画面に表示される偽のブラウザのショートカットを削除しても、アドウェアアプリが削除されることはありません。削除するためには、ユーザはデバイスの「設定」に移動し、アプリケーションのセクションでアプリを見つけ、アンインストールする必要があります。
■被害に遭わないためには
幸いにもデバイスの製造業者はアドウェアによる迷惑をよく認識しており、ユーザがアドウェアを回避することができるよう、常に新しい修正プログラムをインストールしています。上述のように、Android OS 8.0以降のバージョンでは、ショートカットをインストールする前にユーザによる同意が必要となっています。ユーザは、ソフトウェア会社からの最新のセキュリティ対策を活用するために、ソフトウェアとOSをいつも最新のものに更新しておく必要があります。また、モバイルデバイスを保護するためのベストプラクティスを講じることも推奨します。正規マーケット上のアプリのレビューは、不審な動作がないかを確認するために役立ち、品質を見極めるための指標になります。
■トレンドマイクロの対策
トレンドマイクロでは、モバイル環境での総合セキュリティ対策として、個人利用者向けには「ウイルスバスターモバイル」、法人利用者向けには「Trend Micro Mobile Security™」を提供しています。これらの製品ではトレンドマイクロのクラウド型セキュリティ基盤「Trend Micro Smart Protection Network(SPN)」の機能である「Mobile App Reputation(MAR)」技術や「Web レピュテーション(WRS)」技術により、不正/迷惑アプリの検出や、関連する不正 Webサイトのブロックに対応しています。
「Trend Micro Mobile Security」は、モバイルデバイス、アプリケーション、データの可視化と制御を標準装備の単一コンソールで実現するとともに、脆弱性攻撃や不正アクセスから端末を保護し、マルウェアや不正なWebサイトをブロックします。
■侵入の痕跡(Indicators of Compromise 、IoCs)
侵入の痕跡(Indicators of Compromise、IoCs)はこちらを参照してください。
参考記事:
翻訳: 室賀 美和(Core Technology Marketing, Trend Micro™ Research)