2008年6月1日から2日にかけて,ホスティング事業者のさくらインターネットが預かる複数のサーバーの送信データが改ざんされる事件があった。この改ざんは1980年代に標準化されたプロトコル,ARPの仕様を悪用した「ARPスプーフィング」によるものだった。ARPスプーフィングとは,LAN内の他のマシンあての通信を乗っ取る手口である。乗っ取ることで通信内容の改ざんが可能になる。

エンド・ユーザーに被害が及ぶ可能性も

 さくらインターネットの事件では,同社のデータ・センター内のサーバーの1台にぜい弱性があり,マルウエアに感染。このマルウエアが同一LAN内の他のサーバーにARPスプーフィングを仕掛け始めた。他のサーバーがARPでLAN内のルーター(デフォルト・ゲートウエイ)のMACアドレスを問い合わせた際,感染サーバーが自身のMACアドレスを返信。以降,インターネットに出て行く通信をすべて感染サーバー経由にしてしまった。この時,感染サーバーを経由するHTMLデータなどに悪質なコードを埋め込まれると,エンド・ユーザーのパソコンがマルウエアに感染させられたり,悪質なWebサイトに誘導されてしまう恐れがあった(図1)。

図1●ARPスプーフィングの例<br>2008年6月にホスティングなどを手がけるさくらインターネットで起こったケース。サーバーCから,インターネットに出て行く通信データを改ざんされるといった被害が起こった。
図1●ARPスプーフィングの例
2008年6月にホスティングなどを手がけるさくらインターネットで起こったケース。サーバーCから,インターネットに出て行く通信データを改ざんされるといった被害が起こった。
[画像のクリックで拡大表示]

 主にインターネット上で活用するDNSやBGPと異なり,ARPはLAN内で利用する。だが,ARPスプーフィングをイントラネット内部だけの脅威と考えるのは間違いだ。図1のように,最近ではインターネットに公開されているサーバーのぜい弱性を利用してARPスプーフィングを仕込み,インターネット経由でアクセスしてくるエンド・ユーザーのパソコンに被害を与えるケースが増えている。

IPとMACアドレスの関連付けを改ざん

 ARPはIP通信(レイヤー3)で使うIPアドレスと,イーサネット通信(レイヤー2)で使うMACアドレスの関連付けを担う。

 例えばLAN内のサーバーからインターネットを経由した先にあるパソコンにパケットを送る場合,サーバーはイーサネットによる通信を開始するため,デフォルト・ゲートウエイのIPアドレス(ここではx.x.x.x)からMACアドレスを調べる必要がある。その際に使うプロトコルがARPで,LAN内のすべての機器に対して「IPアドレスx.x.x.xの機器のMACアドレスは?」と問い合わせる。該当するIPアドレスを持つデフォルト・ゲートウエイは,自分のMACアドレスをサーバーに送り返す。

 イーサネットで通信をする機器は,MACアドレスとIPアドレスの関連付けを記述した「ARPテーブル」を持っている。1度調べたMACアドレスは「ARPキャッシュ」としてARPテーブルに保存しておき,以降の通信の際に参照する。ARPスプーフィングは,このARPテーブルに偽の情報をキャッシュさせて通信を乗っ取る。

 ARPはLAN内で素早くMACアドレスを知るための簡易プロトコルなので,認証機能を備えていない。仕様上は,ARPの問い合わせ/応答が正しいかどうかは確認できないのだ。

ARPテーブル監視などで対策

 ARPスプーフィングを検出するにはサーバーやルーターを監視する手段がある。さくらインターネットでは,まず監視サーバーを設置し,定期的にデフォルト・ゲートウエイのIPアドレスあてにARPで問い合わせを投げることにした。複数の機器から応答があったら,管理者に警告する。また,デフォルト・ゲートウエイのルーターのARPテーブルを監視し,「同じMACアドレスに関連付けられたIPアドレスが複数ある」,「複数のIPアドレスのMACアドレスが一度に変化した」場合などはARPスプーフィングの疑いがある。この場合はARPテーブルのログを分析し,攻撃元のサーバーをネットワークから切り離す。