IP 包路由到目標網段後,最終靠 MAC 地址交付。主機維護「IP→MAC」動態緩存表,緩存超時 (通常 1-20 分鐘) 後自動刷新。發送前查表無條目 → 發 ARP Request 廣播 → 目標回 ARP Reply → 更新緩存 → 發數據幀。**協議無任何認證機制**,任意主機可發送偽造 Reply 污染緩存。
場景:A(192.168.0.1, AA:AA:AA:AA:AA:AA) 信任 C(192.168.0.3, CC:CC:CC:CC:CC:CC) 開放 Telnet (23/TCP)。B(192.168.0.2, BB:BB:BB:BB:BB:BB) 想冒充 C 登入 A。
工具:Wireshark 抓包修改、Netwox、Bettercap、Kali `arpspoof`、自寫 Raw Socket 程序。
場景:A、C 在 192.168.0.0/24;B 在 192.168.1.0/24,中間有路由器 R。
單純 ARP 欺騙失效:A 更新緩存後仍在本地廣播找 192.168.0.3,不會發給路由器。
Gateway = R_IP (192.168.0.254)Destination = 192.168.0.3現實阻力:RFC 792/1122 限制 ICMP Redirect 接收條件極嚴 (必須來自當前網關、新路由直達、非間接路由、不指向自己),導致實戰成功率極低。但理解組合邏輯有助於構建完整威脅模型。
| 層級 | 措施 | 實施要點 |
|---|---|---|
| 網絡接入層 (L2) | DAI (Dynamic ARP Inspection) + DHCP Snooping | 交換機僅允許符合 DHCP Snooping 綁定表的 ARP 包通過,偽造包丟棄並告警;配置 `ip arp inspection vlan 10` `ip dhcp snooping limit rate 10`。 |
| 網絡接入層 (L2) | Port Security / MAC 綁定 | 接口綁定最大 MAC 數、違規動作 shutdown/protect/restrict;靜態綁定關鍵設備 MAC。 |
| 網絡層 (L3) | 禁用 ICMP Redirect 接收/發送 | Linux: `sysctl -w net.ipv4.conf.all.accept_redirects=0` `net.ipv4.conf.all.send_redirects=0` 永久寫入 /etc/sysctl.d/99-security.conf;Windows: 防火牆阻擋 ICMP Type 5 / 注冊表 `HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableICMPRedirects=0`。 |
| 主機層 | 靜態 ARP 綁定關鍵資產 | 核心服務器/網關/防火牆互相靜態綁定 `arp -s`,寫入啟動腳本/系統映像。 |
| 主機層 | 啟用 ARP 監控告警 | Linux: `arpwatch` / `arpon` 監控 MAC 變化郵件告警;Windows: 事件日志 4225/4226 (需開啟 NetEventProvider)。 |
| 管理層 | 零信任身份驗證替代 IP/MAC 信任 | 廢除「IP/MAC 白名單 = 信任」模型,改用 mTLS/SP/SPIFFE/零信任網關驗證身份與設備姿態。 |