ARP攻击防范技术白皮书

ARP攻击防范技术白皮书

关键词:ARP,仿冒网关,欺骗网关,欺骗其他用户,泛洪攻击

    要:本文针对目前常见的ARP攻击,介绍了H3C网络设备所能提供的防范ARP攻击的方法以及典型组网应用。

缩略语:

缩略语

英文全名

中文解释

ARP

Address Resolution Protocol

地址解析协议

DHCP

Dynamic Host Configuration Protocol

动态主机配置协议

MAC

Media Access Control

媒体访问控制

iMC

Intelligent Management Center

开放智能管理中枢

 

 



概述

1.1  产生背景

1.1.1  ARP工作机制

ARP协议是以太网等数据链路层的基础协议,负责完成IP地址到硬件地址的映射。工作过程简述如下:

(1)        当主机或者网络设备需要解析一个IP地址对应的MAC地址时,会广播发送ARP请求报文。

(2)        主机或者网络设备接收到ARP请求后,会进行应答。同时,根据请求发送者的IP地址和MAC地址的对应关系建立ARP表项。

(3)        发起请求的主机或者网络设备接收到应答后,同样会将应答报文中发送者的IP地址和MAC地址的映射关系记录下来,生成ARP表项。

1.1.2  ARP攻击类型介绍

ARP工作机制可以看出,ARP协议简单易用,但是却没有任何安全机制,攻击者可以发送伪造ARP报文对网络进行攻击。伪造ARP报文具有如下特点:

l              伪造的ARP报文中源MAC地址/目的MAC地址和以太网帧封装中的源MAC地址/目的MAC地址不一致。

l              伪造的ARP报文中源IP地址和源MAC地址的映射关系不是合法用户真实的映射关系。

目前主要的ARP攻击方式有如下几类:

l              仿冒网关攻击

l              仿冒用户攻击(欺骗网关或者其他主机)

l              泛洪攻击

1. 仿冒网关攻击

1所示,因为主机A仿冒网关向主机B发送了伪造的网关ARP报文,导致主机BARP表中记录了错误的网关地址映射关系,从而正常的数据不能被网关接收。

图1 仿冒网关攻击示意图

仿冒网关攻击是一种比较常见的攻击方式,如果攻击源发送的是广播ARP报文,或者根据其自身所掌握的局域网内主机的信息依次地发送攻击报文,就可能会导致整个局域网通信的中断,是ARP攻击中影响较为严重的一种。

2. 仿冒用户攻击

(1)        欺骗网关

2所示,主机A仿冒主机B向网关发送了伪造的ARP报文,导致网关的ARP表中记录了错误的主机B地址映射关系,从而正常的数据报文不能正确地被主机B接收。

图2 欺骗网关攻击示意图

(2)        欺骗其他用户

3所示,主机A仿冒主机B向主机C发送了伪造的ARP报文,导致主机CARP表中记录了错误的主机B地址映射关系,从而正常的数据报文不能正确地被主机B接收。

图3 欺骗其他用户攻击示意图

3. ARP泛洪攻击

网络设备在处理ARP报文时需要占用系统资源,同时因为系统内存和查找ARP表效率的要求,一般网络设备会限制ARP表的大小。攻击者就利用这一点,通过伪造大量源IP地址变化的ARP报文,使设备ARP表溢出,合法用户的ARP报文不能生成有效的ARP表项,导致正常通信中断。

另外,通过向设备发送大量目标IP地址不能解析的IP报文,使设备反复地对目标IP地址进行解析,导致CPU负荷过重,也是泛洪攻击的一种。

1.1.3  ARP攻击的危害

ARP攻击是一种非常恶劣的网络攻击行为:

l              会造成网络不稳定,引发用户无法上网或者企业断网导致重大生产事故。

l              利用ARP攻击可进一步实施攻击,非法获取游戏、网银、文件服务等系统的帐号和口令,使被攻击者造成利益上的重大损失。

1.2  H3C解决方案

针对上述网络中常见的ARP攻击行为,H3C提出了较为完整的解决方案,可以彻底解决客户网络受到ARP攻击的问题。

图4 网络设备角色示意简图

4所示,ARP攻击防范技术的思路是以设备角色为线索,通过分析二三层网络设备可能会面对哪些类型的攻击,从而提供有效的防范措施。

攻击源一般来自于主机侧,因此接入交换机在ARP攻击防范中是一个关键的控制点。针对攻击的特点,接入交换机上的防范主要从两个方面考虑:

l              建立正确的ARP映射关系、检测并过滤伪造的ARP报文,保证经过其转发的ARP报文正确合法。

l              抑制短时间内大量ARP报文的冲击。

由于防范措施部署在接入侧,因此无需在网关上部署,可以减轻网关负担。

如果接入交换机上不支持ARP攻击防范功能,或者主机直接接入网关,则需要在网关上部署防范措施,部署思路从两个方面考虑:

l              建立正确的ARP表项,防止攻击者修改。

l              抑制短时间内大量ARP报文或者需触发ARP解析的IP报文的冲击。

直接在网关上进行部署对接入交换机的依赖较小,可以较好的支持现有网络,有效地保护用户投资。

实际应用时,建议分析网络的实际场景,选择合适的攻击防范技术。

ARP攻击防范技术介绍

2.1  接入设备攻击防范介绍

接入设备可能受到的攻击类型为仿冒网关、仿冒用户和泛洪攻击。针对这三种攻击可以采用的防范措施为:

1. 针对仿冒网关攻击

ARP报文的合法性进行检查,如果合法则进行后续处理,如果非法则丢弃报文。

l              ARP Detection功能

l              ARP过滤保护功能

l              ARP网关保护功能

2. 针对仿冒用户攻击

ARP报文的合法性进行检查,如果合法则进行后续处理,如果非法则丢弃报文。

l              ARP Detection功能

l              ARP过滤保护功能

3. 针对ARP泛洪攻击

l              ARP报文限速功能

2.1.1  ARP Detection功能

VLAN内开启ARP Detection功能后,该VLAN内所有端口接收到的ARP(请求与应答)报文将被重定向到CPU进行报文的用户合法性检查和报文有效性检查:如果认为该ARP报文合法,则进行转发;否则直接丢弃。

目前包括三个功能:

l              ARP报文有效性检查

l              用户合法性检查

l              ARP报文强制转发

1. ARP报文有效性检查

对于ARP信任端口,不进行报文有效性检查;对于ARP非信任端口,需要根据配置对MAC地址和IP地址不合法的报文进行过滤。可以选择配置源MAC地址、目的MAC地址或IP地址检查模式。

l              对于源MAC地址的检查模式,会检查ARP报文中的源MAC地址和以太网报文头中的源MAC地址是否一致,一致认为有效,否则丢弃。

l              对于目的MAC地址的检查模式(只针对ARP应答报文),会检查ARP应答报文中的目的MAC地址是否为全0或者全1,是否和以太网报文头中的目的MAC地址一致。全0、全1、不一致的报文都是无效的,无效的报文需要被丢弃。

l              对于IP地址检查模式,会检查ARP报文中的源IP和目的IP地址,全0、全1、或者组播IP地址都是不合法的,需要丢弃。对于ARP应答报文,源IP和目的IP地址都进行检查;对于ARP请求报文,只检查源IP地址。

2. 用户合法性检查

对于ARP信任端口,不进行用户合法性检查;对于ARP非信任端口,需要进行用户合法性检查,以防止仿冒用户的攻击。

用户合法性检查是根据ARP报文中源IP地址和源MAC地址检查用户是否是所属VLAN所在端口上的合法用户,包括基于IP Source Guard静态绑定表项的检查、基于DHCP Snooping安全表项的检查、基于802.1X安全表项的检查和OUI MAC地址的检查。

l              首先进行基于IP Source Guard静态绑定表项检查。如果找到了对应源IP地址和源MAC地址的静态绑定表项,认为该ARP报文合法,进行转发。如果找到了对应源IP地址的静态绑定表项但源MAC地址不符,认为该ARP报文非法,进行丢弃。如果没有找到对应源IP地址的静态绑定表项,继续进行DHCP Snooping安全表项、802.1X安全表项和OUI MAC地址检查。

l              在基于IP Source Guard静态绑定表项检查之后进行基于DHCP Snooping安全表项、802.1X安全表项和OUI MAC地址检查,只要符合三者中任何一个,就认为该ARP报文合法,进行转发。其中,OUI MAC地址检查指的是,只要ARP报文的源MAC地址为OUI MAC地址,并且使能了Voice VLAN功能,就认为是合法报文,检查通过。

l              如果所有检查都没有找到匹配的表项,则认为是非法报文,直接丢弃。

3. ARP报文强制转发

ARP报文强制转发功能是将ARP非信任端口接收到的已经通过用户合法性检查的ARP报文,按照一定的规则进行转发的防攻击功能,此功能不对ARP信任端口接收到的通过用户合法性检查的ARP报文进行限制。

对于从ARP非信任端口收到的已经通过用户合法性检查的合法ARP报文的处理过程如下:

l              对于ARP请求报文,通过信任端口进行转发。

l              对于ARP应答报文,首先按照报文中的以太网目的MAC地址进行转发,若在MAC地址表中没有查到目的MAC地址对应的表项,则将此ARP应答报文通过信任端口进行转发。

2.1.2  ARP网关保护功能

在设备不与网关相连的端口上配置此功能,可以防止仿冒网关攻击。

在端口配置此功能后,当端口收到ARP报文时,将检查ARP报文的源IP地址是否和配置的被保护网关的IP地址相同。如果相同,则认为此报文非法,将其丢弃;否则,认为此报文合法,继续进行后续处理。

2.1.3  ARP过滤保护功能

本功能用来限制端口下允许通过的ARP报文,可以防止仿冒网关和仿冒用户的攻击。

在端口配置此功能后,当端口收到ARP报文时,将检查ARP报文的源IP地址和源MAC地址是否和允许通过的IP地址和MAC地址相同:

l              如果相同,则认为此报文合法,继续进行后续处理。

l              如果不相同,则认为此报文非法,将其丢弃。

2.1.4  ARP报文限速功能

ARP报文限速功能是指对上送CPUARP报文进行限速,可以防止大量ARP报文对CPU进行冲击。例如,在配置了ARP Detection功能后,设备会将收到的ARP报文重定向到CPU进行检查,这样引入了新的问题:如果攻击者恶意构造大量ARP报文发往设备,会导致设备的CPU负担过重,从而造成其他功能无法正常运行甚至设备瘫痪,这个时候可以启用ARP报文限速功能来控制上送CPUARP报文的速率。

推荐用户在配置了ARP Detection或者发现有ARP泛洪攻击的情况下,使用ARP报文限速功能。

2.2  网关设备攻击防范介绍

网关设备可能受到的攻击类型为仿冒用户和泛洪攻击。针对这两种攻击可以采用的防范措施为:

1. 针对仿冒用户攻击

(1)        通过合法方式建立正确的ARP表项,并阻止攻击者修改

l              授权ARP功能

l              ARP自动扫描和固化功能

l              配置静态ARP表项

(2)        动态学习ARP表项前进行确认,保证学习到的是真实、正确的映射关系

l              ARP主动确认功能

l              ARP报文源MAC一致性检查功能

2. 针对ARP泛洪攻击

l              MAC地址固定的ARP攻击检测功能

l              限制接口学习动态ARP表项的最大数目

l              ARPIP报文攻击功

2.2.1  授权ARP功能

授权ARP功能是指根据DHCP服务器生成的租约或者DHCP中继生成的安全表项同步生成ARP表项。适用于采用DHCP协议动态分配主机IP地址的网络环境。

使能接口的授权ARP功能后:

l              只有静态ARP表项才可以覆盖授权ARP表项,授权ARP表项不会被被伪造的ARP报文动态改写(即动态ARP表项不能覆盖授权ARP表项),因此保证了表项的正确性。

l              如果发送者冒用其它合法主机的IP地址发送ARP请求,因为MAC地址不是网关所记录的授权ARP表项中的合法MAC地址,伪造的ARP请求将不能得到应答,从而限制冒用合法IP地址的主机上网。

l              禁止该接口学习动态ARP表项,可以防止用户仿冒其他用户的IP地址或MAC地址对网络进行攻击,保证只有合法的用户才能使用网络资源,增加了网络的安全性。

l              接口下授权ARP表项的老化探测功能,可以检测用户的非正常下线,及时删除对应的授权ARP表项。

2.2.2  ARP自动扫描和固化功能

ARP自动扫描功能一般与ARP固化功能配合使用:

l              启用ARP自动扫描功能后,设备会对局域网内的邻居自动进行扫描(向邻居发送ARP请求报文,获取邻居的MAC地址,从而建立动态ARP表项)。

l              ARP固化功能用来将当前的ARP动态表项(包括ARP自动扫描生成的动态ARP表项)转换为静态ARP表项。通过对动态ARP表项的固化,可以有效的防止攻击者修改ARP表项。

推荐在网吧这种环境稳定的小型网络中使用这两个功能。

2.2.3  配置静态ARP表项

对于网络中重要的服务器等设备,可以将其IP地址和MAC地址的映射关系配置为静态ARP表项。这种静态映射关系不但不能被伪造的ARP报文动态改写,而且同样会限制对非法ARP请求的应答,从而保护服务器不受到攻击。

配置静态ARP表项虽然可以保护ARP表不被改写,但是配置工作量大,不适用于主机IP地址可能发生更改的网络环境,建议在比较小的网络里使用。

2.2.4  ARP主动确认功能

ARP的主动确认功能主要应用于网关设备上,防止攻击者仿冒用户欺骗网关设备。

未启用ARP主动确认功能时,设备收到一个ARP报文的处理过程如下:

l              如果设备的ARP表中没有与此ARP报文源IP地址对应的ARP表项,设备会根据ARP报文中携带的源IP地址、源MAC地址信息新建ARP表项。

l              如果设备的ARP表中存在与此ARP报文源IP地址对应的ARP表项,设备会根据ARP报文中携带的源IP地址、源MAC地址信息更新对应的ARP表项。

启用ARP主动确认功能后,设备在新建或更新ARP表项前需进行主动确认,防止产生错误的ARP表项。下面将详细介绍其工作原理

1. 新建ARP表项前的主动确认

设备收到一个ARP报文,若当前设备ARP表中没有与此ARP报文源IP地址对应的ARP表项,设备会首先验证该ARP报文的真实性。设备会采用收到的ARP报文的源IP地址发送一个广播ARP请求报文,如果在随后的3秒内收到ARP应答报文,将对前期收到的ARP报文与此次收到的ARP应答报文进行比较(比较内容包括:源IP地址、源MAC地址、报文接收端口)。

l              如果两个报文一致,则认为收到的ARP报文为真实报文,并根据此报文在ARP表中新建对应的表项。

l              如果两个报文不一致,则认为收到的ARP报文为攻击报文,设备会忽略之前收到ARP报文,ARP表中不会新建对应的表项。

2. 更新ARP表项前的主动确认

设备收到一个ARP报文(报文A),若当前设备ARP表中已有与报文AIP地址对应的ARP表项,但报文A携带的源MAC地址和现有ARP表项中的MAC地址不相同,设备就需要判断当前ARP表项的正确性以及报文A的真实性。

(1)        确定是否启动ARP表项正确性检查

为了避免短时间内多次收到来自同一源IP地址的ARP报文导致的ARP表项频繁更新,设备会首先判断该ARP表项的刷新时间是否超过1分钟。

l              如果没有超过1分钟,则设备不会对ARP表项进行更新。

l              如果已经超过1分钟,设备将启动当前ARP表项的正确性检查。

(2)        启动ARP表项的正确性检查

设备会向ARP表项对应的源发送一个单播ARP请求报文(报文的目的IP地址、目的MAC地址采用ARP表项中的IP地址、MAC地址)。如果在随后的5秒内收到ARP应答报文(报文B),将比较当前ARP表项中的IP地址、MAC地址与报文B的源IP地址、源MAC地址是否一致。

l              如果一致,则认为报文A为攻击报文、ARP表项不会更新。

l              如果不一致,设备将启动报文A的真实性检查。

(3)        启动报文A的真实性检查

设备会向报文A对应的源发送一个单播ARP请求报文(报文的目的IP地址、目的MAC地址采用报文A的源IP地址、源MAC地址)。如果在随后的5秒内收到ARP应答报文(报文C),将比较报文A与报文C的源IP地址、源MAC地址是否一致。

l              如果一致,则认为报文A为真实报文,并根据报文A更新ARP表中对应表项。

l              如果不一致,则认为报文A为攻击报文,设备会忽略收到的报文AARP表项不会更新。

2.2.5  ARP报文源MAC一致性检查功能

ARP报文源MAC一致性检查功能可以用来防御以太网数据帧首部中的源MAC地址和ARP报文中的源MAC地址不同的ARP攻击。

配置本功能后,网关设备在进行ARP学习前将对ARP报文进行检查。如果以太网数据帧首部中的源MAC地址和ARP报文中的源MAC地址不同,则认为是攻击报文,将其丢弃;否则,继续进行ARP学习。

2.2.6  MAC地址固定ARP攻击检测功能

当网关设备在短时间内收到同一个源发送的大量ARP报文时,就认定为发生了源MAC地址固定ARP攻击。

MAC地址固定的ARP攻击检测功能根据ARP报文的源MAC地址进行统计,在5秒内,如果收到同一源MAC地址的ARP报文超过一定的阈值,则认为存在攻击,系统会将此MAC地址添加到攻击检测表项中。在该攻击检测表项老化之前,如果设置的检查模式为过滤模式,则会打印告警信息并且将该源MAC地址发送的ARP报文过滤掉;如果设置的模式为监控模式,则只打印告警信息,不会将该源MAC地址发送的ARP报文过滤掉。

对于网关或一些重要的服务器,可能会发送大量ARP报文,为了使这些ARP报文不被过滤掉,可以将这类设备的MAC地址配置成保护MAC,这样,即使该MAC存在攻击也不会被检测过滤。

2.2.7  限制接口学习动态ARP表项的最大数目

当指定接口下的动态ARP表项达到允许学习的最大数目后,将不允许新增动态学习表项,以保证当一个接口所接入的某一台主机发起ARP攻击时不会导致整个设备的ARP表资源都被耗尽。

当配置接口学习动态ARP表项的最大数目为0时,表示禁止接口学习动态ARP表项。

2.2.8  ARPIP报文攻击功能

如果网络中有主机通过向设备发送大量目标IP地址不能解析的IP报文来攻击设备,则会造成下面的危害:

l              设备向目的网段发送大量ARP请求报文,加重目的网段的负载。

l              设备会试图反复地对目标IP地址进行解析,增加了CPU的负担。

为避免这种IP报文攻击所带来的危害,设备提供了下列两个功能:

l              如果发送攻击报文的源是固定的,可以采用ARP源抑制功能。开启该功能后,如果网络中某主机向设备某端口连续发送目标IP地址不能解析的IP报文,当每5秒内由此主机发出IP报文触发的ARP请求报文的流量超过设置的阈值,那么对于由此主机发出的IP报文,设备不允许其触发ARP请求,直至5秒后再处理,从而避免了恶意攻击所造成的危害。

l              如果发送攻击报文的源不固定,可以采用ARP黑洞路由功能。开启该功能后,一旦接收到目标IP地址不能解析的IP报文,设备立即产生一个黑洞路由,使得设备在一段时间内将去往该地址的报文直接丢弃。等待黑洞路由老化时间过后,如有报文触发则再次发起解析,如果解析成功则进行转发,否则仍然产生一个黑洞路由将去往该地址的报文丢弃。这种方式能够有效地防止IP报文的攻击,减轻CPU的负担。

典型组网应用

结合上面的描述,在此通过典型组网应用的介绍,进一步说明ARP攻击防范技术在实际中的部署。

3.1  监控方式

图5 监控方式部署范例

&  说明:

红色数据流表示非法ARP报文被丢弃,攻击防范生效。

 

监控方式主要适用于动态接入用户居多的网络环境,如5所示,网络内的主机通过DHCP服务器动态获取IP地址。

在上述网络中,ARP攻击防范的措施部署在接入交换机上,网关设备和主机都无需另外进行攻击防范的配置。

接入设备上运行的ARP Detection特性会根据DHCP Snooping的安全表项对通过本设备的ARP报文进行检查。如果用户侧主机的ARP报文中携带的发送者信息和DHCP Snooping安全表项的绑定信息不一致,报文将被认定为攻击报文并被丢弃。从而避免了网关或者其他主机的ARP表中记录错误的地址映射关系。

同时,建议配置ARP限速,防止ARP泛洪攻击。

3.2  认证方式

图6 认证方式部署范例

认证方式适合网络中采用认证登陆的场景,如6所示,通过H3C iMCH3C iNode客户端与接入交换机和网关的联动,全方面的防范ARP攻击。

实现原理:客户端通过认证协议(802.1xPortal)登陆网络,iMC对客户端进行认证,接入交换机对获取到客户端的IPMAC信息进行绑定,保证当前用户的合法性;认证通过后,iMC将网关的IPMAC信息下发给客户端进行绑定,保证网关的准确性。

3.3  网吧解决方案

图7 网吧解决方案

7所示,首先网关通过ARP自动扫描功能建立网吧局域网内所有客户端的动态ARP表项,然后通过ARP固化功能将这些动态ARP表项转换为静态ARP表项。完成后禁止网关学习动态ARP表项,即只允许和现ARP表项一致的客户端才能访问Internet这样可以防止用户私自修改客户端IP地址,使用户的网上行为有记录可循。

参考文献

l              RFC 826An Ethernet Address Resolution Protocol

l              RFC 2131Dynamic Host Configuration Protocol(DHCP)

l              RFC 3046DHCP Relay Agent Information Option

 

 

Copyright ©2009 杭州华三通信技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

本文档中的信息可能变动,恕不另行通知。

附件下载

联系我们