ARP攻击 DAI动态ARP检测学习笔记(超详细)
一、概述
ARP(Address Resolution Protocol,地址解析协议)是将IP地址解析为以太网MAC地址(或称为物理地址)的协议,指导三层报文的转发。ARP有简单、易用的优点,但是也因为其没有任何安全认证机制而容易被攻击者利用。属于是又爱又恨的一种协议了。目前ARP攻击和ARP病毒已经成为局域网安全的一大威胁,为了避免各种攻击带来的危害,华为S系列交换机提供了多种技术对攻击进行检测和解决,这就是本章节的内容了。
1、ARP表项
在聊ARP攻击前我们先回顾一下ARP表项以及ARP相关报文
ARP通过IP地址解析MAC地址的基本原理就是查看对应的ARP表项中的IP地址与MAC地址的绑定关系,所以必须要有对应的ARP表项。
ARP表项和MAC表项一样,总体来说也有静态和动态之分。
1.静态ARP表项
静态ARP表项是由网络管理员手工建立的IP地址和MAC地址之间固定的映射关系。静态ARP表项不会被老化,不会被动态ARP表项覆盖。
静态ARP表项又分为短静态ARP表项和长静态ARP表项。
- 短静态ARP表项:仅配置了IP地址和MAC地址之间固定的映射关系,没有同时指定VLAN和出接口的ARP表项
- 如果出接口是处于二层模式的以太网接口,短静态ARP表项不能直接用于报文转发,因为没出指定VLAN和出接口,无法得到转发路径。此时,需要发送报文时,设备会先发送ARP请求报文,如果收到的ARP应答报文中的源IP地址和源MAC地址与所配置的某短静态ARP表项的IP地址和MAC地址相同,则将收到ARP应答报文的VLAN和接口加入该静态ARP表项中,后续设备可直接用该静态ARP表项转发报文。
- 长静态ARP表项:同时指定了IP地址和MAC地址之间固定的映射关系,以及该ARP表项所在VLAN和出接口。
- 因为长静态ARP表项中同时包含了VLAN和出接口,故可以直接用于报文转发。建议用户采用长静态ARP表项。
对于以下场景,用户可以配置静态ARP表项
- 对于网络中的重要设备,如服务器等,可以在交换机上配置静态ARP表项。这样,可以避免交换机上重要设备的IP地址对应的ARP表项被ARP攻击报文错误更新,从而保证用户与重要设备之间的正常通信。
- 当网络中用户设备的MAC地址为组播MAC地址(如交换机与NLB服务器集群进行连接,而NLB服务器集群工作在组播模式,集群IP地址对应的集群MAC地址是组播MAC地址)时,可以在交换机上配置静态ARP表项,映射组播MAC地址。缺省情况下,设备收到源MAC地址为组播MAC地址的ARP报文时不会进行ARP学习。
- 当希望禁止某个IP地址访问设备时,可以在交换机上配置静态ARP表项,将该IP地址与一个不存在的MAC地址进行绑定。
2.动态ARP表项
动态ARP表项由ARP通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖。动态ARP通过广播ARP请求和单播ARP应答这两个过程完成地址解析。
2、免费ARP报文
免费ARP报文是一种特俗的ARP报文,其特殊性就是报文中的源IP地址和目的IP地址相同。免费ARP的作用主要体现在以下3个方面。
1.IP地址冲突检测
当设备接口的协议状态变为Up时,设备主动对外发送免费ARP报文。正常情况下不会收到ARP应答,如果收到,则表明本网络中存在与自身IP地址重复的地址。如果检测到IP地址冲突,设备会周期性地广播发送免费ARP应答报文,直到冲突解除。DHCP服务器在为客户端分配一个IP地址前也会发送免费ARP报文进行IP地址冲突检测,其中的源IP地址和目的IP地址都是待分配的IP地址在DHCP章节有介绍过。
2.通过一个新的MAC地址
发送方更换了网卡,MAC地址发生了变化,为了能够在动态ARP表项老化前通告网络中其他设备,发送方可以发送一个免费ARP。
3.在VRRP备份组中用来通过主备发生了变换
在VRRP中,发生主备变换后,新Master设备会广播发送一个免费ARP报文来通告发生了主备变换。
设备在收到免费ARP报文后根据以下情形选择处理
- 如果没有使能ARP表项严格学习功能(下面会介绍),设备会进行ARP学习。
- 如果使能了ARP表项严格学习功能,则进行以下判断。
- 如果免费ARP报文中源IP地址和自己的IP地址相同,则周期性地广播发送免费ARP应答报文,告知此IP地址在网络中存在冲突,直到冲突解除。
- 如果免费ARP报文中源IP地址和自己的IP地址不同,免费ARP报文是在VLANIF接口收到的,并且设备上已经有免费ARP报文中源IP地址对应的动态ARP表项,则进行ARP学习,即根据收到的免费ARP报文更新该ARP表项。其余情况收到免费ARP报文后均不机进行ARP学习。
(缺省情况下,设备不使能ARP表项严格学习功能)
3、ARP安全
ARP安全是针对ARP攻击的一种安全特性。它通过一系列对ARP表项学习和ARP报文处理的限制、检测等措施来保证网络设备的安全性。ARP安全特性不仅能够防范针对ARP的攻击,还可以防范网段扫描攻击等基于ARP的攻击。常见的ARP攻击方式主要包括以下两种
1.ARP泛洪攻击,也叫Dos(Denial of Service,拒绝服务)攻击,主要采用以下两种攻击方式
- 攻击者通过伪造大量源IP地址变化的ARP报文(以广播的方式发送),使得设备ARP映射表缓存资源被无效的ARP表项耗尽(因为设备在接收到ARP报文后会提取报文中的源IP地址和源MAC地址,如果设备上没有对应的ARP映射表就会生成新的ARP映射表项),造成合法用户的ARP报文不能继续生成ARP表项,最终导致正常用户的通信中断。
- 攻击者利用工具扫描本网段主机或者进行跨网段扫描时,会向设备发送大量目的IP地址不能被解析的IP报文,导致设备触发大量ARP Miss(ARP表项丢失)消息,生成并下发大量临时ARP表项,然后还会广播大量ARP请求报文以对目的IP地址进行解析,从而造成CPU负荷过重,直到瘫痪。
针对防ARP泛洪攻击提供的ARP安全特性方案包括以下几个方面:
- ARP报文限速
- ARP Miss消息限速
- ARP优化应答
- 免费ARP报文主动丢弃
- ARP表项严格学习
- ARP表项限制
- 禁止接口学习ARP表项
2.ARP欺骗攻击,是指攻击者通过发送伪造的ARP报文(可以是伪造的免费ARP报文,也可以是伪造的ARP请求报文或ARP应答报文),非法修改设备或网络内其他用户主机的ARP表项,造成用户或网络的报文通信异常。
针对防ARP欺骗攻击所提供的ARP安全特性方案包括以下几个方面:
- ARP表项固化
- 动态ARP检测(DAI)
- ARP防网关冲突
- 免费ARP保卫呢主动丢弃
- 发送免费ARP报文
- ARP报文内MAC地址一致性检查
- ARP报文合法性检查
- ARP表项严格学习
- DHCP触发ARP学习
以上这些ARP安全特性的具体工作原理和具体配置方法将在下一章详细介绍