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

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

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

図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テーブルのログを分析し,攻撃元のサーバーをネットワークから切り離す。

この先は会員の登録が必要です。今なら有料会員(月額プラン)は12月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら