2007年は,ARPスプーフィングという手口を使うウイルス(ARPキャッシュ・ポイズニング・ウイルス)が数多く登場した。この種のマルウエアからは大量の亜種が派生し,中国で広く流行している。先ごろ筆者らは,新たな特徴を持つARPスプーフィング・ウイルスを見つけた。
この新種のARPスプーフィング・ウイルスは,HTTP応答のセッションに攻撃用URLを挿入する。そして,怪しげなコンテンツでInternet Explorer(IE)を悪用する。同時に,コード挿入でポイズニングしたホスト・コンピュータをHTTPプロキシ・サーバーとして使う。このホストと同じサブネットにあるマシンからのインターネット・アクセスは,例外なくこのホストを経由する。
この最新ARPスプーフィング・ウイルスの特徴を詳しく見ていこう。
同じタイプのウイルスは,そのサブネットのゲートウエイのMACアドレスを,ポイズニング済みホストのMACアドレスと交換してしまう。以下のスクリーンショットは,ゲートウエイの本来のMACアドレスを表示したところである(図1)。
図1 サブネット上のゲートウエイに設定されている本来のMACアドレス |
ゲートウエイのMACアドレスが書き換えられた様子 |
続いて,ウイルス解析レポートを詳細に調べてみる。
この種のウイルスが使う手口を図3に示した。正常な状態でWebページを開くと,トラフィックは直接ゲートウエイに送られる(図3の4番)。これに対し,ARPスプーフィング・ウイルスに感染したローカル・ネットワークでは,トラフィックはポイズニング済みホストを経由してゲートウエイに届く(図3の5番から6番の経路)。
図3 ARPポイズニングの手口 |
何が起きているかを順番に説明すると,
(1)ポイズニング済みホストが,「ゲートウエイは私です」という内容のARPスプーフィング・パケットをブロードキャストする
(2)サブネット内の各マシンはARPスプーフィング・パケットを受信し,管理下のARPテーブルを更新する。その結果,ARPキャッシュがポイズニングされる
(3)あるマシンがポイズニング済みホスト経由でインターネットにアクセスすると,ポイズニング済みホストはこのHTTPパケットをゲートウエイに転送する(ポイズニング済みホストは,wpcap.dllまたはWanPacket.dllなどのネットワーク・ドライバを使ってネットワークからトラフィックを受け取る)
(4)ゲートウエイ(実はポイズニング済みホスト)がHTTP応答パケットに攻撃用URLを挿入する。汚染されたこのパケットは,アクセス元のマシンに送られる。
図4のコードを見ると,ウイルスがどのように攻撃用URLを挿入するか分かる。
図4 ARPキャッシュ・ポイズニング・ウイルスのコード。HTTP応答パケットに攻撃用URLを挿入する部分 |