ARP キャッシュの読解
社内 LAN の PC(192.0.2.50,ゲートウェイは静的に 192.0.2.1 と設定)で通信が不安定になった。ルータ 192.0.2.1 の MAC アドレスは 00:00:5e:00:53:01 である。PC での次のコマンドの結果から推測できることとして,最も適切なものはどれか。
$ ip neigh
192.0.2.1 dev eth0 lladdr 00:00:5e:00:53:66 REACHABLE
192.0.2.25 dev eth0 lladdr 00:00:5e:00:53:66 STALE- ア192.0.2.25 の機器が,192.0.2.1 に自身の MAC アドレスを対応付けた偽の ARP 応答を送っており,この PC から外部への通信は 192.0.2.25 の機器を経由している可能性がある。
- イ送信元 MAC アドレスを偽った大量のフレームによって L2 スイッチの MAC アドレステーブルがあふれた結果,PC の ARP キャッシュが書き換えられた。
- ウ192.0.2.25 の機器が不正な DHCP サーバとして動作し,この PC に誤ったデフォルトゲートウェイのアドレスを配布した。
- エ一つの MAC アドレスに二つの IP アドレスを対応付けた状態は ARP の仕様上保持できないので,この PC は 192.0.2.1 宛てのフレームを送信できず,外部と通信できなくなっている。
正解と解説を見る
正解 ア
この問題の基礎知識
- ARP は IP アドレスに対応する MAC アドレスを求めるプロトコルであり,要求をブロードキャストで送り,該当する機器が応答する。得られた対応は ARP キャッシュに保持される。
- ARP は応答の正当性を検証しないので,偽の ARP 応答で相手のキャッシュを書き換え,通信を自身に経由させて盗聴・中継する ARP スプーフィング(ARP ポイズニング)が可能である。
- ip neigh の出力の各行は IP アドレスと MAC アドレス(lladdr)の対応を示す。複数の IP アドレスが同じ MAC アドレスに対応すること自体は ARP の仕様上許される。
- MAC フラッディングはスイッチの MAC アドレステーブルをあふれさせる攻撃,不正な DHCP サーバは誤ったゲートウェイなどの設定を配布する攻撃であり,端末の ARP キャッシュの書換えとは異なる。
ゲートウェイの IP アドレスに本来とは異なる MAC アドレスが対応付けられ,それが 192.0.2.25 の MAC アドレスと一致している。ARP は応答の正当性を検証しないので,偽の ARP 応答でキャッシュを書き換えて通信を中継・盗聴する ARP スプーフィングが疑われる。
MAC フラッディングであふれるのはスイッチの MAC アドレステーブルであり,フレームが全ポートに転送されるようになるが,端末の ARP キャッシュの IP アドレスと MAC アドレスの対応は変わらない。
この PC のデフォルトゲートウェイは静的に設定されている。また,不正な DHCP サーバが配布するのはゲートウェイの IP アドレスであり,192.0.2.1 に対応する MAC アドレスが変わったことの説明にならない。
ARP のキャッシュはプロトコルアドレスごとにハードウェアアドレスを保持するものであり,複数の IP アドレスが同じ MAC アドレスに対応してもよい。PC は 00:00:5e:00:53:66 宛てにフレームを送信し続ける。
照合の根拠(2 件)
- ア(正解): ARP は受信したパケットの送信元の情報でキャッシュの MAC アドレスを上書きする(正当性は検証しない)。エ(誤り): 表はプロトコルアドレスごとのエントリであり,異なる IP アドレスが同じ MAC アドレスを持つことは妨げない。イ(誤り): ARP キャッシュは ARP パケットで更新されるもので,スイッチの MAC アドレステーブルのあふれでは変わらない
If the pair <protocol type, sender protocol address> is already in my translation table, update the sender hardware address field of the entry with the new information in the packet and set Merge_flag to true.
RFC 826 · Packet Reception(新しいタブで開きます) - ア(正解): 悪意のあるホストは偽の ARP パケットで他人のアドレスに自身の MAC アドレスを対応付けられる。エ(誤り): 一つのホストが複数のアドレスを自身の MAC アドレスで主張することもできる
A malicious host may send fraudulent ARP packets on the network, interfering with the correct operation of other hosts. For example, it is easy for a host to answer all ARP Requests with Replies giving its own hardware address, thereby claiming ownership of every address on the network.
RFC 5227 · Section 5 Security Considerations(新しいタブで開きます)
ゲートウェイ 192.0.2.1 の MAC アドレスが本来の 00:00:5e:00:53:01 ではなく,192.0.2.25 と同じ 00:00:5e:00:53:66 になっているので,192.0.2.25 による ARP スプーフィングで外部宛ての通信が中継されている可能性がある。ウ はゲートウェイが静的設定である点と,変わったのが IP アドレスではなく MAC アドレスである点で排除される。