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