2025-3-1-ARP协议与攻击防护

2025-3-1-ARP协议与攻击防护

三月 01, 2025

ARP工作原理

地址解析协议(ARP, Address Resolution Protocol) 是 TCP/IP 网络中的关键协议,它用于将 IP 地址解析为 MAC 地址,以便设备能够在本地网络中通信。

ARP 的基本工作流程如下:

  1. 主机 A 发送 ARP 请求(广播)

    • 当主机 A 需要知道目标主机 B 的 MAC 地址时,它会发送一个 ARP 请求,广播到整个子网,格式如下:

      谁是 192.168.1.2?请告诉 192.168.1.1

​ 2.目标主机 B 发送 ARP 响应(单播)

  • 目标主机 B(192.168.1.2)收到 ARP 请求后,查找自己的 IP 地址,并返回一个 ARP 响应,将自己的 MAC 地址发回给主机 A。
  1. 主机 A 存储 ARP 映射
  • 主机 A 收到 ARP 响应后,会将目标主机 B 的 IP 和 MAC 地址存入 ARP 缓存表(ARP Cache),避免重复查询,提高效率

示例:查看当前 ARP 缓存表

arp -a

APR欺骗攻击

ARP 没有身份验证机制,因此攻击者可以伪造 ARP 响应,欺骗网络中的其他设备,将流量重定向到自己,从而进行 中间人攻击(MITM, Man-In-The-Middle) 或者 流量窃听

ARP 欺骗的基本原理

  1. 攻击者伪造 ARP 响应,将 网关的 MAC 地址修改为自己的 MAC 地址,让受害者将数据发送给攻击者。
  2. 攻击者同时向网关发送伪造的 ARP 响应,冒充受害者 IP 地址,使网关误以为攻击者是受害者。
  3. 受害者与网关之间的通信都会经过攻击者,攻击者可以窃听、篡改或转发数据。
执行 ARP 欺骗攻击

Kali Linux 上使用 arpspoof 进行 ARP 欺骗攻击:

1
2
3
4
# 让目标 192.168.1.100 认为攻击者是网关 192.168.1.1
arpspoof -i eth0 -t 192.168.1.100 192.168.1.1
# 让网关 192.168.1.1 认为攻击者是目标 192.168.1.100
arpspoof -i eth0 -t 192.168.1.1 192.168.1.100

执行后,攻击者就成为了受害者和网关之间的“中间人”,可以拦截所有数据。

ARP攻击局限

ARP 欺骗的主要局限性是 只能在同一广播域(同一局域网)内生效,因为 ARP 数据包不会跨越路由器。

  • 如果攻击者和受害者不在同一网段,ARP 欺骗攻击 无法直接生效
  • 但如果可以 近源渗透(例如 WiFi 入侵、获取 VPN 接入权限),攻击者仍可以利用 ARP 欺骗进行攻击。

ARP欺骗攻击防御

由于 ARP 本身没有安全机制,所以需要采取额外的防护措施。

1. 使用 ARP 静态绑定

最有效的防御方法是使用 静态 ARP 绑定,手动将 IP 绑定到正确的 MAC 地址:

1
2
# 在 Windows 上永久绑定网关 IP 和 MAC 地址
arp -s 192.168.1.1 aa-bb-cc-dd-ee-ff

在 Linux/macOS 上:

1
sudo ip neigh add 192.168.1.1 lladdr aa:bb:cc:dd:ee:ff dev eth0 nud permanent

注意:

  • 静态绑定适用于小型网络,但在大型企业网络中维护难度较高。

2. 启用动态 ARP 检测(DAI)

企业级交换机(如 Cisco、H3C)支持 动态 ARP 检测(DAI, Dynamic ARP Inspection),可以防止 ARP 欺骗:

1
ip arp inspection vlan 10

3. 使用防火墙检测 ARP 攻击

许多 防火墙(如 iptables)可以监测 ARP 异常流量:

1
2
iptables -A INPUT -p arp --arp-opcode Request -m limit --limit 5/s -j ACCEPT
iptables -A INPUT -p arp --arp-opcode Request -j DRO

这样可以限制 ARP 请求的频率,减少 ARP 洪水攻击的风险。

高级攻击-ARP洪水

ARP 洪水攻击(ARP Flooding)是一种 DoS(拒绝服务)攻击,攻击者不断发送大量伪造的 ARP 包,使交换机的 ARP 表溢出,导致:

  • 交换机无法正确解析 MAC 地址,进入 Hub 模式,导致所有流量广播,增加网络拥塞。
  • 攻击者可以监听大量流量,从而获取敏感信息。

总结

| 攻击类型 | 描述 | 防御方法 | | ———————- | ————————————————– | ———————————————– | | ARP 欺骗 | 伪造网关/目标 IP 的 MAC 地址,进行流量劫持 | 静态 ARP 绑定,启用 DAI,使用防火墙检测 | | ARP 洪水 | 发送大量 ARP 数据包,导致交换机崩溃或进入 Hub 模式 | 限制 ARP 请求速率,使用防火墙规则 | | MITM(中间人攻击) | 拦截受害者与网关的流量,进行监听或数据篡改 | SSL/TLS 加密,使用 VPN,使用静态 ARP |

结论

  • ARP 协议是 无状态的,没有安全机制,容易受到欺骗攻击。
  • ARP 欺骗 可以用于 流量劫持、监听、数据篡改,但需要在同一广播域内。
  • ARP 洪水 可以 让交换机进入 Hub 模式,监听整个网络
  • 防御方法包括:静态 ARP 绑定、启用动态 ARP 检测(DAI)、使用防火墙过滤异常流量。