マカフィーは3月4日、Google Playからアプリ自動インストールを行う危険な国内向けAndroidアプリに関する報告を発表した。
報告によると、Android端末ユーザーは通常、アプリ説明ページの内容やプライバシーポリシーを読んだり、アプリが要求する権限をインストール時に確認し許可したりするなど、いくつかの対話を行いながら、Google Playストアからアプリをダウンロードおよびインストールする。
McAfeeは、これらの重要な確認処理が省略されたほぼ自動的な方法でGoogle Playから他のアプリのダウンロード、インストールおよび起動を行う危険な国内ユーザー向けアプリをGoogle Play上で確認したという。
このアプリ自動インストール機能は、ユーザーによる許可によって取得したGoogleアカウントの認可トークンと、それを用いて行われるGoogle PlayストアのWebサーバーとの非公式な方法での通信によって実現されている。
このアプリは、外部サーバーによって指定された10個以上のアプリ一覧の中から最低5個のアプリをインストールすることと引き換えに、ユーザーがアダルト動画を視聴できるよう実装されており、今回の検証時には、このアプリ一覧にはマルウェアや不審なアプリは含まれていなかった。
マカフィーでは、おそらくアプリのインストールによって報酬が支払われるアフィリエイト報酬狙いの機能だと思われるが、アダルト動画をエサに興味もないアプリを自動インストールさせるという点で広告主を欺いている可能性がある。更に悪質な同アプリの活用法としては、アプリの外部サーバー設定を変更することでアプリ一覧を置き換え、マルウェアや不審なアプリを混入させるという可能性があるとしている。なお、このアプリは既にGoogle Playから削除されている。
ユーザーが動画ダウンロードを試みると、同アプリはAndroidのAccountManager.getAccountsByTypeとAccountManager.getAuthTokenというAPIを使用して、端末上のGoogleアカウント情報を取得し、そのアカウントを用いてGoogleサービスへアクセスする権限をユーザーに要求する。
一例では、Googleアカウントの「SID」「LSID」という2つの権限をそれぞれAndroidシステムが表示するダイアログ上でユーザーに要求しているが、これらの権限取得によりアプリはユーザーのGoogleアカウント経由でGoogle Playストアを含む種々のGoogleサービスへのアクセスを許可されることになる。
これらの認可トークンは後で再利用できるようにアプリによって保存され、また、Androidシステムによっても一定期間キャッシュされるため、この権限認可処理は、認可トークンが期限切れになるまで、アプリを再実行しても再度行われることはない。
これらの権限が与えられると、アプリはその認可トークンを用いてGoogle PlayストアのWebサーバーと何度か非公式な方法でHTTP通信を行う。
Cookieデータの取得等を目的としたこれらの通信処理を経て、アプリはGoogle Playストアから任意の無料アプリを直接ダウンロードおよびインストールするためのトークンを取得し、実際にアプリの自動インストール処理を開始する。
ユーザーが自身でGoogle Playから手動でアプリをインストールする通常の手順と異なり、この自動インストールでは、アプリ説明の閲覧や権限要求の確認と許可・拒否を行う機会がユーザーに与えられず、最後に、本アプリは対象アプリのインストールが完了するとすぐに、それらを自動的に起動する。
マカフィーでは、このようなアプリ自動インストール処理が悪意あるアプリ開発者に悪用されると恐ろしい結果を招くことは明らかであるとし、Google Play上の他のマルウェアをユーザーにほぼ気づかれることなく自動でインストールおよび起動し有害なコードを実行することが可能になるという。
ユーザーは、実行時に表示されるGoogleアカウントのSIDおよびLSIDに対する権限要求画面上でそれを拒否することは可能だが、アプリが最初は妥当な理由を示したり非常に魅力的なエサをオファーしたりすることでユーザーが権限許可するよう説得し、その後で保存済みの認可トークンを使用してマルウェアの自動インストールに用いる可能性もある。
この自動インストールは、ユーザーがアプリに対し「端末でアカウントを検索」(GETACCOUNTS)と「端末上のアカウントを使用」(USECREDENTIALS)という権限要求をインストール時に許可することで可能となる。
これらの機能使用を許可すると、Googleアカウント(およびその他のサービスのアカウント)を用いた処理に関わる大きな権限をアプリに与えることになり、これらの権限がインストール時に要求されたり、また実行時にGoogleアカウントに関わる権限(今回の場合はSIDおよびLSID)が要求されたりした際には、そのアプリが本当に信頼に値するものか非常に慎重に再確認すべきだと言えるとしている。