ARP安全配置与管理——1

在日常的网络中经常提到“ARP病毒”、“ARP欺骗”、“ARP攻击”几个新术语,而且就是这小小的ARP协议经常令我们的网络莫名其妙的奇慢、上不了网,甚至导致设备或整个网络瘫痪,而且很难找到真正的元凶。抓包进行故障排除时,经常发现大量源IP地址或者MAC地址根本不是本网络的广播包或帧,或者发现网关的MAC地址被非法地修改了,甚至出现源或目的IP、MAC地址全为0的包。这一切都是因为ARP协议本身没有一个安全认证机制,给恶意攻击者留下了可乘之机。

         ARP安全方面的隐患就是两个:一是利用非法、无效的伪造源/目的IP地址或源MAC地址发送大量ARP报文,至于设备或服务器无力承受而最终出现网络速度非常慢,或者中断,这就是通常所说的ARP泛洪攻击或者ARP DoS攻击;二是利用伪造的IP地址或者MAC地址非法修改网关或者网络中其他主机的ARP表项,造成用户无法上网,或者网络中无法正确访问这些主机,这些就是通常所说的ARP网关或主机欺骗攻击。

ARP安全概述

ARP(AddressResolution Protocol,地址解析协议)是将IP地址解析为以太网MAC地址(或称物理地址)的协议。ARP协议有简单、易用的优点,但是也因为其没有任何安全认证机制而容易被攻击者利用。

ARP安全是针对ARP攻击的一种安全特性。它通过一系列对ARP表项学习和ARP保温处理的限制、检查等措施来保证网络设备的安全性。ARP安全特性不仅能够防范针对ARP协议的攻击,还可以防范网段扫描攻击等基于ARP协议的攻击。常见的ARP攻击方式主要包括以下两种:

(1)ARP泛洪攻击,也叫DoS(Denial ofService,拒绝服务)攻击,主要采用以下两种攻击方式。

①攻击者通过伪造大量源IP地址变化的ARP报文(以广播方式发送),使得设备ARP映射表缓存资源被无效的ARP表项耗尽(因为设备在接收到ARP报文后会提取报文中的源IP地址和源MAC地址,如果设备上没有对应的ARP映射表项就会生成新的ARP映射表项),造成合法用户的ARP报文不能继续生成ARP表项,最终导致正常用户的通信被中断。

②攻击者利用工具扫描本网段主机或者进行跨网段扫描时,会向设备发送大量目的IP地址不能解析的IP报文,导致设备触发大量ARP Miss(ARP表项丢失)消息,生成并下发大量临时ARP表项,然后还会广播大量ARP请求报文以对目的IP地址进行解析,从而造成CPU负荷过重,直到瘫痪。

(2)ARP欺骗攻击,是指攻击者通过发送伪造的ARP报文(可以是伪造的免费ARP报文,也可以是伪造的ARP请求报文或ARP应答报文),非法修改设备或网络内其他用户主机的ARP表项,造成用户或网络的报文通信异常。




配置防ARP泛洪攻击

ARP泛洪攻击的基本思想就是发送大量的ARP报文,这样一方面可以使设备中用于缓存ARP表的内存资源被无效ARP表项耗尽,另一方面可能会使设备的CPU负荷过重造成用户无法正常通信。攻击者可能用来进行ARP泛洪攻击的报文包括ARP请求/应答报文、ARP Miss消息、免费ARP报文。


当基于全局、VLAN、接口的ARP报文限速以及基于源MAC地址、源IP地址进行ARP报文限速中的多个限速功能同时配置时,设备对同时满足这些限速条件的ARP报文以其中最小的限速值进行限速。

当基于全局、VLAN、接口的ARP Miss消息限速以及基于源IP地址进行ARP Miss消息限速中的多个限速功能同时配置时,设备对同时满足这些限速条件的ARP Miss消息以其中最小的限速值进行限速。

一、配置基于源MAC地址的ARP报文限速

设备处理大量源MAC地址相对固定的ARP报文会造成CPU繁忙,并且如果ARP报文的源IP地址同时不断变化,还会导致设备的ARP表资源被耗尽。为了避免此问题,可以配置设备根据源MAC地址进行ARP报文限速。设备会对上送CPU的ARP报文根据源MAC地址进行统计,如果在1s内收到的同一个源MAC地址的ARP报文超过设定阈值(ARP报文限速值),设备则丢弃超出阈值部分的ARP报文。


二、配置基于源IP地址ARP报文限速

针对源IP地址相对固定的ARP报文,会造成CPU繁忙,影响到正常业务的处理。为了避免此问题,可以配置设备根据源IP地址进行ARP报文限速。设备会对上送CPU的ARP报文根据源IP地址进行统计,如果在1s内收到的同一源IP地址的ARP报文超过设定阈值,则丢弃超出阈值部分的ARP报文。


三、配置基于全局、VLAN或者接口的ARP报文限速

在ARP泛洪攻击的报文中,如果源MAC地址,或者源IP地址都不是相对固定的情况下,可以在全局、VLAN或接口下配置针对所有ARP报文的限速和限速时间。在ARP报文限速时间内,如果收到的所有ARP报文数目超过ARP报文限速值,设备会丢弃超出限速值的ARP报文。

(1)全局的ARP报文限速:在设备出现ARP攻击时,需要限制全局处理的ARP报文数量(是指设备各个接口上接收到的ARP报文的总数)。

(2)VLAN的ARP报文限速:在某个VLAN内的所有接口出现ARP攻击时,可以仅限制处理收到的该VLAN内的ARP报文数量,配置本功能可以保证不影响其他VLAN内所有接口的ARP学习。

(3)接口的ARP报文限速:在某个接口出现ARP攻击时,可以仅限制处理该接口(可以是各种以太网接口,也可以是Eth-Trunk接口,还可以是端口组)收到的ARP报文数量,配置本功能可以保证不影响其他接口的ARP学习。

当同时在全局、VLAN或接口下配置ARP报文的限速值和限速时间,设备会先按照接口进行限速,再按照VLAN进行限速,最后按照全局进行限速。当设备丢弃的ARP报文数量较多时,如果希望设备能够以告警的方式提醒网络管理员,则还可以使能ARP报文限速丢弃告警功能。当丢弃的ARP报文数超过告警阈值时,设备将产生告警。


四、配置ARP Miss消息源抑制

当设备检测到某一源IP地址的IP报文在1s内触发的ARP Miss消息数量超过了限速值,就认为此源IP地址存在攻击。这时,设备对ARP Miss报文的缺省处理方式是block方式,即设备会丢弃超出限速值部分的ARP Miss消息,也就是丢弃触发这些ARP Miss消息的ARP Miss报文,并下发一条ACL来丢弃该源IP地址的后续所有ARP Miss报文;如果是none-block方式,设备只会丢弃超出限速值部分的ARP Miss消息,因此,该方式对CPU的负担减轻效果有限。可根据实际情况调整ARP Miss消息的限速值并合理配置ARP Miss报文处理方式。


五、配置全局、VLAN和接口的ARP Miss消息限速

如果网络中有用户向设备发送大量目的IP地址不能解析的IP报文(即路由表中存在该IP报文的目的IP地址对应的路由表项,但设备上没有该路由表项中下一跳对应的ARP表项),将导致设备触发大量的ARP Miss消息。这种触发ARP Miss消息的IP报文会被上送到主控板进行处理,设备会根据ARP Miss消息生成和下发大量临时ARP表项并向目的网络发送大量ARP请求报文,这样就增加了设备CPU的负担,同时严重消耗目的网络的带宽资源。

为了避免这种IP报文攻击所带来的危害,可以配置以下ARP Miss消息限速功能:

(1)全局的ARP Miss消息限速:在设备出现目的IP地址不能解析的IP报文攻击时,可限制全局处理的ARP Miss消息数量。

(2)VLAN的ARP Miss消息限速:在某个VLAN内的所有接口出现目的IP地址不能解析的IP报文攻击时,可仅限制处理该VLAN内报文触发的ARPMiss消息数量,配置本功能可以保证不影响其他VLAN内所有接口的IP报文转发。

(3)接口的ARP Miss消息限速:在某个接口出现目的IP地址不能解析的IP报文攻击时,可仅限制处理该接口收到的报文触发的ARP Miss消息数量,配置本功能可以保证不影响其他接口的IP报文转发。

当同时在全局、VLAN或接口下配置ARPMiss消息限速时,设备会先按照接口进行限速,再按照VLAN进行限速,最后按照全局进行限速。当设备忽略的ARP Miss消息数量较多时,如果希望设备能够以告警的方式提醒网络管理员,则可以配置ARP Miss消息限速丢弃告警功能。当设备忽略处理的ARP Miss消息个数超过告警阈值时,设备将产生告警。



六、配置临时ARP表项的老化时间

为了控制设备根据ARP Miss消息生成大量临时的ARP表项,可以通过配置临时ARP表项的老化时间来控制ARPMiss消息的触发频率。这样,在送ARP Miss消息时,在老化时间超时前如果设备没有收到对应的ARP应答报文,则匹配对应临时ARP表项的IP报文将被丢弃,并且不会再触发新的ARP Miss消息;而在设备收到对应的ARP应答报文后,会生成正确的ARP表项来替换临时ARP表项。

但仅配置老化时间还不够,因为在对应临时ARP表项的老化时间超时后,设备虽然会清除该临时ARP表项,但此时如果设备转发IP报文再次匹配不到对应的ARP表项时,则又会重新触发ARP Miss消息并生成临时ARP表项,如此循环重复。这时可调大对应IP报文的临时ARP表项的老化时间,以减少设备的ARP Miss消息的触发频率,从而减小攻击对设备的影响。

临时ARP表项的老化时间是在具体的VLANIF接口视图下配置的,以配置对应VLAN接口所在IP网段的临时ARP表项的老化时间。


七、配置ARP表项严格学习

如果大量用户在同一时间内向设备发送大量ARP报文,或者攻击者伪造正常用户的ARP报文发送给设备,则会造成如下危害:

(1)设备因处理大量ARP报文而导致CPU负荷过重,同时设备学习大量的ARP报文可能导致设备ARP表项资源被无效的ARP表项耗尽,造成合法用户的ARP报文不能继续生成ARP表项,导致用户无法正常通信。

(2)伪造的ARP报文将错误地更新设备ARP表项,导致合法用户无法正常通信。

为避免上述危害,可以在网关设备上配置ARP表项严格学习功能。配置该功能后,只有本设备主动发送的ARP请求报文的应答报文才能触发本设备学习ARP,其他设备主动向本设备发送的ARP报文不能触发本设备学习ARP,这样,可以拒绝大部分的ARP报文攻击。

ARP表项严格学习功能可在全局和VLANIF接口视图下进行配置。如果全局是鞥你该功能,则设备的所有接口均进行ARP表项严格学习;如果VLANIF接口下使能该功能,则只有该接口进行ARP表项严格学习。当同时在全局和VLANIF接口视图下进行配置时,VLANIF接口下配置的优先级高于全局配置的优先级。


由于有些用户主机上安装的防火墙会阻止其收到ARP请求时发送ARP应答,所以使能ARP表项严格学习功能后,如果设备上触发了ARP Miss消息,则设备主动发出的ARP请求将无法得到该用户的ARP应答,从而使设备无法学习到该用户的ARP。在这种场景下,如果仅是个别用户出现该问题,则可以为其配置静态ARP;如果该问题在用户中非常普遍,则建议去使能ARP表项严格学习功能。

八、配置基于接口的ARP表项限制

为了防止当一个接口(可以是二层物理接口、Eth-Trunk接口、VLANIF接口、三层物理子接口和端口组)所接入的某一用户主机发起ARP攻击时导致整个设备的ARP表项资源被耗尽,可以在指定接口下配置接口能够学习到的最大动态ARP表项数目。当指定接口下的动态ARP表项达到允许学习的最大数目后,将不允许新增动态ARP表项。



九、配置免费ARP报文主动丢弃

由于发送免费ARP报文的用户主机并不需要经过身份验证,任何一个用户主机都可以发送免费ARP报文,这样就引入了两个问题:

(1)如果网络中出现大量的免费ARP报文,设备会因为处理这些报文而导致CPU负荷过重,从而不能正常处理合法的ARP报文。

(2)如果设备处理的免费ARP报文是攻击者伪造的,会造成设备错误地更新ARP表项,导致合法用户的通信流量发生中断。

为了解决以上问题,在确认攻击来自免费ARP报文之后,可以在网关设备上使能免费ARP报文主动丢弃功能,使网关设备直接丢弃所收到的免费ARP报文。

丢弃免费ARP报文功能可以在全局和VLANIF接口下使能。全局使能该功能,则设备的所有接口都丢弃收到的免费ARP报文。VLANIF接口下使能该功能,则只有该接口丢弃收到的免费ARP报文。一般在用户侧的VLANIF接口下配置免费ARP报文主动丢弃功能。



猜你喜欢

转载自blog.csdn.net/kaoa000/article/details/80049104