Android上のアドウェアって、大丈夫?

2013年10月31日

Google Playストアからダウンロードできる「無料」のAndroidアプリは、多くの場合、決して無料ではありません。開発者たちは親切心からユーザーのためにアプリを開発しているわけではないのです。前払いを求めない多くのオンラインサービスと同様に、モバイルアプリの収益構造は広告とアプリ内課金によって成り立っています。

Android上のアドウェア-title

アプリの作成では、開発段階で何らかのサードパーティ広告ライブラリを選択してアプリに組み込むことがよくあります。アプリがGoogle Playストアで公開されて、Androidユーザーがダウンロードし始めると、そのサードパーティ企業が広告の配信とアプリ開発者への支払いを担当するようになります。

開発者もユーザーも、この広告ライブラリがやることや、収集される情報の種類、提供される広告、ユーザーのデバイスとのやりとりを、まったくコントロールすることができません。とても正直で信頼の置ける広告ライブラリもありますが、不誠実で見境のないライブラリもあります。

Androidオペレーティングシステムで広く採用されている人気広告ライブラリの1つは、度を超えて煩わしい機能がいくつかあり、動的で悪用される恐れのあるぜい弱性を大量に抱えていますが、アプリとともに2億回以上もダウンロードされています。このライブラリのふるまいがあまりにも見境がないため、これを分析したFireEyeの研究者は名指しすることすら避け、代わりに「Vulna」と呼ぶことにしたそうです。Vulnaは「vulnerable」(ぜい弱)と「aggressive」(攻撃的)という2つの単語を組み合わせた造語で、研究者らはこのライブラリにふさわしい名前だとしています。

開発者もユーザーも、この広告ライブラリがやることをまったくコントロールできません

多くの広告ライブラリと同様、Vulnaにもテキストメッセージのコンテンツ、通話履歴、連絡先リストといった重要情報を収集する能力があります。さらに厄介なのが、こうしたVulna広告はダウンロードされたコードをAndroidデバイス上で実行することもでき、関連アプリがインストールされてしまうことです。

もっと大きな問題もあります。Vulna広告サービスに影響するぜい弱性が膨大にあるということは、ハッカーが遠隔操作であらゆるバグをエクスプロイトし、この広告ネットワークのすべての機能を乗っ取って、Vulnaが入ったデバイスを持つユーザーに対して悪質な目的で使用できるということです。つまり(FireEyeがこのネットワークの実名を公表しない理由でもありますが)、Vulnaが広告を配信する何億台というデバイスは、理論上、極めて多くの攻撃を受ける可能性があるのです。

また、Vulnaのサーバーとエンドユーザーのデバイスの間で送受信されるデータが暗号化されていないことと関連するぜい弱性もあります。豊富な知識を持つ攻撃者は、こうしたぜい弱性を併用することで、理論的にはさまざまな悪質行為を実行できるようになります。たとえば、ショートメッセージサービス(SMS)で送信される2段階認証コードを盗む、写真や保存ファイルを閲覧する、ホーム画面に悪質なアプリやアイコンをインストールする、ファイルとデータを削除する、携帯電話の本当の持ち主になりすましてフィッシングなどを行う、受信テキストメッセージを削除する、電話をかける、ひそかにカメラを使う、ブックマークを変更して悪質サイトに誘導する、などです。悪質行為の可能性としては他にも、公共Wi-Fiから該当デバイスを盗聴する、ボットネットマルウェアをインストールする、Vulnaのドメインネームシステム(DNS)サーバーをハイジャックする、Vulnaのトラフィックを本来の目的地から攻撃者がコントロールするサイトにリダイレクトする、などなど。最後の例は最近、広く報じられたTwitterとNew York Timesへの攻撃で実際に起きたことです

踏んだり蹴ったりですが、ユーザーからすれば、Vulnaと提携したアプリが自分のスマートフォンにインストールされているかどうかを知ることさえ難しいでしょう。その理由は、HTTPコマンドをコントロールサーバーから受信する方法にあります。コードが非公開で難読化されている(オープンソースの反対)ため、作成者しか検証することができず、この広告ネットワークが特定の時点で何をたくらんでいるかを知るのは非常に困難なのです。

幸いFireEyeは、GoogleとVulnaの広告ライブラリに責任を持つ会社に連絡した際、Vulnaの素性をはっきりと伝えました。FireEyeはつい先日、Googleと責任ある企業の両方が、多くの好ましい変更を行ったと発表しています。Googleは、こうしたふるまいが目に余るアプリを数多く削除し、それらを作成した開発者のアカウントを無効にしました。多くの開発者が、侵害的なバージョンのVulnaが動作していたアプリを更新し、Vulna自体の採用を取りやめた開発者もいました。

残念ながら、多くのAndroidユーザーはアプリの更新をインストールしないため、この脅威に対してぜい弱なままでしょう。実際に、FireEyeの推計では、約1億6,600万件のダウンロードにまだVulnaの不適切なバージョンが含まれていると見られます。

もちろん私たちは、全ユーザーに更新をインストールするよう勧めています。更新がインストールされていなければ、手助けできることはほとんどないからです。また、アドウェアにも注意する必要があります。「同じ目的で利用できる無料アプリがあるのに、有料バージョンのアプリを使うなんてお金の無駄」と思えるかもしれませんが、「無料のものなど何もない」のが厳しい現実です。いわゆる「無料」アプリもほとんどが広告で成り立っており、まさにVulnaのケースが示すとおり、こうした広告ライブラリが何を意図しているのか、どのように管理されているのか、確かなことが分からない場合が多いのです。

ちょっと想像してみてください。攻撃者がVulnaのDNSサーバーをハイジャックして、ユーザーのクリックをすべてリダイレクトし、銀行の認証情報を盗むトロイの木馬がホストされたサイトに誘導したとしましょう。膨大な数のユーザーの銀行口座が侵入を受けてしまうかもしれません。そもそも広告に頼らないアプリは数百円で買える場合もありますが、銀行口座の復旧にかかるコストは(時間の面でもお金の面でも)、数百円では済まないはずです。もちろん、有料アプリが提供されていない場合もありますし、手ごろな値段でないということもあるでしょう。しかし最低でも、ダウンロードするアプリの権限に目を通して継続的に監視し、可能な場合はサードパーティによるインストールを必ず無効にしましょう。