ZeuS(別名ZBot)は、業界では非常に有名なマルウェアです。その目的は、情報、特に電子詐欺に使用する金融機関の認証情報を盗むことです。PCが電子取引を実行するメイン手法だったため、これまでは、ZeuSはPCをターゲットとしたものしか存在しませんでした。しかし、モバイルデバイスがますます普及し、多くの企業が2要素認証の第2の要素としてmTANs(Mobile Transaction Authentication Number)のSMS経由での送信といったモバイルデバイス向けの新しいセキュリティ対策を導入していることから、2010年9月には、Symbian、Blackberry、Windows MobileをターゲットにしたZeuSの亜種が発見されました。この亜種の目的は、銀行からユーザー宛に送信されるSMSを傍受し、そこから取得したmTANsをリモートサーバーに転送してSMSを利用した銀行の2要素認証を破ることです。そして今回、ZeuSのAndroid版が登場したとのことです。
Fortinetのアクセル・アプヴリル(Axelle Apvrille)氏によると、「最近、様々な技術フォーラムでAndroidユーザーをターゲットにしたZeuSに関して盛んに議論されている」とのことであり、FortinetとF-Secure、s21sec、Kasperskyといったセキュリティ企業が、スマートフォン用OSとして最も普及しているAndroidをターゲットにしたZeuSの亜種、Zitmo for Androidを発見したと報じています。
アプヴリル氏によると、このサンプルは、「Zbotを複数のプラットフォームに配信するために構成されたWebサーバーによってGoogle Android OS搭載機器に供給された」とのことです。このアプリケーションがZeuSファミリーと何らかの関係があるのかどうか調べてみましょう。一見して、この悪意あるアプリケーションは、セキュリティアプリケーションであるRapportになりすまそうとしているようです。アプヴリル氏によると、Rapportは、「マン・イン・ザ・ブラウザーと呼ばれるマルウェアと中間者攻撃(マン・イン・ザ・ミドル・アタック)を防止すること」を目的にしているとのことです。実際、アイコンはTrusteerの公式ロゴによく似ています。
しかしAndroidは、アプリケーションのインストール時には、必ずデバイス上でアプリケーションを実行するために必要となるパーミッションを表示します。このアプリケーションは、2要素認証の2番目の要素とされるSMSを受信するセキュリティアプリケーションになりすましてフィッシング詐欺を行うため、パーミッションはRECEIVE_SMS、INTERNETおよびREAD_PHONE_STATEと表示されます。オリジナルのapkファイルの中にあるAndroidマニフェストによると、このアプリケーションは、ユーザーが偽アイコンをダブルクリックすると実行されるアクティビティ、ユーザーが知らないうちにバックグラウンドで実行されるサービス、そしてユーザーがSMSを受信するたびに実行される“SmsReceiver”という名称のクラスで構成されています。
アクティビティが起動されると、セキュリティアプリケーションTrusteer Rapportに見せかけた偽のユーザーインタフェースが表示され、ユーザーに対して銀行のWebサイトで使用するべき「アクティベーションキー」を表示します。しかし、実際に表示される番号は、“-”という文字で区切られたIMEI(International Mobile Equipment Identity)です。
※上記の例では、アプリケーションがエミュレーター上で実行されているので、表示されている番号は0になっています
アプリケーションがインストールされると、ユーザーがSMSを受信するたびにSmsReciver内部のコードが実行されます。実際には、このコードは取得したSMSを「MainService」に渡すだけです。このサービスはスレッドを開始して、SMSから発信元アドレス(送信者)とメッセージ本文を収集し、この情報をHTTPプロトコルでデータ転送に広く使用されている特定の構造属性と値のペアに格納します。
送信者とメッセージ本文の情報を取得すると、そのモバイルデバイスのIMEIも収集し、POST要求メソッドを使用するJSONオブジェクトにより、すべての情報をリモートサーバーに送信します。
問題は、このマルウェアが本当にAndroid版のZeuSなのか、という点です。解析結果を考慮に入れると、おそらくこのサンプルは単なるSMSスパイウェアと思われます。根拠は以下の通りです。
- 今回のマルウェアは、ADRDのようなAndroidを対象とした悪意あるコードと比較して、全体的に高度なマルウェアではありません。根拠としては、受信されるすべてのSMSメッセージを傍受して、それをアプリケーションのコード内に平文テキストで記述されたリモートサーバーに転送するだけだからです。また、このアプリケーションはリモートサーバーとの通信に暗号化を使用しておらず、解析を困難にするコードの難読化も行っていません。
- 傍受されたメッセージがフィルタリングされ、特定の銀行をターゲットにしたり、メッセージ内に存在する特定の認証コードを検索したりする目的で使用されているという証拠はどこにもありません。むしろ、ユーザー名とパスワードをSMSで送信されたmTANとリアルタイムで相関させる必要がある一方で、メッセージはすべてリモートサーバーに転送されるため、ZeuSの犯罪者にとっては、悪事を働きにくくなっています(ただし自動化を利用すれば可能)。
- ZeuSとは異なり、このマルウェアはボットを制御しているデバイスを変更するためのSET ADMINのようなC&C(コマンド&コントロール)コマンドは実行しません。また、必要な場合に備えてSMSを収集し、URLを変更するようなメカニズムも搭載されていません。
このアプリケーションは、ZeuSマルウェアを活発的に配布していたWebサーバーで確認されたものですが、実際の証拠とアプリケーションの解析結果から、このマルウェアがZeuSの亜種であるという説を実証することはできませんでした。なお、このマルウェアは偽セキュリティソフトとして活動していることが確認されており、多くのマルウェアで使用されているソーシャルエンジニアリングの手法として、決して珍しいものではありません。
マカフィーでは、金融機関の認証情報を盗み出すAndroid向けのマルウェアが、今後も数多く開発されることを予想しています。なお、マカフィー製品では、最新のDATによってこのマルウェアをAndroid/SpySMSとして検出します。
関連記事
- [2011/10/17] Androidを狙うバンキング系トロイの木馬、「Spitmo」と「Zitmo」
- [2011/08/22] 通話内容を記録する最新のAndroidマルウェア:1年間の進化の軌跡
- [2011/08/15] Androidスパイウェア「SMS Spy」
- [2011/04/18] 携帯端末を狙うZeusクライムウェア
- [2011/03/14] Google発のAndroid Market Security Toolについて
- [2010/10/05] Zeusボットネットについて
- [2010/08/20] モバイルのセキュリティ-3:Androidのセキュリティ
- [2010/08/17] 古い手法の新たなAndroidマルウェアを発見
※本ページの内容はMcAfee Blogの抄訳です。
原文:Dissecting ZeuS for Android (Or is it just an SMS spyware?)