寄稿: 末長政樹
アメリカンフットボールのファンなら万全というところでしょう。シーズンもたけなわ、そしてスーパーボウルの開催ももうすぐです。準備万端なのはマルウェア作成者も同様ですが、この一大スポーツイベントが悪用されるのは今回が初めてではありません。2007 年には、マイアミドルフィンズ(第 41 回スーパーボウルのホストチーム)の Web サイトが、悪質な JavaScript へのリンクを使った攻撃を受けたことがありました。Web ブラウザを攻撃し、隠されたマルウェアをインストールするという悪用パックで、スーパーボウルの情報を求めてこのサイトにアクセスしたユーザーの何人かがその被害に遭いました。Android マルウェアの作成者がプレーブックから繰り出した今シーズンの作戦は、人気のゲームタイトル「Madden NFL 12」の偽物を使った手口です。サイズは 5 MB を超え、いかにもやりがいのあるゲームのように見えます。インストールすると、このようなアイコンまで表示されます。

このアプリケーションを起動しても、残念ながら本物のフットボールはもちろんのこと、何のゲームも実行されません。かわりに、トロイの木馬が有料電話番号に発信し、さらには IRC サーバーへの接続も試みます。APK を逆コンパイルしたところ、次のような起動コードが見つかりました。

このコードリスティングを見るとわかるとおり、抽出されたマルウェアは 'header01.png' という画像ファイルに対して読み取り、書き込み、実行可能の許可を与えます。さらに詳しく調べると、この画像ファイルは、実際には Android 端末で実行可能な ELF バイナリでした。このバイナリを逆アセンブルすると、Android 端末の root 権限を不正に取得する機能があることもわかります。ちなみに、この悪用は旧バージョンである Android 2.3(Gingerbread)で動作します。
ひとたび実行されたアプリケーションは端末を完全に制御できるようになり、次のファイル 'footer01.png' を実行します。1 つ目の 'header01.png' と同じく見かけは偽りで、このファイルも画像ファイルではなく、やはり ELF バイナリです。こちらのバイナリは端末のルート権限を取得しようとするものではありません。IRC ボットとして機能し、#andros チャネルに参加してマスターへの返信を試みます。次の図は、PNG を装った ELF ファイルに埋め込まれた文字列の一部です。

このスクリーンショットからわかるように、'footer01.png' ファイルは 'border01.png' という別のファイルをインストールしようとします。先行する他の 2 つのファイルとは異なり、'border01.png' ファイルは実際には APK ファイルであり、上の図にあるコマンド(下から 2 行目、"AndroidMeActivity" という文字列を含む行)を使って実行されます。
'com.android.me' パッケージは、テキストの送信と受信の 2 つの機能を持っています。'AndroidMeActivity' クラスは、有料電話番号にテキストを送信するときに使われます。その動作のために、'getSimCountryIso()' メソッドを使って、端末が使われている現在の国または地域を検索します。見つかった結果に応じて、次のような情報を設定します。
国
/
地域
[
番号
,
メッセージ
]
ベルギー
["3075", "CODE"]
スイス
["543", "GEHEN SP 300"]
ルクセンブルク
["64747", "ACCESS SP"]
カナダ
["60999", "SP"]
ドイツ
["63000", "SP 462"]
スペイン
["35024", "GOLD"]
英国
["60999", "SP2"]
モロッコ
["2052", "CODE"]
シエラレオネ
["7604", "PASS"]
ルーマニア
["1339", "PASS"]
ノルウェー
["2227", "PASS"]
スウェーデン
["72225", "PASS"]
米国
["23333", "PASS"]
次に、上に示した有料電話番号にテキストを送信しますが、これは端末が使われている国または地域に対応しています。そして、着信テキストメッセージの処理に使われているのが 'SMSReceiver' クラスです。

このクラスは、着信テキストメッセージを確認し、先ほどの 'AndroidMeActivity' によって設定された有料電話番号から送信されたものかどうかを確かめます。送信元が有料電話番号の場合は、ユーザーから見えないように 'abortBroadcast()' メソッドを使って着信テキストメッセージを遮断します。そのかわりとして、GET 要求を使って hxxp://46.*.*.*/?=[有料電話番号]///[有料電話番号のメッセージ本文] にメッセージを転送します。
悪質なコードは、実際に 5 MB の領域を占めているわけではありません。では、残りの領域はどうなっているのでしょうか。元の APK ファイルの資産を調べると、次のような同じ画像ファイルが違う名前で 5 ファイル存在することが判明しました。それぞれが 1 MB よりやや大きいサイズです。

今回のトロイの木馬は、スーパーボウルを前に Madden NFL 12 を楽しめるアプリケーションではありません。このような悪質な Android アプリケーションの被害を受けないために、アプリケーションのダウンロードとインストールには、公式の Android マーケットまたは信頼のおける提供元だけを使うようにしてください。Android 端末のデフォルトでは、不明なソース(公式の Android マーケット以外など)からアプリケーションをインストールすることは許可されていません。シマンテックでは、このトロイの木馬を Android.FoncySMS として検出し、ユーザーを保護します。
* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。