ガイドSC

ARP・DHCPスプーフィングとSnooping・DAI

公開: 2026-09-26更新: 2026-09-26
DHCPのDORA、ARP対応表、偽Offer・偽ARP、DHCP Snooping bindingとDAIの例外を追う。

VLAN10の社員端末WS-41がDHCPで10.20.10.41を取得し、ゲートウェイ10.20.10.1のMACアドレスをARPで調べます。攻撃者が同じVLANに不正DHCPサーバと偽ARP応答を置いた場合、何が変わるのでしょうか。DHCP SnoopingとDAIを含め、IP・MAC・ポート・時刻を結んで読む記事です。

読む順序は、用語と配置→正常な処理→異常ログ→調査と対策→復旧→演習です。接続・検知・遮断・被害を別々の事実として扱います。以下の構成、時刻、アドレス、ログ、設定値は教材用の架空例です。

1. 用語と役割を構成に結び付ける

用語

この事例での意味と限界

ARP

同一L2領域でIPv4アドレスに対応するMACを問い合わせる。ARPの応答は暗号学的に送信者を認証しない。IPv6ではNDPを使い、ARPとは別。

ARPスプーフィング

攻撃者が10.20.10.1を自分のMACだと主張し、端末の対応表を誤らせる。攻撃者が同じブロードキャスト領域にいることが典型的な前提。

DHCP

Discover、Offer、Request、AckでIPv4設定を配る。IP、ゲートウェイ、DNS、リース期間を渡す。Offerを受けただけでは確定しない。

DHCPスプーフィング

不正サーバが先にOffer/Ackを返し、偽ゲートウェイやDNSを配る。端末の既存リースが直ちに変わるとは限らない。

DHCP Snooping

SWの信頼ポートから来たサーバ応答だけを通し、正規リースからIP-MAC-VLAN-ポートのbindingを作る機能。実装と設定に依存する。

DAI

Dynamic ARP Inspection。未信頼ポートからのARPをbinding等と照合し、偽の対応を破棄する。静的IP端末は別途登録が必要になり得る。

2. 構成と信頼境界

WS-41はGi1/0/4、攻撃者端末はGi1/0/9、正規DHCPサーバへの上りはGi1/0/48です。全端末はVLAN10にあり、正規DHCPはWS-41へ10.20.10.41/24、GW10.20.10.1、DNS10.20.10.53を配ります。Gi1/0/48だけをDHCP応答の信頼ポートにし、端末ポートは未信頼にします。

DHCP SnoopingとDAIの検査点不正Offerと偽ARPは端末側未信頼ポートで検査する。端末側VLAN10正規側1234WS-41攻撃者端末アクセスSWDHCPサーバGW
DHCP SnoopingとDAIの検査点
  1. 1. DiscoverとARP
  2. 2. 偽Offerと偽ARP
  3. 3. 正規DHCPと通信
  4. 4. GW宛て通信

不正Offerと偽ARPは端末側未信頼ポートで検査する。

図の矢印は物理・論理上の接続を示し、攻撃パケットが通過したことを保証しません。Gi1/0/9からの偽Offerと偽ARPはSWの未信頼ポートで拒否される設計です。

3. 正常な処理を順に追う

  1. WS-41がUDP68→67のDHCPDISCOVERを送る。正規サーバがDHCPOFFERで候補IPと設定を返す。

  2. WS-41がDHCPREQUESTで使う候補を選び、サーバがDHCPACKを返してリースを確定する。

  3. SWは通過したDHCP交換から10.20.10.41、WS-41のMAC、VLAN10、Gi1/0/4、期限をbindingへ記録する。

  4. WS-41がGW10.20.10.1のMACをARP要求し、正規GWの応答を得る。DAIは未信頼ポート発のARPをbinding等で照合する。

DHCPの標準プロトコルだけで、Offerを出したサーバが正規か自動的に保証されるわけではありません。Snoopingはスイッチでの配置制御です。ARPの偽応答も同じVLAN内で起こるため、VLAN境界だけでなく端末が接続するSW上の検査が重要です。

4. 設定値・ログの読み方

項目

値の意味と判断の限界

message_type/xid

Discover/Offer/Request/AckとトランザクションIDを対応させる。Offerだけでリース確定としない。

server_id/gateway/dns

DHCPが指示する値。攻撃者はDNSだけを差し替えて誘導する場合もある。

binding

IP-MAC-VLAN-ポート・リース期限の組。DAIの照合元だが、古い・欠けたbindingなら正規通信も落ちる。

arp sender_ip/mac

ARPで主張された対応。受け取った事実と正当なGWであることは別。

trust_state

DHCPサーバへの上りだけを信頼し、端末ポートを未信頼にする。信頼を広げると偽Offerが通る。

次の架空ログでは、正規リースを得た後、攻撃者ポートからの偽Offerと偽ARPを破棄しています。

text
13:00:00 dhcp xid=0x41 type=ACK ip=10.20.10.41
  gw=10.20.10.1 dns=10.20.10.53 lease=3600
13:00:01 sw binding=10.20.10.41/02:00:00:00:10:41
  vlan=10 port=Gi1/0/4
13:02:00 sw port=Gi1/0/9 type=DHCPOFFER action=drop
13:02:01 sw port=Gi1/0/9 arp_ip=10.20.10.1
  arp_mac=02:00:00:00:10:66 action=DAI-drop

`DAI-drop`はこの偽ARPがSWを通らなかったことを示します。WS-41がすでに偽のARP情報を持っていたか、別ポートで不正応答を受けたかは端末のARPキャッシュと時刻付き記録で確認します。

5. 攻撃・障害時の差分

異常・攻撃条件

観測、成立条件、対策の位置

偽DHCP Offer

同じL2領域の攻撃者が先にDNSやGWを提示。端末ポートのOfferをSnoopingで止める。

偽ARP Reply

GWのIPに攻撃者MACを対応付ける。DAIで未信頼ポートの主張をbinding等と照合。

信頼ポートの誤設定

攻撃者ポートをtrustedにすると検査を迂回。物理ポートと対向を確認する。

静的IP端末

DHCP bindingがないためDAIで正規ARPを落とす可能性。承認済みの静的bindingやARP ACLを準備。

SW再起動

binding消失後すぐDAIを有効にすると通信断。リース再取得とbinding復元を計画する。

DAIが守るのは設定されたVLANとスイッチの未信頼ポートで観測するARPです。別SWや別VLAN、IPv6 NDP、端末自体の侵害まで一つで止めるわけではありません。

6. 切り分けに必要な証拠

  • WS-41のリース、GW、DNSとARP表を時刻付きで取得する。

  • SWのbindingとtrust設定をGi1/0/4、Gi1/0/9、Gi1/0/48で比較する。

  • DHCPサーバのACK、スイッチのdrop、端末の実通信先を照合する。

  • 不正なDNSが配られていれば、アクセスした名前と宛先、認証情報入力の有無を調べる。

偽OfferのdropはそのOfferによる更新を防いだ証拠ですが、別時刻や別経路からの配布は不明です。ARP表の現在値だけで過去の傍受や改ざんを断定しません。

6.1 判断を誤りやすい境界と詳しい確認

確認点

具体的な判断

DHCPのDORA

Discoverをブロードキャストし、ServerがOffer、ClientがRequest、ServerがACKを返す。初回はUDP 68→67、サーバ応答は67→68。リレーを使う場合は転送位置を区別する。

偽DHCP Offer

端末に偽ゲートウェイやDNSを配ると、通信の盗聴・誘導・障害が起こる。早い応答だけでは正規と判定できず、server_id、割当値、接続ポートを見る。

Snoopingの境界

正規サーバまたはリレーへ向かうポートをtrusted、端末向けをuntrustedにする。trustedを広げ過ぎると偽サーバを止められず、狭過ぎると正規DHCPも落ちる。

bindingの内容

ACKからIP、MAC、VLAN、ポート、リース等の対応を記録する。スイッチ再起動時の保存、リース更新、移動端末の古い記録を確認する。

ARPの機能

同一L2内でIPv4宛先または次ホップIPのMACを解決する。ARP応答を無条件に受けると、攻撃者がゲートウェイIPを自分のMACと誤認させ得る。

DAIの検査

untrusted側のARPをbinding等と照合する。静的IP端末はDHCP bindingがないので、検証済みのARP ACL等を用意し、単純にtrustへ逃がさない。

IPv6は別

ARPとDHCP Snooping/DAIの説明は主にIPv4。IPv6の近隣探索やRAの攻撃には別の制御が必要で、IPv4対策だけで完全とは言えない。

架空の端末WS-41が偽Offerを受けた場合、DNSだけが悪意あるサーバへ変わることもあります。ゲートウェイIPが正しくても安全とは言えません。端末のDHCPリース、DNS設定、Offerのserver_id、スイッチのポート、正規DHCPのログを時刻で結びます。

ARPスプーフィングでは、攻撃者が『ゲートウェイIPは自分のMAC』というARP応答を繰り返します。被害端末のARPキャッシュが攻撃者MACへ変われば通信が攻撃者を経由し得ますが、実際の盗聴や改ざんには攻撃者側の転送やTLS検証の失敗など追加条件が要ります。キャッシュ変化だけで資格情報の漏えいを断定しません。

DAI導入後に通信が止まった場合、即座に全ポートをtrustedにするのは危険です。dropされたARPのIP/MAC/VLAN/ポートを確認し、静的アドレス機器、DHCPリレー、スイッチ間接続の設計と照合します。例外は対象ポートと対応関係を限定し、期限と承認記録を残します。

7. 設定変更と例外運用

変更・例外

失敗しやすい点と確認

DHCPサーバ移設

新しい上りポートだけをtrustedへ変更し、端末ポートを誤って信頼しない。

静的IP追加

DAI用binding・ARP ACLとポートを事前登録。DHCPを使わない端末を漏らさない。

端末移設

MACとIPが変わらなくてもポート・VLANが変わる。旧bindingを消し、新リースで更新する。

DHCP Relay

L3を跨ぐ場合はrelayとOption82の扱い、信頼ポート、サーバ側の許可を確認する。

段階導入ではSnoopingを先に有効にしてbindingを確認し、その後DAIを有効化します。いきなりDAIを全VLANへ適用すると、既存リースのbinding欠落で正常端末が通信不能になり得ます。

8. 封じ込めと復旧条件

  1. 偽Offer・ARPの原本、SWのdrop、端末の設定・キャッシュを保全する。

  2. 攻撃者ポートを隔離し、trusted設定とVLAN適用範囲を修正する。

  3. WS-41のリースを正規サーバから更新し、ARPキャッシュを正しいGWへ戻す。

  4. DNS経由の誘導や中間者による認証情報・セッション漏えいを調査する。

  5. 正規Offerは通り偽Offerと偽ARPは落ちること、静的IP端末も通信できることを確認する。

IP設定が戻っただけで被害は終わりません。不正GWやDNSを使っていた時間帯の通信を調べ、必要なら資格情報を更新します。

9. 科目B(午後)での解答手順

DORAの順序、OfferとAckの違い、ARPの主張者、SWのtrust位置、DAIのbinding元を順に読みます。攻撃者がどのL2領域にいるかを先に示すと成立条件が明確になります。

  • DHCPのIP・GW・DNSを分ける。

  • ARPのIP-MAC対応とDHCP bindingを混同しない。

  • 静的IPとSW再起動の例外を確認する。

10. 短答演習

演習1:Offerの意味

条件:偽Offerを受け取った。 質問:リース確定か。

解答:まだ。Request/Ackを確認する。 誤答の理由:OfferとAckを混同している。

演習2:ARP応答

条件:10.20.10.1が攻撃者MACと主張。 質問:成立条件は。

解答:同じL2領域で端末がその情報を採用すること。 誤答の理由:別VLANを無条件で越えると考えている。

演習3:Snooping

条件:Gi1/0/9がuntrustedでOffer送信。 質問:どうなるか。

解答:SWが破棄する設計。 誤答の理由:端末ポートをtrustedと仮定している。

演習4:DAI binding

条件:静的IP機器にbindingなし。 質問:どうなるか。

解答:正規ARPもdropされ得る。 誤答の理由:DAIが自動で全静的IPを知ると誤解している。

演習5:SW再起動

条件:binding DBが消失。 質問:先に何を確認するか。

解答:復元またはリース再取得。 誤答の理由:DAIだけ有効にすれば安全と考えている。

演習6:復旧

条件:正しいDHCP設定へ戻した。 質問:調査終了か。

解答:違う。不正設定中の通信と漏えいを調べる。 誤答の理由:設定復旧と被害調査を同一視している。

11. 一次資料

RFC 826:ARP

RFC 2131:DHCP

Cisco:DHCP SnoopingとDAIのbinding

この記事についてAIに深掘り質問する

ChatGPT、Claude、Perplexityにこの記事を参照させ、要点の確認や疑問点を自由に質問できます。

次におすすめの学習

編集・検証について

編集・検証:IT資格ラボ編集部

IPAが公開する試験要綱・シラバス・過去問題と、各技術の公式資料を優先して内容を確認しています。制度変更や誤りを確認した場合は、記事を見直して更新します。

編集方針・情報源・訂正方針を見る
この記事を共有する