Google Playからアプリ自動インストールを行う危険な国内向けAndroidアプリ

権限確認を表示することなく勝手に別のアプリをインストールする機能を持ったアプリが見つかった。このアプリをインストールする際に、アカウントへのアクセスを許可してしまうことなどが原因となる。

» 2014年03月04日 18時46分 公開
[中島大輔,マカフィー]

(このコンテンツはマカフィー「McAfeeブログ」からの転載です。一部を変更しています。)

 Android端末ユーザーは通常、アプリ説明ページの内容やプライバシーポリシーを読んだり、アプリが要求する権限をインストール時に確認し許可したりするなど、幾つかの対話を行いながら、Google Playストアからアプリをダウンロードおよびインストールします。マルウェアや潜在的に危険なアプリ、不審なアプリのインストールを避けるために、これらの確認処理はAndroidのセキュリティにおいて重要な役割を担っています。

 しかしMcAfeeは最近、これらの重要な確認処理が省略されたほぼ自動的な方法でGoogle Playから他のアプリのダウンロード、インストールおよび起動を行う危険な国内ユーザー向けアプリをGoogle Play上で確認しました。このアプリ自動インストール機能は、ユーザーによる許可によって取得したGoogleアカウントの認可トークンと、それを用いて行われるGoogle PlayストアのWebサーバとの非公式な方法での通信によって実現されています。

Google Playから他のアプリを自動インストールし実行する危険なアプリ

 このアプリは、外部サーバによって指定された10個以上のアプリ一覧の中から最低5個のアプリをインストールすることと引き換えに、ユーザーがアダルト動画を視聴できるよう実装されています。今回の検証時には、このアプリ一覧にはマルウェアや不審なアプリは含まれていませんでした。おそらくアプリのインストールによって報酬が支払われるアフィリエイト報酬狙いの機能だと思われますが、アダルト動画をエサに興味もないアプリを自動インストールさせるという点で広告主を欺いている可能性はあります。また、アプリの外部サーバ側での変更により、後でアプリ一覧を置き換え、マルウェアや不審なアプリを混入させるという可能性も否定できません。なお、このアプリは既にGoogle Playから削除されています。

5個のアプリのインストールと引き換えにアダルト動画提供をオファー

 ユーザーが動画ダウンロードを試みると、本アプリはAndroidの「AccountManager.getAccountsByType()」と「AccountManager.getAuthToken()」というAPIを使用して、端末上のGoogleアカウント情報を取得し、そのアカウントを用いてGoogleサービスへアクセスする権限をユーザーに要求します。ここでは、Googleアカウントの「SID」「LSID」という2つの権限をそれぞれAndroidシステムが表示するダイアログ上でユーザーに要求していますが、これらの権限取得により、アプリはユーザーのGoogleアカウント経由でGoogle Playストアを含む種々のGoogleサービスへのアクセスを許可されることになります。これらの認可トークンは後で再利用できるようにアプリによって保存され、また、Androidシステムによっても一定期間キャッシュされるため、この権限認可処理は、認可トークンが期限切れになるまで、アプリを再実行しても再度行われることはありません。

GoogleアカウントのSIDとLSIDの権限を要求するダイアログ

 これらの権限が与えられると、アプリはその認可トークンを用いてGoogle PlayストアのWebサーバと何度か非公式な方法でのHTTP通信を行います。アプリ開発者が公式のGoogle Playストアサービスがアプリをインストールする際の通信プロトコルのリバースエンジニアリングを行ったか、その種の情報を入手して使用したものと私たちは考えています。Cookieデータの取得などを目的としたこれらの通信処理を経て、アプリはGoogle Playストアから任意の無料アプリを直接ダウンロードおよびインストールするためのトークンを取得し、実際にアプリの自動インストール処理を開始します。

選択された5個のアプリがGoogle Playから自動インストールされる

 ユーザーが自身でGoogle Playから手動でアプリをインストールする通常の手順と異なり、この自動インストールでは、アプリ説明の閲覧や権限要求の確認と許可・拒否を行う機会がユーザーに与えられません。最後に、本アプリは対象アプリのインストールが完了するとすぐに、それらを自動的に起動します。

アプリ説明表示や権限要求の確認・許可をせずにアプリインストールが成功

 このようなアプリ自動インストール処理が悪意あるアプリ開発者に悪用されると、恐ろしい結果を招くことは明らかでしょう。彼らは、Google Play上のほかのマルウェアをユーザーにほぼ気づかれることなく自動でインストールおよび起動し、有害なコードを実行することが可能になります。ユーザーは依然として、実行時に表示されるGoogleアカウントのSIDおよびLSIDに対する権限要求画面上でそれを拒否することは可能ですが、アプリが最初は妥当な理由を示したり非常に魅力的なエサをオファーしたりすることでユーザーが権限許可するよう説得し、その後で保存済みの認可トークンを使用してマルウェアの自動インストールに用いる可能性もあります。

 この自動インストールは、ユーザーがアプリに対し「端末でアカウントを検索」(GET_ACCOUNTS)と「端末上のアカウントを使用」(USE_CREDENTIALS)という権限要求をインストール時に許可することで可能となります。上で述べたように、これらの機能使用を許可すると、Googleアカウント(およびその他のサービスのアカウント)を用いた処理に関わる大きな権限をアプリに与えることになります。これらの権限がインストール時に要求されたり、また実行時に、Googleアカウントに関わる権限(今回の場合はSIDおよびLSID)が要求されたりした際には、そのアプリが本当に信頼に値するものか非常に慎重に再確認すべきだといえるでしょう。悪意のあるアプリに対し、不注意にこれらの権限を与えると、端末とプライバシーにとって極めて大きな被害を受ける可能性があります。

「端末でアカウントを検索」「端末上のアカウントを使用」の権限要求

 McAfee Mobile Security は、この潜在的に危険なアプリを「Android/BadInst.A」として検出します。

Copyright © ITmedia, Inc. All Rights Reserved.