Symantec Security Response Weblog
A New Wave of Mebroot」より
December 9,2009 Posted by Andrea Lelli

 トロイの木馬型ルートキット「Trojan.Mebroot」(別名「StealthMBR」)の感染がまたもや広がっている(関連記事:ルートキット「StealthMBR」の進化)。調査したところ,よく知られたエクスプロイト・パックが今回の感染拡大に使われていることが分かった。Mebrootの実行ファイルは,ウイルス対策ソフトによる検出を避ける目的で新型パッカーを採用していた。

 Mebrootはしばらく前から目立っていた。新たなパッカーを使うようになったほか,パソコンに対する初期感染の仕組みが非常に興味深い。筆者はネットワーク上のデータを解析して,パソコンへの侵入にJavaが使われているらしいことをつかんだ。


図1,図2●上記ネットワーク・データから,HTTPのGETリクエストを繰り返してパソコンに実行ファイルをダウンロードすることが分かる

 このデータ・ストリームには,攻撃用サーバーあてのリクエストが入っている。図1内のリクエストでは.jar形式のアーカイブ・ファイルをダウンロードする(.jarファイルは,通常.classファイルを.zip形式でアーカイブしてある)。このアーカイブ・ファイルは実行され,最終的に図2のリクエストに至る。図2には,ある実行ファイルのヘッダーが含まれる。

 実行ファイルのヘッダーがあるのは珍しい。Javaベースのエクスプロイトは以前から存在するが,実際に出回っているものの中に,このタイプはあまり見かけない。そこで感染の様子を最初から見ていこう。感染は,難読化されたJavaScriptコードを含むHTMLページが切っ掛けとなる。このコードはWebブラウザのバージョンと対応言語を調べ,そのWebブラウザに適した別ページへリダイレクトする。この別ページにも,一般的なWebメディア技術(FlashやPDF,ADODB Stream,DirectShowなど)を狙う既知のエクスプロイトで構成されたエンコード済みJavaScriptコードがある。中でも,以下のエクスプロイトにぴんと来た。


図3●Javaアプレットを使うエクスプロイト

 図3のコードは,リダイレクト先のWebページにJavaアプレットを挿入して実行し,パラメータとしてURLをアプレットに渡す(URLは16進エンコーディングでエスケープしてある)。ここからは,問題のJavaアプレットそのものに着目しよう。このアプレットは.jar形式ファイルで,エクスプロイト用Webページのコードに登場する「player.class」と,「mediapl.class」という二つのモジュールが入っている。逆コンパイルして確認したら,非常に小さなサイズのJavaアプレット内部で興味深いコードを見付けた。


図4●一つ目のJavaコード

 このコードは,権限昇格につながるぜい弱性(CVE-2008-5353)を突く。初めて報告された2009年5月時点ではMac OS Xのぜい弱性とされていたが,現在はWindowsなどほかの環境にも影響することが分かっている。攻撃方法は単純で,オブジェクトをデシリアライズして動的に読み込むというものだ(このオブジェクトは,図4で「ac-ed-00-05……」という形式にシリアライズされている)。この処理で以下のコードを動かし,Javaのサンドボックスというセキュリティ機構を避けてその時点のユーザー権限でコマンドを実行する。そして,デシリアライズ・コードの直後で「mediapl」クラスを呼び出す。


図5●三つ目のJavaクラスをデシリアライズして実行

 mediaplクラスにも別のJavaクラス(こちらも16進エンコーディングで「ca-fe-ba-be……」というデータ列にシリアライズされている)があり,動的にロードされる。このクラスはバージョン・チェックを行い,ダウンロードした実行ファイルを図6の「regsvr32」コマンドで実行する。


図6●Javaのサンドボックス外で実行される最終的なコード

 最初に書いた通り,よくあるエクスプロイト・パック同様Java以外のエクスプロイトも入っていて,一連のエクスプロイトでパソコンに攻撃を仕掛ける。今回のJavaエクスプロイトは最新版のJavaだと動かないので,普段と同じくソフトウエアのアップデートを怠らないようにして,リスクを未然に防ごう。


Copyrights (C) 2009-2010 Symantec Corporation. All rights reserved.
本記事の内容は執筆時点のものであり,含まれている情報やリンクの正確性,完全性,妥当性について保証するものではありません。
◆この記事は,シマンテックの許可を得て,米国のセキュリティ・ラボの研究員が執筆するブログSecurity Response Weblogの記事を抜粋して日本語化したものです。オリジナルの記事は,「A New Wave of Mebroot」でお読みいただけます。