华为交换机ARP安全配置原理简介
一、ARP安全配置简介
ARP(Address Resolution Protocol,地址解析协议)是将IP地址解析为以太网MAC地址的协议。
ARP安全是针对ARP攻击的一种安全特性,它通过一系列对ARP表项学习和ARP报文处理的限制、检查等措施来保证网络设备的安全性。
ARP安全特性不仅能够防范针对ARP协议的攻击,还可以防范网段扫描攻击等基于ARP协议的攻击。
ARP协议有简单、易用的优点,但是也因为其没有任何安全机制,容易被攻击者利用。
在网络中,常见的ARP攻击方式主要包括:
1、ARP泛洪攻击,也叫拒绝服务攻击DoS(Denial of Service)
主要存在这样两种场景:
1、设备处理ARP报文和维护ARP表项都需要消耗系统资源,同时为了满足ARP表项查询效率的要求,一般设备
都会对ARP表项规模有规格限制。
攻击者就利用这一点,通过伪造大量源IP地址变化的ARP报文,使得设备ARP表资源被无效的ARP条目耗尽,合法用户的ARP报文不能继续生成ARP条目,导致正常通信中断。
2、攻击者利用工具扫描本网段主机或者进行跨网段扫描时,会向设备发送大量目标IP地址不能解析的IP报文,
导致设备触发大量ARP Miss消息,生成并下发大量临时ARP表项,并广播大量ARP请求报文以对目标IP地址进行解析,从而造成CPU(Central Processing Unit)负荷过重。
2、ARP欺骗攻击
是指攻击者通过发送伪造的ARP报文,恶意修改设备或网络内其他用户主机的ARP表项,造成用户或网络的报文
通信异常。
ARP攻击行为存在以下危害:
1、会造成网络连接不稳定,引发用户通信中断,导致严重的经济损失。
2、利用ARP欺骗截取用户报文,进而非法获取游戏、网银、文件服务等系统的帐号和口令,造成被攻击者重大利
益损失。为了避免上述ARP攻击行为造成的各种危害,可以部署ARP安全特性。
二、ARP报文限速原理
如果设备对收到的大量ARP报文全部进行处理,可能导致CPU负荷过重而无法处理其他业务。因此,在处理之前,设备需要对ARP报文进行限速,以保护CPU资源。
华为交换机设备提供了如下几类针对ARP报文的限速功能:
1、根据源MAC地址或源IP地址进行ARP报文限速
当设备检测到某一个用户在短时间内发送大量的ARP报文,可以针对该用户配置基于源MAC地址或源IP地址的ARP报文限速。在1秒时间内,如果该用户的ARP报文数目超过设定阈值(ARP报文限速值),则丢弃超出阈值部分的ARP报文。
1.1、根据源MAC地址进行ARP报文限速:
如果指定MAC地址,则针对指定源MAC地址的ARP报文根据限速值进行限速;如果不指定MAC地址,则针对每一个源MAC地址的ARP报文根据限速值进行限速。
1.2、根据源IP地址进行ARP报文限速:
如果指定IP地址,则针对指定源IP地址的ARP报文根据限速值进行限速;如果不指定IP地址,则针对每一个源IP地址的ARP报文根据限速值进行限速。
2、针对Super VLAN的VLANIF接口下的ARP报文限速
当设备的VLANIF接口接收到触发ARP Miss消息的IP报文时,或者在设备的VLANIF接口上启用ARP代理功能之后,设备接收到目的IP符合代理条件且该IP对应的ARP条目不存在的ARP请求报文时,都会触发Super VLAN的VLANIF接口进行ARP学习。
设备会将ARP请求报文在每个Sub VLAN下复制,如果该Super VLAN下配置了大量Sub VLAN,那么设备将产生大量的ARP请求报文。
为了避免CPU因复制、发送大量ARP请求报文而负担过重,设备支持Super VLAN的VLANIF接口下的ARP报文限速功能,以对该场景下设备发送的ARP请求报文进行流量控制。
3、针对全局、VLAN和接口的ARP报文限速
设备支持在全局、VLAN和接口下配置ARP报文的限速值和限速时间,当同时在全局、VLAN和接口下配置ARP报文的限速值和限速时间时,设备会先按照接口进行限速,再按照VLAN进行限速,最后按照全局进行限速。
另外,在接口下还可以指定阻塞ARP报文的时间段。如果设备的某个接口在ARP报文限速时间内接收到的ARP报文数目超过了设定阈值(ARP报文限速值),则丢弃超出阈值部分的ARP报文,并在接下来的一段时间内(即阻塞ARP报文时间段)持续丢弃该接口下收到的所有ARP报文。
3.1、针对全局的ARP报文限速:
在设备出现ARP攻击时,限制全局处理的ARP报文数量。
3.2、针对VLAN的ARP报文限速:
在某个VLAN内的所有接口出现ARP攻击时,限制处理收到的该VLAN内的ARP报文数量,配置本功能可以保证不影响其他VLAN内所有接口的ARP学习。
3.3、针对接口的ARP报文限速:
在某个接口出现ARP攻击时,限制处理该接口收到的ARP报文数量,配置本功能可以保证不影响其他接口的ARP学习。
三、ARP Miss消息限速原理
如果网络中有用户向设备发送大量目标IP地址不能解析的IP报文(即路由表中存在该IP报文的目的IP对应的路由表项,但设备上没有该路由表项中下一跳对应的ARP表项),将导致设备触发大量的ARP Miss消息。
这种触发ARP Miss消息的IP报文(即ARP Miss报文)会被上送到主控板进行处理,设备会根据ARP Miss消息生成和下发大量临时ARP表项并向目的网络发送大量ARP请求报文,这样就增加了设备CPU的负担,同时严重消耗目的网络的带宽资源。
如下图所示,攻击者向网关发送目的地址为192.1.1.5/24且不能解析的IP报文。
图1 ARP Miss攻击
为了避免这种IP报文攻击所带来的危害,设备提供了如下几类针对ARP Miss消息的限速功能:
1、根据源IP地址进行ARP Miss消息限速
当设备检测到某一源IP地址的IP报文在1秒内触发的ARP Miss消息数量超过了ARP Miss消息限速值,就认为此源IP地址存在攻击。
此时如果设备对ARP Miss报文的处理方式是block方式,设备会丢弃超出限速值部分的ARP Miss消息,即丢弃触发这些ARP Miss消息的ARP Miss报文,并下发一条ACL来丢弃该源IP地址的后续所有ARP Miss报文;
如果是none-block方式,设备只会通过软件限速的方式丢弃超出限速值部分的ARP Miss消息,即丢弃触发这些ARP Miss消息的ARP Miss报文。
如果指定了IP地址,则针对指定源IP址的ARP Miss消息根据限速值进行限速;如果不指定IP地址,则针对每一个IP地址的ARP Miss消息根据限速值进行限速。
2、针对全局、VLAN和接口的ARP Miss消息限速
设备支持在全局、VLAN和接口下配置ARP Miss消息限速,有效顺序为接口优先,VLAN其次,最后为全局。
2.1、针对全局的ARP Miss消息限速:
在设备出现目标IP地址不能解析的IP报文攻击时,限制全局处理的ARP Miss消息数量。
2.2、针对VLAN的ARP Miss消息限速:
在某个VLAN内的所有接口出现目标IP地址不能解析的IP报文攻击时,限制处理该VLAN内报文触发的ARP Miss消息数量,配置本功能可以保证不影响其他VLAN内所有接口的IP报文转发。
2.3、针对接口的ARP Miss消息限速:
在某个接口出现目标IP地址不能解析的IP报文攻击时,限制处理该接口收到的报文触发的ARP Miss消息数量,配置本功能可以保证不影响其他接口的IP报文转发。
3、通过设定临时ARP表项的老化时间控制ARP Miss消息的触发频率
当IP报文触发ARP Miss消息时,设备会根据ARP Miss消息生成临时ARP表项,并且向目的网段发送ARP请求报文。
在临时ARP表项老化时间范围内:
设备收到ARP应答报文前,匹配临时ARP表项的IP报文将被丢弃并且不会触发ARP Miss消息。
设备收到ARP应答报文后,则生成正确的ARP表项来替换临时ARP表项。
当老化时间超时后,设备会清除临时ARP表项。此时如果设备转发IP报文匹配不到对应的ARP表项,则会重新触发ARP Miss消息并生成临时ARP表项,如此循环重复。
当判断设备受到攻击时,可以增大临时ARP表项的老化时间,减小设备ARP Miss消息的触发频率,从而减小攻击对设备的影响。
四、免费ARP报文主动丢弃
免费ARP报文是一种特殊的ARP报文,该报文中携带的源IP地址和目地IP地址都是本机IP地址,源MAC地址是本机MAC地址,目的MAC地址是广播地址。
当有新的用户主机接入网络时,该用户主机会以广播的方式发送免费ARP报文,来确认广播域中有无其他设备与自己的IP地址冲突;当用户主机改变了硬件地址时,为了能够在其他所有用户主机的ARP表项老化之前通告其硬件地址已经发生改变,该用户主机也会发送免费ARP报文。
由于发送免费ARP报文的用户主机并不需要经过身份验证,任何一个用户主机都可以发送免费ARP报文,这样就引入了两个问题:
1、如果网络中出现大量的免费ARP报文,设备会因为处理这些报文而导致CPU负荷过重,从而不能正常处理合法的ARP报文。
2、如果设备处理的免费ARP报文是攻击者伪造的,会造成设备错误地更新ARP表项,导致合法用户的通信流量发生中断。
参考以上问题描述,在确认攻击来自免费ARP报文之后,可以在网关设备上使能免费ARP报文主动丢弃功能,使网关设备直接丢弃免费ARP报文。
注意:
当有主机更新了硬件地址并重新接入网络(如主机关机后更换了接口卡并重新启动,或双机热备份系统中主用设备发生故障,备用设备接管)时,如果设备开启了免费ARP报文主动丢弃功能,可能会导致其他网络设备因无法正常更新相应的ARP表项而无法与该主机建立正常通信。
五、ARP优化应答
如下图1所示,设备作为接入网关,会收到大量接入用户请求本机接口MAC地址的ARP请求报文。如果全部将这些ARP请求报文上送主控板处理,将会导致主控板CPU使用率过高,影响CPU对正常业务的处理。
图1 ARP优化应答典型组网应用
为了避免上述危害,可以在网关设备上部署ARP优化应答功能。
ARP优化应答功能是指设备接收请求本机接口MAC地址的ARP请求报文后,由接收报文的接口板处理ARP请求报文。ARP优化应答功能去使能时,统一由设备主控板处理ARP请求报文。
部署该功能后,对于目的IP地址是本设备IP地址的ARP请求报文,接口板直接回复ARP应答,对于目的IP地址不是本设备IP地址的ARP请求报文,设备直接丢弃,从而可以提高设备防御ARP泛洪攻击的能力。该功能尤其适用于设备上安装了多块接口板的场景。
缺省情况下,ARP优化应答功能处于使能状态。因此在收到ARP请求报文后,设备首先查看是否有该ARP请求报文中源IP对应的ARP表项。
如果对应的ARP表项存在,设备对该ARP请求报文进行优化应答。
如果对应的ARP表项不存在,设备不对该ARP请求报文进行优化应答。
六、ARP表项严格学习
如果大量用户在同一时间段内向设备发送大量ARP报文,或者攻击者伪造正常用户的ARP报文发送给设备,则会造成下面的危害:
设备因处理大量ARP报文而导致CPU负荷过重,同时设备学习大量的ARP报文可能导致设备ARP表项资源被无效的ARP条目耗尽,造成合法用户的ARP报文不能继续生成ARP条目,进而导致用户无法正常通信。
伪造的ARP报文将错误地更新设备的ARP表项,导致用户无法正常通信。
为避免上述危害,可以在网关设备上部署ARP表项严格学习功能。
ARP表项严格学习是指只有本设备主动发送的ARP请求报文的应答报文才能触发本设备学习ARP,其他设备主动向本设备发送的ARP报文不能触发本设备学习ARP,这样,可以拒绝大部分的ARP报文攻击。
图1 ARP表项严格学习
如图1所示。通常情况下,当UserA向Gateway发送ARP请求报文后,Gateway会向UserA回应ARP应答报文,并且添加或更新UserA对应的ARP表项。当Gateway配置ARP表项严格学习功能以后:
对于Gateway收到UserA发送来的ARP请求报文,Gateway不添加也不更新UserA对应的ARP表项。如果该请求报文请求的是Gateway的MAC地址,那么Gateway会向UserA回应ARP应答报文。
如果Gateway向UserB发送ARP请求报文,待收到与该请求对应的ARP应答报文后,Gateway会添加或更新UserB对应的ARP表项。
七、ARP表项限制
ARP表项限制功能应用在网关设备上,可以限制设备的某个接口学习动态ARP表项的数目。
默认状态下,接口可以学习的动态ARP表项数目规格与全局的ARP表项规格保持一致。当部署完ARP表项限制功能后,如果指定接口下的动态ARP表项达到了允许学习的最大数目,将不再允许该接口继续学习动态ARP表项,以保证当一个接口所接入的某一用户主机发起ARP攻击时不会导致整个设备的ARP表资源都被耗尽。
八、禁止接口学习ARP表项
下学习了大量动态ARP表项时,出于安全考虑可以配置禁止该接口的动态ARP表项学习功能,以防止该接口下所接入的用户主机发起ARP攻击使整个设备的ARP表资源都被耗尽。
学习ARP表项功能和ARP表项严格学习功能配合起来使用,可以使设备对接口下动态ARP的学习进行更加细致的控制。
九、ARP表项固化
如下图1所示,Attacker仿冒UserA向Gateway发送伪造的ARP报文,导致Gateway的ARP表中记录了错误的UserA地址映射关系,造成UserA接收不到正常的数据报文。
图1 欺骗网关攻击示意图
为了防御这种欺骗网关攻击,可以在网关设备上部署ARP表项固化功能。
网关设备在第一次学习到ARP以后,不再允许用户更新此ARP表项或只能更新此ARP表项的部分信息,或者通过发送单播ARP请求报文的方式对更新ARP条目的报文进行合法性确认。
设备提供的三种ARP表项固化模式。
1、fixed-all模式
如果设备收到的ARP报文中的MAC地址、接口或VLAN信息和ARP表中的信息不匹配,则直接丢弃该ARP报文。此模式适用于用户MAC地址固定,并且用户接入位置相对固定的场景。
2、fixed-mac模式
如果设备收到的ARP报文中的MAC地址与ARP表中对应条目的MAC地址不匹配,则直接丢弃该ARP报文;如果匹配,但是收到报文的接口或VLAN信息与ARP表中对应条目不匹配,则可以更新对应ARP条目中的接口和VLAN信息。
此模式适用于用户MAC地址固定,但用户接入位置频繁变动的场景。
3、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地址和接入位置均频繁变动的场景。
十、动态ARP检测(中间人攻击)
网络中针对ARP的攻击层出不穷,中间人攻击是常见的ARP欺骗攻击方式之一。
中间人攻击(Man-in-the-middle attack)是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。
如下图1所示,是中间人攻击的一个场景。攻击者主动向UserA发送伪造UserB的ARP报文,导致UserA的ARP表中记录了错误的UserB地址映射关系,攻击者可以轻易获取到UserA原本要发往UserB的数据;同样,攻击者也可以轻易获取到UserB原本要发往UserA的数据。这样,UserA与UserB间的信息安全无法得到保障。
图1 中间人攻击
为了防御中间人攻击,可以在Switch上部署动态ARP检测DAI(Dynamic ARP Inspection)功能。
动态ARP检测是利用绑定表来防御中间人攻击的。当设备收到ARP报文时,将此ARP报文对应的源IP、源MAC、VLAN以及接口信息和绑定表的信息进行比较,如果信息匹配,说明发送该ARP报文的用户是合法用户,允许此用户的ARP报文通过,否则就认为是攻击,丢弃该ARP报文。
说明:
动态ARP检测功能仅适用于DHCP Snooping场景。设备使能DHCP Snooping功能后,当DHCP用户上线时,设备会自动生成DHCP Snooping绑定表;对于静态配置IP地址的用户,设备不会生成DHCP Snooping绑定表,所以需要手动添加静态绑定表。
当Switch上部署动态ARP检测功能后,如果攻击者连接到Switch并试图发送伪造的ARP报文,Switch会根据绑定表检测到这种攻击行为,对该ARP报文进行丢弃处理。如果Switch上同时使能了动态ARP检测丢弃报文告警功能,则当ARP报文因不匹配绑定表而被丢弃的数量超过了告警阈值时,Switch会发出告警通知管理员。
十一、ARP防网关冲突
如下图1所示,攻击者B将伪造网关的ARP报文发送给用户A,使用户A误以为攻击者即为网关。用户A的ARP表中会记录错误的网关地址映射关系,使得用户A跟网关的正常数据通信中断。
图1 ARP网关冲突
为了防范攻击者仿冒网关,可以在网关设备上使能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地址。
十二、发送免费ARP报文
如三、ARP Miss消息限速原理中图1所示,Attacker仿冒网关向UserA发送了伪造的ARP报文,导致UserA的ARP表中记录了错误的网关地址映射关系,从而正常的数据不能被网关接收。
为了避免上述危害,可以在网关设备上部署发送免费ARP报文功能,定期更新用户的ARP表项,使得用户ARP表项中记录的是正确的网关MAC地址。
十三、ARP报文内MAC地址一致性检查
ARP报文内MAC地址一致性检查功能主要应用于网关设备上,可以防御以太网数据帧首部中的源/目的MAC地址和ARP报文中的源/目的MAC地址不同的ARP攻击。
部署本功能后,网关设备在进行ARP学习前将对ARP报文进行检查。如果以太网数据帧首部中的源/目的MAC地址和ARP报文中的源/目的MAC地址不同,则认为是攻击报文,将其丢弃;否则,继续进行ARP学习。
十四、ARP报文合法性检查
ARP报文合法性检查功能可以部署在接入设备或网关设备上,用来对MAC地址和IP地址不合法的报文进行过滤。设备支持以下三种可以任意组合的检查。
1、源MAC地址检查:
设备会检查ARP报文中的源MAC地址和以太网数据帧首部中的源MAC地址是否一致,一致则认为合法,否则丢弃报文;
2、目的MAC地址检查:
设备会检查ARP应答报文中的目的MAC地址是否和以太网数据帧首部中的目的MAC地址一致,一致则认为合法,否则丢弃报文;
3、IP地址检查:
设备会检查ARP报文中的源IP和目的IP地址,全0、全1、或者组播IP地址都是不合法的,需要丢弃。对于ARP应答报文,源IP和目的IP地址都进行检查;对于ARP请求报文,只检查源IP地址。
十五、DHCP触发ARP学习
在DHCP用户场景下,当DHCP用户数目很多时,设备进行大规模ARP表项的学习和老化会对设备性能和网络环境形成冲击。
为了避免此问题, 可以在网关设备上部署DHCP触发ARP学习功能。当DHCP服务器给用户分配了IP地址,网关设备会根据VLANIF接口上收到的DHCP ACK报文直接生成该用户的ARP表项。该功能生效的前提是使能DHCP Snooping功能。
网关设备上还可同时部署动态ARP检测功能,防止DHCP用户的ARP表项被伪造的ARP报文恶意修改。
十六、VPLS网络中ARP代理
在VPLS网络中,为了防止PW(Pseudo Wire)侧的伪造ARP报文被广播到AC(Attachment Circuit)侧形成ARP欺骗攻击,可以在PE设备上部署VPLS网络中的ARP代理功能,以及VPLS网络中的DHCP Snooping功能。
部署上述功能后,PW侧的ARP报文将会被上送到主控板进行处理:
如果是ARP请求报文,并且报文的目的IP地址在DHCP Snooping绑定表中存在,则设备根据DHCP Snooping绑定表组装ARP应答报文直接回应PW侧的请求方。
如果不是ARP请求报文,或者ARP请求报文的目的IP地址不在DHCP Snooping绑定表中,则报文被正常转发。
发表评论