安全与合规

ARP 攻击是什么:原理、危害与机房里的典型表现

ARP 攻击是利用 ARP 协议没有认证这一点,在同一个二层网段里发送伪造的 ARP 报文,让其他主机把网关或某台服务器的 IP 记成攻击者的 MAC。后果从整段断网、IP 冲突到流量被劫持、IP 和带宽被盗用;在机房里,源头通常是同一 VLAN 内一台被入侵的托管服务器。

作者 顶联产品团队发布于 6 分钟阅读

ARP 协议为什么能被攻击

ARP 攻击是什么,要从 ARP 本身说起。ARP(Address Resolution Protocol,地址解析协议)负责把 IPv4 地址翻译成以太网 MAC 地址。主机 103.45.12.10 要发包给网关 103.45.12.1 时,先向全网段广播一个请求:“谁是 103.45.12.1?请告诉 103.45.12.10”;网关单播回复:“103.45.12.1 在 00:aa:bb:cc:dd:ee”。主机把这条对应关系写进 ARP 缓存,之后发往网关的 IP 报文都封装成以太网帧发给这个 MAC。

这套机制在 1982 年的 RFC 826 里定下来,设计前提是同一个局域网内的主机彼此可信,因此留下了三个被利用的缺口:

缺口 协议行为 攻击者怎么利用
应答不验证 主机收到 ARP 应答时不检查自己是否发过请求,也无法核实应答者身份 不等请求,直接向目标发送伪造应答
后到的覆盖先到的 缓存里已有的表项会被新收到的报文更新 持续高频发送,确保自己的 MAC 始终“压”在正确表项之上
请求也能写缓存 许多协议栈收到 ARP 请求时,会刷新或新建请求者的 IP-MAC 表项(具体规则因系统而异) 用广播请求同时毒化整个网段的缓存,一条报文影响所有主机

所以 ARP 欺骗不需要利用任何漏洞,一台普通 Linux 服务器用 arpspoof、ettercap 之类的工具,或者几行发原始报文的脚本就能做到。它需要的只是目标网段内一台能发包的机器和 root 权限,而被入侵的服务器恰好同时满足这两点。

两种形式:冒充网关与冒充主机

ARP 攻击原理相同,按伪造的目标分成两种,机房里两种都常见。

冒充网关(网关欺骗)。攻击机向网段内广播“103.45.12.1 在攻击机的 MAC 上”。所有客户机的出向流量都发到攻击机:攻击机不转发,整段断网;攻击机开启 IP 转发再交给真网关,流量照常通,但全部经过它,这就是中间人。

冒充主机(主机欺骗)。攻击机向网关单播“103.45.12.20 在攻击机的 MAC 上”,网关把发往这台客户服务器的回程流量交给攻击机,客户服务器表现为“能发不能收”。如果攻击机同时用这个 IP 对外发包,就是典型的 IP 盗用。

冒充网关 冒充主机
被毒化的缓存 网段内所有主机 网关(有时还包括同段其他主机)
伪造的报文 广播:网关 IP → 攻击机 MAC 单播给网关:受害者 IP → 攻击机 MAC
影响范围 整个 VLAN 单台或少数几台服务器
典型目的 断网、嗅探、劫持 盗用 IP、制造冲突、绕过按 IP 做的访问控制
攻击机的负担 要吞下整段的出向流量,网口很容易打满 很小

两种同时做,即对受害者假装网关、对网关假装受害者,攻击机就处在双向流量中间,可以完整看到并改写这台服务器的所有明文通信。

ARP 攻击有什么危害

危害 怎么发生 用户看到什么
断网、时通时断 流量被引到攻击机后被丢弃;或者攻击机与真网关的应答交替到达,缓存来回翻转 ping 网关大量丢包、延迟忽高忽低;攻击停止后自行恢复
IP 地址冲突 攻击机宣告了别人正在用的 IP Windows 弹出 IP 冲突提示;Linux 上同一 IP 对应的 MAC 反复变化
流量劫持与嗅探 中间人转发,HTTP、FTP、Telnet、未加密的数据库连接内容全部可见 几乎无感知;HTTPS 若被替换证书则浏览器告警
内容篡改 在转发的 HTTP 响应里插入脚本或跳转 网站被“挂马”,但服务器上找不到被改的文件
DNS 劫持 改写经过的 DNS 应答 域名解析到错误地址
IP 与带宽盗用 攻击机用别人的 IP 对外发包 被盗用方的 IP 产生陌生流量、收到滥用投诉或被封禁
设备资源耗尽 高速发送随机 IP-MAC 的 ARP 报文 交换机 CPU 飙高、网关 ARP 表被塞满,正常主机学不到表项

早年办公网里的“ARP 病毒”主要造成断网和网页挂马;在 IDC,危害的重点落在后三行:客户的业务流量被同机房的另一台机器看到,客户的 IP 被别人拿去发垃圾流量,以及整个网段的可用性被一台机器拖垮。

一台被入侵的托管服务器怎么拖垮整个网段

把场景放到一个典型的托管 VLAN 里:一个公网 /24,网关在三层交换机上,接入交换机下挂着几十个客户的服务器,各自配静态公网 IP,彼此之间没有做端口隔离。

  1. 某客户的服务器用的是弱密码,被扫到后植入了木马。木马的功能之一就是在所在网段做 ARP 欺骗,目的是嗅探其他主机的账号密码,或者给经过的网页插广告。
  2. 木马每秒向网段广播几十条“网关在我这里”的应答。几秒内,网段里所有主机的 ARP 缓存都被改写。
  3. 几十台服务器的出向流量全部涌向这台被入侵机器的千兆网口。它既要转发又要嗅探,网口和 CPU 很快满载,开始大量丢包。
  4. 客户感受到的是:延迟从 2 ms 跳到几百 ms,SSH 卡顿,网站打不开,但自己服务器上的进程和配置都正常。
  5. 工单集中到来,而且全部来自同一个网段,这是最明显的特征。
  6. 木马间歇性运行,或者真网关的免费 ARP 偶尔刷新了部分主机的缓存,于是故障表现为“时好时坏”,很难用单次 ping 复现。

这个链条里,被入侵的客户并没有“故意攻击”,但影响的是同一网段里所有付费客户。这也是为什么机房要把 ARP 问题当作安全事件而不是普通故障来处理:根源在一台机器,损失却是整段客户的服务质量。

另一类场景更隐蔽:某客户的服务器悄悄把网卡配上了相邻客户没在用的公网 IP,或者用脚本轮换源 IP 发包。这是主机欺骗的变体,常常是为了多拿几个 IP 不付费,或者让攻击流量的来源看起来是别人。它不会造成大面积断网,只会在被盗用方上线使用那个 IP 时表现为冲突,或者在收到滥用投诉时才被发现。

运维从哪些现象能察觉

ARP 攻击没有特定的“报错”,但下面这些信号组合出现时,基本可以判定:

现象 怎么确认
同一网段多个客户同时报障,其他网段正常 工单按 IP 段归类
客户机上记录的网关 MAC 不是网关的 MAC 对比网关设备 VLAN 接口的真实 MAC
交换机 MAC 表里,网关 MAC 出现在某个接入口上 网关 MAC 只应出现在上联口
交换机日志出现 MAC 漂移告警 同一 MAC 在上联口与某接入口之间来回
某个接入口的 ARP 报文速率异常 正常服务器每秒几条,攻击机每秒几十到几百条
网关 ARP 表里某客户 IP 的 MAC 变了 与台账登记的 MAC 比对
客户反馈 HTTPS 证书错误、网页被插广告 中间人篡改的典型表现

在受影响的客户机或任意一台同段主机上,先看它眼里的网关是谁:

# Linux:网关 IP 对应的 MAC 与状态
ip neigh show 103.45.12.1
# Windows
arp -a 103.45.12.1

然后抓 ARP 报文,看谁在宣告网关地址。-e 让 tcpdump 打印以太网帧头,arp[6:2] == 2 只保留 ARP 应答:

tcpdump -nei eth0 'arp and arp[6:2] == 2 and arp src host 103.45.12.1'

正常情况下,输出里“103.45.12.1 is-at”后面只会出现一个 MAC,且频率很低;如果短时间内出现两个不同的 MAC,或者同一个 MAC 以每秒几十条的速度不停宣告,就是欺骗。注意看帧头里的源 MAC 与 ARP 报文体里的发送方 MAC 是否一致:攻击工具可以伪造报文体,但交换机学习 MAC 看的是帧头,定位端口时以帧头为准。

拿到可疑 MAC 之后,到交换机上查它接在哪个端口:

# 华为 / H3C
display mac-address 0011-2233-4455
display arp | include 103.45.12.1
# 思科 IOS
show mac address-table address 0011.2233.4455
show ip arp 103.45.12.1

思科交换机在 MAC 漂移时会打印类似 %SW_MATM-4-MACFLAP_NOTIF: Host 0011.2233.4455 in vlan 100 is flapping between port Gi1/0/5 and port Gi1/0/48 的日志,直接给出了两个端口;华为、H3C 的交换机也有对应的 MAC 漂移检测与告警,具体日志格式以设备文档为准。查到接入口后,对照台账就知道是哪台服务器、哪个客户。

ARP 攻击、IP 冲突和网关故障怎么区分

三者的表象都可能是“整段或部分客户上不了网”,但处理路径完全不同:

判断点 ARP 攻击 普通 IP 冲突 网关故障
受影响范围 整个 VLAN(冒充网关)或单台(冒充主机) 只有冲突的那个 IP 整个 VLAN
网关 IP 对应的 MAC 变成某台接入口设备的 MAC 不变 不变,或 ARP 请求根本没有应答
ARP 报文频率 某个 MAC 高频宣告 两个 MAC 偶发交替应答 没有网关的应答
冲突的 IP 往往是网关,或多个客户 IP 同时异常 通常只有一个 无
停掉可疑端口后 几十秒内恢复 冲突消失 无变化

普通 IP 冲突多半是配置失误,找到配错的一方改回来即可;网关故障看三层设备;只有 ARP 攻击需要按安全事件处理:隔离端口、通知客户清理系统,再补上交换机侧的防护。

在管理系统里怎么落地

察觉 ARP 攻击的难点不在命令,而在“这个 MAC 是谁的”:几百台服务器、几千个 IP 的台账如果靠表格维护,查一次要翻好几处。Toplink DCIM 的 IP 地址管理按段登记每个 IP 的归属服务器、客户和所在 VLAN,服务器列表直接显示它接在哪台交换机的哪个端口,拿到可疑 MAC 或 IP 后对照一下就能定位到机柜和客户。定位之后,交换机管理页面可以直接关闭该端口止损;长期防护则靠同一页面的 ARP 绑定与源地址校验,把 IP、MAC 与端口锁定,伪造来源的报文在接入口就被丢弃。

常见问题

ARP 攻击会影响其他 VLAN 吗?

不会直接影响。ARP 报文是二层广播,不能跨 VLAN 传播,欺骗只在攻击机所在的 VLAN 内生效。但如果网关被冒充,其他 VLAN 发往这个 VLAN 的流量到网关后仍会被送错,表现为其他网段访问这个网段也不正常。

IPv6 有 ARP 攻击吗?

IPv6 不用 ARP,用 NDP(邻居发现协议)解析地址,但 NDP 同样默认没有认证,存在性质相同的邻居欺骗和伪造 RA 攻击。对应的防护是交换机上的 RA Guard 和 ND Snooping。

ARP 攻击一定是有人故意发起的吗?

不一定。被植入木马的服务器会自动发起欺骗,机主往往不知情;某些虚拟化、负载均衡软件的代答 ARP 配置错误,或者两台机器误配了同一个 IP,也会出现和攻击类似的表项翻转。排查时看伪造报文的频率和来源是否集中。

换了网关设备后客户机上的网关 MAC 变了,是攻击吗?

不一定。更换网关设备会让网关 MAC 变化;主备切换时如果没有使用虚拟 MAC,MAC 也会变。新网关通常会发免费 ARP 刷新大家的缓存。区别在于新 MAC 应当出现在交换机的上联口而不是接入口,并且能与变更记录对上。

想看看在你的机房里怎么用?

从一次产品演示开始,梳理你的业务链路。

查看价格
服务热线 400-112-2951

让我们聊聊你的 IDC 业务

扫码添加企业微信,预约产品演示或申请试用。

Toplink 企业微信二维码

长按保存或使用企业微信 / 微信扫描

也可致电
400-112-2951
Telegram
@TopLink88