Google Playの無料アプリケーションで現在トップ50に入っているAngry Birds Spaceのような人気のゲームは、マルウェア作者にとって、新しい悪質コードを配布する絶好の材料となっています。最近、サードパーティーのAndroidマーケットで、ユーザーの同意なく、バックグラウンドでアプリケーションをダウンロードして評価する新しいマルウェアが挿入されたアプリが複数件確認されました。問題となっているアプリケーションのひとつがAngry Birds Spaceです。
このマルウェアはAngry Birds Spaceのプレミアム版を装っていますが、実際には、Google Playで提供されているアプリケーションの無料版です。トロイの木馬にされたものを逆コンパイルしたコードと、感染していないバージョンとを比較したところ、トロイの木馬版には、ユーザーがゲームを開くたび、またはデバイスが再起動されるごとに実行されるコードが挿入されていることが判明しました。
このコードは、バックグラウンドで動作し、悪質なコードを組み込んだパッケージの一部である「MyService」という名前のサービスを起動します。
サービスを始動すると、このマルウェアはIMEI、IMSI、SIMシリアル番号などのデバイス識別情報を送信し、感染デバイスをリモートサーバーに登録します。登録後、サーバーからは「ポイントを稼いでアドウェアを恒久的に削除できるアプリケーションをインストールしよう」というポップアップダイアログを1分半ごとに表示する値が送信されます。
ダイアログには、「現在、あなたのポイントは0で、50ポイントを切っています。無料広告をダウンロードすると多くのポイントを稼ぐことができ、ゲーム内の広告が恒久的に削除されます。ポイントが確実にあなたのアカウントに振り込まれるよう、アプリケーションがインストールされたら開いてください」と書かれています。
初期化が完了すると、挿入されたコードはIMEIと特定の識別情報をリモートサーバーに送信して、マルウェアのメインのペイロードをダウンロードします。コード内のパスワードは難読化されていますが、作成に使われたアルゴリズムを分析することで容易に入手できます。Zip内のファイルは、FScriptで作成されたコードです。FScriptは、J2ME環境のFScript版であるFScriptMEを使うことにより、小型デバイスや埋め込みデバイスでも、他のJavaプログラムに容易に埋め込むことが可能なスクリプト言語です。ダウンロードされたコードは動的にロードされ、スクリプト内の各関数がFScriptパッケージで実装された「callScriptFunction」命令を使って、dexファイルから実行されます。
この事例では、ダウンロードされたスクリプトが制御サーバーとの通信を開始してデバイスを登録し、初期パラメーター(APK(Androidアプリケーション)をダウンロードするURLと、広告のクリックを実行するWebページ)を入手しました。
他のパラメーターには、マルウェアがルーチンの実行(ループ)間隔を計算するのに使用する「sleep」値が含まれています。構成がロードされると、スクリプトはユーザーの同意なしにバックグランドで、「click」パラメーターで指定されたWebページ全体とアプリケーションをダウンロードします。すべてのファイルはSDカードの「download」フォルダに格納されます。
すべてのファイルが格納されると、「Title」および「Intro」パラメーターにある情報を使ってデバイスの通知が作成されます。ユーザーが通知をクリックすると、従来のインストール画面の代わりにダウンロードされたWebページが表示され、スクリーンショットや詳しい説明など、アプリケーションの詳細を見ることができます。
ユーザーが「Free Download」をタップすると、ダウンロードが始まる代わりに、イベントが傍受され、すでにダウンロードされたAPKがSDカードからインストールされます。インストールされるアプリケーションは表示されているものと異なる場合があります。
リモートサーバーから送信されたパラメーターが「pushdownapk」関数を実行する「type=5」と「godown=2」であったことから、上記のプロセスが実行されました。また、マルウェアの作者は、他のコマンドを実行して、デバイスにインストールされているすべてのアプリケーションを入手したり、自動化されたモバイルクリック詐欺を仕掛けたりすることもできます。モバイルクリック詐欺は、サードパーティーのマーケットでアプリケーションをダウンロードし、ネットワークトラフィックを特定のモバイル広告サイトに送信して、アプリケーションのダウンロードとインストールに成功したことが報告されると発生します。
今のところ、感染したアプリケーションによってダウンロードされるこれらのスクリプトの目的は、インストールを報告し、詐欺で収入を得ることです。しかし、スクリプトを変更して別の関数を追加したり、制御サーバーから送信されるパラメーターを変更して悪質なアプリケーションをインストールしたりすることにより、目的はいつでも変えられる可能性があります。
マカフィーモバイルセキュリティでは、この脅威をAndroid/Backscript.Aという名前で検出します。
※本ページの内容はMcAfee Blogの抄訳です。
原文:Encrypted Scripts From Trojan Can Surprise Angry Birds Players