号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部
下午好,我的网工朋友。
ARP欺骗是一种常见攻击方式,常常发生在局域网之内,产生的危害比较大,可以导致被攻击者流量丢失、中间人攻击、连接不上互联网甚至会被网络监听。
在局域网中,网络以“帧”的形式传输数据。
一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址,目标主机的MAC地址应当包含在数据帧中。
显然在双方通信之初,发送方是无法知道目标MAC地址的,它的获得就是通过地址解析这个过程。
所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。在Wireshark中ARP协议细节
总得来说,这种攻击不仅威胁着企业和组织的网络安全,也对个人用户的隐私构成了极大的风险。
所以了解并实施有效的解决方案至关重要。
今天就和你探讨一番,聊聊ARP欺骗攻击的7种解决方案,帮助你保护网络。
今日文章阅读福利:《 网络安全实验——arp欺骗 》
如果你还想补充arp欺骗的相关知识,那么这份实验手册就很适合你,从具体案例切入,帮助你进一步学习。
私信我,发送暗号“arp”,即可获取此份优质资源。
01 ARP表项固化
如图 1 所示, Attacker 仿冒 UserA 向 Gateway 发送伪造的 ARP报文,导致Gateway的ARP表中记录了错误的UserA地址映射关系,造成 UserA 接收不到正常的数据报文。
为了防御这种欺骗网关攻击,可以在网关设备上部署 ARP 表项固化功能。网关设备在第一次学习到 ARP 以后,不再允许用户更新此 ARP 表项或只能更新此 ARP 表项的部分信息,或者通过发送单播 ARP 请求报文的方式对更新 ARP 条目的报文进行合法性确认。
设备提供的三种 ARP 表项固化模式:
01 fixed-all 模式:
如果设备收到的 ARP 报文中的 MAC 地址、接口或 VLAN 信息和 ARP 表中的信息不匹配,则直接丢弃该 ARP 报文。此模式适用于用户 MAC 地址固定,并且用户接入位置相对固定的场景。
02 fixed-mac 模式:
如果设备收到的 ARP 报文中的 MAC地址与ARP表中对应条目的MAC地址不匹配,则直接丢弃该ARP报文;如果匹配,但是收到报文的接口或 VLAN信息与ARP表中对应条目不匹配,则可以更新对应ARP条目中的接口和VLAN信息。此模式适用于用户MAC地址固定,但用户接入位置频繁变动的场景。
03 send-ack 模式:
如果设备收到的 ARP 报文 A 涉及 ARP 表项 MAC 地址、接口或 VLAN 信息的修改,设备不会立即更新 ARP 表项,而是先向待更新的 ARP 表项现有 MAC 地址对应的用户发送一个单播的ARP 请求报文进行确认。
如果在随后的 3 秒内设备收到 ARP 应答报文 B,且当前ARP条目中的IP地址、MAC地址、接口和VLAN信息与ARP应答报文B的一致,则认为 ARP 报文 A 为攻击报文,不更新该 ARP 条目。
如果在随后的 3 秒内设备未收到 ARP 应答报文,或者收到 ARP 应答报文 B 与当前 ARP条目中的 IP 地址、 MAC 地址、接口和 VLAN 信息不一致,设备会再向刚才收到的 ARP报文 A 对应的源 MAC 发送一个单播 ARP 请求报文。
· 如果在随后的 3 秒内收到 ARP 应答报文 C,且 ARP 报文 A 与 ARP 应答报文 C 的源IP 地址、源 MAC地址、接口和VLAN信息一致, 则认为现有 ARP 条目已经无效且ARP 报文 A 是可以更新该 ARP 条目的合法报文,并根据 ARP 报文 A 来更新该 ARP条目。
· 如果在随后的 3 秒内未收到 ARP 应答报文,或者 ARP 报文 A 与收到的 ARP 应答报文 C 的源 IP 地址、源 MAC地址、接口和VLAN 信息不一致,则认为ARP报文A为攻击报文,设备会忽略收到的ARP报文A,ARP条目不会更新。
此模式适用于用户的MAC地址和接入位置均频繁变动的场景。
02 动态 ARP 检测
网络中针对 ARP 的攻击层出不穷,中间人攻击是常见的 ARP 欺骗攻击方式之一。

如图2所示,是中间人攻击的一个场景。攻击者主动向 UserA 发送伪造 UserB 的 ARP 报文,导致 UserA的ARP表中记录了错误的UserB 地址映射关系,攻击者可以轻易获取到 UserA原本要发往 UserB 的数据;同样,攻击者也可以轻易获取到 UserB 原本要发往 UserA 的数据。这样, UserA 与 UserB 间的信息安全无法得到保障。
为了防御中间人攻击,可以在 Switch 上部署动态 ARP 检测 DAI(Dynamic ARP Inspection)功能。
动态ARP检测是利用绑定表来防御中间人攻击的。当设备收到ARP报文时,将此ARP报文对应的源IP、源MAC、VLAN以及接口信息和绑定表的信息进行比较,如果信息匹配,说明发送该 ARP 报文的用户是合法用户,允许此用户的 ARP 报文通过,否则就认为是攻击,丢弃该 ARP 报文。
注:动态 ARP 检测功能仅适用于DHCP Snooping场景。设备使能 DHCP Snooping 功能后,当DHCP 用户上线时,设备会自动生成 DHCP Snooping绑定表;对于静态配置IP地址的用户,设备不会生成DHCPSnooping绑定表,所以需要手动添加静态绑定表。
当Switch上部署动态 ARP检测功能后,如果攻击者连接到Switch并试图发送伪造的ARP报文,Switch会根据绑定表检测到这种攻击行为,对该ARP报文进行丢弃处理。
如果Switch上同时使能了动态ARP检测丢弃报文告警功能,则当ARP报文因不匹配绑定表而被丢弃的数量超过了告警阈值时,Switch会发出告警通知管理员。
03 ARP 防网关冲突
如图3所示,用户主机直接接入网关,Attacker将伪造网关的ARP报文发送给UserA和UserB,使UserA和UserB误以为攻击者即为网关。UserA和UserB的ARP表中会记录错误的网关地址映射关系,这样就会把发往网关的流量均发送给了攻击者,攻击者可轻易窃听到UserA和UserB发送的数据内容。

为了防范攻击者仿冒网关,可以在网关设备上使能 ARP 防网关冲突功能。当设备收到的 ARP报文存在下列情况之一:
· ARP 报文的源 IP 地址与报文入接口对应的 VLANIF 接口的 IP 地址相同
· ARP 报文的源 IP 地址是入接口的虚拟 IP 地址,但 ARP 报文源 MAC 地址不是VRRP虚MAC。
设备就认为该ARP报文是与网关地址冲突的ARP报文,设备将生成ARP防攻击表项,并在后续一段时间内丢弃该接口收到的同 VLAN 以及同源 MAC 地址的 ARP报文,这样可以防止与网关地址冲突的ARP报文在VLAN内广播。
此时,还可以在设备上使能发送免费 ARP 报文功能,通过广播发送正确的免费 ARP 报文到所有用户,迅速将已经被攻击的用户记录的错误网关地址映射关系修改正确。
注:一个 VRRP 备份组,被当作一个共享局域网内主机的缺省网关,即虚拟交换机。一个虚拟交换机拥有一个 VRRP 虚 MAC, VRRP 虚 MAC根据虚拟交换机ID生成,格式为:00-00-5E-00-01-{VRID}(VRRP)。当虚拟交换机回应ARP请求时,使用的是VRRP虚MAC地址,而不是接口的真实MAC地址。
04 发送免费 ARP 报文
如图4所示,Attacker仿冒网关向UserA发送了伪造的ARP报文,导致UserA的ARP表中记录了错误的网关地址映射关系,从而正常的数据不能被网关接收。
为了避免上述危害,可以在网关设备上部署发送免费ARP报文功能,定期更新用户的ARP表项,使得用户ARP表项中记录的是正确的网关 MAC 地址。

05 ARP 报文内 MAC 地址一致性检查
ARP 报文内 MAC 地址一致性检查功能主要应用于网关设备上,可以防御以太网数据帧首部中的源/目的 MAC 地址和 ARP报文中的源/目的 MAC 地址不同的 ARP 攻击。
部署本功能后,网关设备在进行 ARP 学习前将对 ARP报文进行检查。如果以太网数据帧首部中的源/目的MAC 地址和 ARP 报文中的源/目的 MAC 地址不同,则认为是攻击报文,将其丢弃;否则,继续进行 ARP 学习。
06 ARP 报文合法性检查
ARP 报文合法性检查功能可以部署在接入设备或网关设备上,用来对MAC地址和IP地址不合法的报文进行过滤。设备支持以下三种可以任意组合的检查。
01 源 MAC 地址检查:
设备会检查 ARP 报文中的源 MAC 地址和以太网数据帧首部中的源 MAC 地址是否一致,一致则认为合法,否则丢弃报文;
02 目的 MAC 地址检查:
设备会检查 ARP 应答报文中的目的 MAC 地址是否和以太网数据帧首部中的目的 MAC 地址一致,一致则认为合法,否则丢弃报文;
03 IP 地址检查:
设备会检查 ARP 报文中的源 IP 和目的 IP 地址,全 0、全 1、或者组播IP地址都是不合法的需要丢弃。对于ARP应答报文,源IP和目的 IP 地址都进行检查;对于 ARP 请求报文,只检查源 IP 地址。
07 DHCP 触发 ARP 学习
在DHCP用户场景下,当DHCP用户数目很多时,设备进行大规模ARP表项的学习和老化会对设备性能和网络环境形成冲击。为了避免此问题,可以在网关设备上部署 DHCP 触发 ARP 学习功能。
当 DHCP 服务器给用户分配了 IP 地址,网关设备会根据 VLANIF 接口上收到的 DHCP ACK 报文直接生成该用户的ARP表项。该功能生效的前提是使能DHCPSnooping功能。网关设备上还可同时部署动态ARP检测功能,防止DHCP 用户的 ARP 表项被伪造的 ARP 报文恶意修改。
整理:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部