トレンドマイクロは、Android の「Toast」機能を利用したオーバーレイ攻撃によって、感染端末に密かに不正アプリをインストールする新しい Android 端末向け不正アプリ「TOASTAMIGO(トーストアミーゴ)」(「ANDROIDOS_TOASTAMIGO」として検出)を Google Play で確認しました。TOASTAMIGO の 1 つは、2017 年 11 月 6 日時点で 100,000~500,000 回インストールされています。この不正アプリは、Android 端末の「ユーザー補助機能」を悪用し、少なくとも今のところ、広告のクリック、アプリのインストール、削除防止による攻撃の持続等の機能を備えています。
オーバーレイ攻撃は、実行中の他のアプリやウィンドウ、プロセスの前面に、画像やボタンなどの Android の View を描画して重ね合わせる手法です。Toast 機能を利用するオーバーレイ攻撃の典型的なシナリオは、正規の画面の上に攻撃者が表示したウィンドウやボタンをユーザにクリックさせるというものです。この手法は、他のアプリの上に通知を表示する Toast の脆弱性「CVE-2017-0752 (2017 年 9 月に更新プログラム公開済み)」を利用するもので、2017 年の初めに「Proof-of-concept(PoC、概念実証)」が公表されていました。
TOASTAMIGO は、この PoC が実際に利用された攻撃としてトレンドマイクロが初めて確認した事例です。本記事執筆時点(2017 年 11 月 9 日)では比較的地味な機能しか備えていないことを考慮すると、以前の多くの事例のように、この不正アプリや、この不正アプリがダウンロードおよびインストールする不正アプリは微調整されていくことが予想されます。また、この不正アプリを模倣するサイバー犯罪者も出てくるでしょう。現時点で最新の Android 8.0 Oreo 以外のすべてのバージョンが影響を受けるため、古いバージョンを利用しているユーザは更新プログラムを適用するようにしてください。
図1:Toast 機能を利用したオーバーレイ攻撃の仕組み
無害のように見える画像(左)が、ユーザー補助の権限の許可のような、不正アプリが実行する実際のアクションの前面に重ねて表示されている
図 2:Google Play で確認された不正アプリ
■感染チェーン
皮肉なことに、TOASTAMIGO は個人識別番号(PIN)によって端末を保護する画面ロックアプリを装っています。インストールに際し、この不正アプリはユーザー補助の権限が必要であると通知します。これは、ユーザによる権限の許可を必須とする Android の対策を回避する策略です。権限の許可後、TOASTAMIGO は「アプリの分析中」だと称する画面を表示しますが、その背後ではアクションやコマンドが実行されています。既に権限が許可されているため、その中には別の不正アプリのインストールも含まれます。
図 3:不正アプリ実行時のスクリーンショット
■手法の解析
Android アプリは圧縮された状態で Google Play に公開されます。TOASTAMIGO を展開すると図 4 のようになります。「com」配下に、TOASTAMIGO だと確認された2つのアプリ(図 2)にそれぞれ対応する「amigo」と「goami」というフォルダが確認できます。これは、片方をコピーしてもう一方を作成したことを示す痕跡です。つまり、2つの TOASTAMIGO は両方とも同じ開発者によって作成されたと考えられます。
図 4:TOASTAMIGO のフォルダ構成
Toast 機能を利用したオーバーレイ攻撃は、画面に「analyzing the unprotected apps.(保護されていないアプリを分析中)」と表示している間に実行されます。図 5 がそのコードです。表示されている画面は、実際は Toast 型のウィンドウで、以下の設定により全画面表示されています。
- v2.typeの値「2005」は、TYPE_TOAST を意味
- v2.SystemUiVisibility の値「1280」は、SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN と SYSTEM_UI_FLAG_LAYOUT_STABLE を意味
- v2.flags の値「1032」は、FLAG_FULLSCREEN と FLAG_NOT_FOCUSABLEを意味
図 5:Toast 機能を利用したオーバーレイ攻撃のためのコード
オーバーレイ攻撃を実行する従来の不正アプリは、Android 6.0 Marshmallow 以降のバージョンでは、「draw on top(最前面に表示)」権限の許可を必要とします。ただし、Google Play からダウンロードされ、SYSTEM_ALERT_WINDOW 権限が許可されたアプリには自動的に最前面に表示する権限が付与されています。しかし、Toast 機能を利用したオーバーレイ攻撃は、特定の権限や条件を必要としないため、脆弱性が修正された Android 8.0 Oreo より前のすべてのバージョンに影響を与えることが確認されています。
■不正なタスクの実行
トレンドマイクロは、TOASTAMIGO のコードを解析し、可読性のために主要な機能のいくつかに名前を付けました。関数「doBackgroudTask.getInstance((Context)this).doTask」はバックグラウンドにおける特定のタスクの実行を管理し、異なる Android バージョンのさまざまな警告ダイアログを回避するように設計されています。
図 6:TOASTAMIGO がバックグラウンドでタスクを実行するコード(赤枠)
TOASTAMIGOは、端末からの削除を防止するものも含め、Toast 型ウィンドウの背後で以下のような機能を実行します。
アクション名 | 説明 |
com.photos.android.helper | 特定の「Android application package(APK)」のダウンロード |
force_stop_MC | モバイルセキュリティアプリの強制停止 |
bgAsprotectDialog | 「不明なソース」のようなダイアログのためのアクションの準備 |
bgAutoInstallPage_4 | ユーザー補助を介した APK のインストール |
Accessibility | その他の APK のためにユーザー補助を開く |
以下の関数/機能はこの不正アプリの主要なサービスを維持します。
アクション名 | 説明 |
bgGpAutoProtect | アンインストールの防止 |
bgAsprotectDialog、bgAsprotectPage_4 | ユーザー補助ダイアログが閉じないように維持 |
TOASTAMIGO によってダウンロードおよびインストールされた不正アプリの名称は「com.photos.android.helper」であり、パッケージ名は「com.vpn.free.migovpn」です。トレンドマイクロは、TOASTAMIGO によってダウンロードされ、広告クリック機能を備えたこの不正アプリを「AMIGOCLICKER(アミーゴクリッカー)」(「ANDROIDOS_AMIGOCLICKER」として検出)と名付けました。AMIGOCLICKER は、アプリの一覧には表示されず、代わりにユーザー補助のサービス一覧に追加されます。
図 7:感染端末のユーザー補助サービス一覧に表示された AMIGOCLICKER
AMIGOCLICKER は、登録されたブロードキャストレシーバによって自動的に実行されます。また、図8のように、TOASTAMIGO から AMIGOCLICKER のエクスポートサービスを呼び出すことでも実行可能です。
図 8: エクスポートされた AMIGOCLICKER のサービス
図 9:AMIGOCLICKER のサービスを呼び出す AMIGOCLICKER のコード
AMIGOCLICKER もまた圧縮されています。トレンドマイクロはエクスポートされた AMIGOCLICKER の主要なサービスについて解析しました。まず、この不正アプリは遠隔サーバにアクセスすることによって最新の制御情報を取得します。次に、端末のネットワーク接続に応じてプロキシを提供します。これにより、地域によってはアクセスすることができない Facebook や Google の広告表示サービス「Admob」のようなサービスへの接続を補助します。下の表は AMIGOCLICKER の主な機能の一覧です。TOASTAMIGO と共通している機能もいくつか確認できます。
アクション名 | 説明 |
force_stop | モバイルセキュリティアプリの強制終了 |
open_device_manager | アンインストールを防ぐために端末管理機能を開始 |
bgDeviceDeactivate | 端末管理機能の無効化を防止 |
bgGpAutoProtect | 自身のアンインストールを防ぐ |
autoUninstall_setting | 特定のパッケージをアンインストール |
bgAsprotectDialog | ユーザー補助権限の許可を維持 |
bgAsprotectPage_4 | ユーザー補助権限の許可を維持 |
bgAutoCancelDialog | システムの警告ダイアログでキャンセルボタンをクリック |
bgAutoUninstallOnDesktop | システムの警告ダイアログでアンインストールボタンをクリック |
bgAutoSureDialog | 特定のシステムダイアログ受信時にボタンをクリック |
collect_gp_account | 対象の Google アカウント情報を収集 |
bg_auto_click_fb | 読み込まれた Facebook 広告をクリック |
gp_search_input_aso action1 | 検索語を入力し、Google Play で検索 |
gp_search_input_aso action2 | 自身を Google Play で 5 つ星として評価 |
■被害に遭わないためには
今回確認された不正アプリは、さまざまな機能を備えており、比較的珍しい攻撃手法とも相まって確かな脅威となっています。本記事で解説した機能が、さらなるサイバー攻撃のために修正されることも十分予想されます。ユーザー補助機能を悪用する TOASTAMIGO および AMIGOCLICKER は、事実上どのような攻撃でも実行できるため、遠隔サーバからのコマンドを受信する際に自身を更新することも可能です。
Google は既に、この攻撃の侵入経路となる Toast 機能のオーバーレイ表示について、2017 年 9 月の Android のセキュリティに関する公開情報で更新プログラムをリリースしています。Android 端末の利用者は更新プログラムを適用してください。特に、職場の「Bring Your Own Device(BYOD)」プログラムで端末を利用する場合、さらに重要なことはモバイル端末を守る実用的なセキュリティ対策を実施することです。ただし、Android OS には断片化(フラグメンテーション)の問題があります。Pixel と Nexus の端末では定期的なアップデートがありますが、他の端末では更新プログラムの適用状態の確認が必要です。ユーザは利用している Android 端末の製造元にてアップデートの対応状況を確認してください。
トレンドマイクロは今回の事例について Google に通知し、問題のアプリは既に Google Play から削除されています。「侵入の痕跡(Indicators of Compromise、IoC)」についてはこちらを参照してください。
■トレンドマイクロの対策
トレンドマイクロでは、モバイル環境での総合セキュリティ対策として、個人利用者向けには「ウイルスバスター モバイル」、法人利用者向けには「Trend Micro Mobile Security™」を提供しています。これらの製品ではトレンドマイクロのクラウド型セキュリティ基盤「Trend Micro Smart Protection Network(SPN)」の機能である「Mobile App Reputation(MAR)」技術や「Web レピュテーション(WRS)」技術により、不正/迷惑アプリの検出や不正/迷惑アプリに関連する不正 Web サイトのブロックに対応しています。
参考記事:
翻訳:澤山 高士(Core Technology Marketing, TrendLabs)