第111篇:ARP 欺骗攻击与 DAI(Dynamic ARP Inspection)
关键词
ARP 欺骗、DAI、Dynamic ARP Inspection、中间人攻击、DHCP Snooping、ARP 检测
一、ARP 欺骗的原理
1.1 ARP 协议的缺陷
ARP(Address Resolution Protocol)是一个非常"信任"的协议——收到 ARP 应答时,不做任何验证就直接更新 ARP 缓存。
PC-A (192.168.1.10) 的 ARP 缓存:
192.168.1.1 (网关) → MAC: 00-11-22-33-44-55(合法网关 MAC)
攻击者(192.168.1.100)发送伪造的 ARP 应答:
192.168.1.1 (网关) → MAC: AA-BB-CC-DD-EE-FF(攻击者 MAC)
PC-A 收到后无条件更新 ARP 缓存:
192.168.1.1 (网关) → MAC: AA-BB-CC-DD-EE-FF(被篡改!)
1.2 攻击类型
| 攻击类型 | 手法 | 后果 |
|---|---|---|
| 中间人攻击(MITM) | 假冒网关 IP,同时攻击网关和主机 | 攻击者可以截获所有流量 |
| ARP Flooding | 发送大量伪造 ARP 报文 | 交换机 CPU 高,MAC 表震荡 |
| 网关仿冒 | 假冒网关 IP 发送 ARP | 所有主机的流量发往攻击者 |
| IP 冲突 | 声明某 IP 的 MAC 为自己 | 受害主机无法通信 |
1.3 MITM 攻击图示
正常通信:
PC-A ──────────── 网关 ──── Internet
(192.168.1.10) (192.168.1.1)
MITM 攻击:
PC-A ────── 攻击者 ────── 网关 ──── Internet
(被骗发送给攻击者) (转发给网关)
攻击者可窃听/篡改所有流量!
二、DAI(Dynamic ARP Inspection)原理
2.1 DAI 的作用
DAI 在交换机上拦截所有 ARP 报文,与 DHCP Snooping 绑定表进行比对:
ARP 报文 ──► DAI 检查
│
┌────┴────┐
│ 比对 │
│ 绑定表 │
└────┬────┘
│
┌─────────┴─────────┐
│ │
IP+MAC+PVID 匹配 不匹配
│ │
正常转发 丢弃 + 日志
2.2 检查规则
| 检查项目 | 说明 | 匹配来源 |
|---|---|---|
| 源 MAC | ARP 报文中的 Sender MAC 与帧源 MAC 一致 | DHCP Snooping 绑定表 |
| 源 IP | ARP 中 Sender IP 与绑定表中的 IP 一致 | DHCP Snooping 绑定表 |
| 端口 | ARP 从绑定表记录的端口收到 | DHCP Snooping 绑定表 |
2.3 DAI 的信任/非信任端口
与 DHCP Snooping 类似,DAI 也使用 Trust/Untrust 机制:
| 端口类型 | DAI 行为 |
|---|---|
| Trust | 不检查 ARP 报文,直接转发(上联口、网关端口) |
| Untrust | 检查 ARP 报文,不符合绑定表的丢弃 |
三、配置 DAI
3.1 前提:启用 DHCP Snooping
DAI 必须依赖 DHCP Snooping 的绑定表:
dhcp enable
dhcp snooping enable
vlan 10
dhcp snooping enable
interface GigabitEthernet0/0/24
dhcp snooping trusted
3.2 在 VLAN 中启用 DAI
# 在 VLAN 10 中启用 ARP 检测
vlan 10
arp anti-attack check user-bind enable
# 或将以下配置接口级使用:
interface GigabitEthernet0/0/1
arp trusted # 配置为 Trust 端口(不检查 ARP)
arp anti-attack check user-bind enable # 启用 ARP 检测
3.3 完整配置示例
# ===== 1. 启用 DHCP Snooping =====
dhcp enable
dhcp snooping enable
vlan 10
dhcp snooping enable
# ===== 2. 配置 Trust 端口(连接网关/DHCP 服务器)=====
interface Vlanif10
ip address 192.168.1.1 255.255.255.0
interface GigabitEthernet0/0/24
dhcp snooping trusted
arp trusted
# ===== 3. 在 VLAN 10 启用 DAI =====
vlan 10
arp anti-attack check user-bind enable
# ===== 4. 配置日志记录 =====
arp anti-attack log enable
3.4 验证 DAI 状态
# 查看 DAI 配置
display arp anti-attack configuration
-----------------------------------------------
VLAN Check Item Trust Ports
10 ip, mac GE0/0/24
# 查看 DAI 丢弃统计
display arp anti-attack statistics
-----------------------------------------------
VLAN Discard ARP packets
10 1567 ← 丢弃了大量非法 ARP
# 查看 DHCP Snooping 绑定表(DAI 的检查依据)
display dhcp snooping binding
四、实战案例
4.1 案例:校园网 ARP 中间人攻击
现象:某学生宿舍区频繁断网,用户反映上网速度慢,访问银行网站时地址栏显示异常。
排查:
1. 检查 ARP 表 → 发现大量 PC 的网关 MAC 地址异常(不是合法网关 MAC)
2. 在所有交换机关闭 STP 接口保护后检查哪个端口发 ARP 最多
3. display arp anti-attack statistics → 发现 Vlan 100 丢弃大量 ARP 报文
4. 查看丢弃日志 → 定位到某宿舍端口
根因:学生运行了 Cain & Abel 等 ARP 欺骗工具,进行中间人攻击试图窃取密码。
解决方案:在宿舍接入交换机启用 DAI + DHCP Snooping:
vlan 100
arp anti-attack check user-bind enable
4.2 案例:ARP 泛洪导致核心交换机 CPU 100%
现象:核心交换机 CPU 使用率持续 100%,影响正常路由转发。
排查:
1. display cpu-usage → ARP 进程占用 80%
2. display arp packet statistics → 每秒收到上万 ARP 报文
3. 定位到某接入端口发出大量 ARP 报文
根因:某终端中毒,持续发送伪造 ARP 报文。
解决方案:
# 限速:限制 ARP 报文速率
interface GigabitEthernet0/0/1
arp rate-limit 100 # 限制每秒 100 个 ARP 报文
# 全局 ARP 限速
arp anti-attack packet-rate-limit 2000
五、DAI 与其他安全技术的配合
5.1 DAI + IPSG + DHCP Snooping 组合
DHCP Snooping → 生成 Binding Table
↓
┌─────────┴─────────┐
│ │
IP Source Guard DAI
(IP 报文过滤) (ARP 报文过滤)
│ │
└─────────┬─────────┘
│
接入端口的安全防线
5.2 部署建议
| 安全特性 | 部署位置 | 防护目标 |
|---|---|---|
| DHCP Snooping | 接入交换机 | 防私设 DHCP 服务器 |
| DAI | 接入交换机(VLAN 级) | 防 ARP 欺骗/中间人攻击 |
| IPSG | 接入交换机(端口级) | 防 IP 欺骗 |
| ARP 限速 | 接入端口 | 防 ARP 泛洪 |
六、DAI 的局限性
| 局限性 | 说明 |
|---|---|
| 依赖 DHCP | 静态 IP 设备需要手动绑定 |
| 仅检查 ARP | 不防 IP 报文欺骗(需要 IPSG) |
| 性能开销 | 大量 ARP 报文时 CPU 负担重 |
| 仅防 Untrust 端口 | Trust 端口的攻击防不住 |
| 无法防 ARP 扫描 | 攻击者缓慢扫描不触发限速 |
七、总结
| 知识点 | 核心要点 |
|---|---|
| ARP 攻击 | 利用 ARP 无验证的缺陷,发送伪造 ARP 应答 |
| MITM | 攻击者假冒网关截获所有流量 |
| DAI 原理 | 用 DHCP Snooping 绑定表校验 ARP 报文的 IP+MAC+端口 |
| Trust/Untrust | Trust 端口跳过检查(上联),Untrust 严格检查(下行) |
| 组合部署 | DAI + DHCP Snooping + IPSG 三层防护 |
| 辅助手段 | ARP 限速、ARP 日志 |
八、思考
- ARP 协议为什么容易被欺骗?它缺少什么安全机制?
- DAI 如何判断一个 ARP 报文是合法的?
- 如果 DAI 和 DHCP Snooping 没有同时启用,会有什么后果?
- 为什么网关端口必须配置为 ARP Trust?
- 一台服务器使用静态 IP,如何让它通过 DAI 检查?(提示:静态绑定)
下篇预告:第112篇《端口安全——MAC 地址绑定与 Sticky MAC》——讲解如何通过端口安全技术限制接入设备的 MAC 地址,防止非法设备接入网络。