ARP spoofing HTTP infection malware」より
December 21,2007 posted by Kai Zhang, Security Researcher

 2007年は,ARPスプーフィングという手口を使うウイルス(ARPキャッシュ・ポイズニング・ウイルス)が数多く登場した。この種のマルウエアからは大量の亜種が派生し,中国で広く流行している。先ごろ筆者らは,新たな特徴を持つARPスプーフィング・ウイルスを見つけた。

 この新種のARPスプーフィング・ウイルスは,HTTP応答のセッションに攻撃用URLを挿入する。そして,怪しげなコンテンツでInternet Explorer(IE)を悪用する。同時に,コード挿入でポイズニングしたホスト・コンピュータをHTTPプロキシ・サーバーとして使う。このホストと同じサブネットにあるマシンからのインターネット・アクセスは,例外なくこのホストを経由する。

 この最新ARPスプーフィング・ウイルスの特徴を詳しく見ていこう。

 同じタイプのウイルスは,そのサブネットのゲートウエイのMACアドレスを,ポイズニング済みホストのMACアドレスと交換してしまう。以下のスクリーンショットは,ゲートウエイの本来のMACアドレスを表示したところである(図1)。

図1 サブネット上のゲートウエイに設定されている本来のMACアドレス
図1 サブネット上のゲートウエイに設定されている本来のMACアドレス
 問題のARPスプーフィング・ウイルスを動かすと,ゲートウエイのMACアドレスがポイズニング済みホストのものに書き換えられてしまった。以下のスクリーンショットでその様子を示した(図2)。

ゲートウエイのMACアドレスが書き換えられた様子
ゲートウエイのMACアドレスが書き換えられた様子

 続いて,ウイルス解析レポートを詳細に調べてみる。

 この種のウイルスが使う手口を図3に示した。正常な状態でWebページを開くと,トラフィックは直接ゲートウエイに送られる(図3の4番)。これに対し,ARPスプーフィング・ウイルスに感染したローカル・ネットワークでは,トラフィックはポイズニング済みホストを経由してゲートウエイに届く(図3の5番から6番の経路)。

図3 ARPポイズニングの手口
図3 ARPポイズニングの手口

 何が起きているかを順番に説明すると,
(1)ポイズニング済みホストが,「ゲートウエイは私です」という内容のARPスプーフィング・パケットをブロードキャストする
(2)サブネット内の各マシンはARPスプーフィング・パケットを受信し,管理下のARPテーブルを更新する。その結果,ARPキャッシュがポイズニングされる
(3)あるマシンがポイズニング済みホスト経由でインターネットにアクセスすると,ポイズニング済みホストはこのHTTPパケットをゲートウエイに転送する(ポイズニング済みホストは,wpcap.dllまたはWanPacket.dllなどのネットワーク・ドライバを使ってネットワークからトラフィックを受け取る)
(4)ゲートウエイ(実はポイズニング済みホスト)がHTTP応答パケットに攻撃用URLを挿入する。汚染されたこのパケットは,アクセス元のマシンに送られる。

 図4のコードを見ると,ウイルスがどのように攻撃用URLを挿入するか分かる。

図4 ARPキャッシュ・ポイズニング・ウイルスのコード。HTTP応答パケットに攻撃用URLを挿入する部分
図4 ARPキャッシュ・ポイズニング・ウイルスのコード。HTTP応答パケットに攻撃用URLを挿入する部分