分享

ARP攻击防范技术白皮书

 tcwl123 2011-03-07

ARP攻击防范技术白皮书

字体大小: - - panjiayou   发表于 10-08-14 13:02     阅读(68)   评论(0)     分类:
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  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报文,导致主机B的ARP表中记录了错误的网关地址映射关系,从而正常的数据不能被网关接收。
仿冒网关攻击是一种比较常见的攻击方式,如果攻击源发送的是广播ARP报文,或者根据其自身所掌握的局域网内主机的信息依次地发送攻击报文,就可能会导致整个局域网通信的中断,是ARP攻击中影响较为严重的一种。
2. 仿冒用户攻击
(1)        欺骗网关
如图2所示,主机A仿冒主机B向网关发送了伪造的ARP报文,导致网关的ARP表中记录了错误的主机B地址映射关系,从而正常的数据报文不能正确地被主机B接收。
(2)        欺骗其他用户
如图3所示,主机A仿冒主机B向主机C发送了伪造的ARP报文,导致主机C的ARP表中记录了错误的主机B地址映射关系,从而正常的数据报文不能正确地被主机B接收。
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所示,ARP攻击防范技术的思路是以设备角色为线索,通过分析二三层网络设备可能会面对哪些类型的攻击,从而提供有效的防范措施。
攻击源一般来自于主机侧,因此接入交换机在ARP攻击防范中是一个关键的控制点。针对攻击的特点,接入交换机上的防范主要从两个方面考虑:
l              建立正确的ARP映射关系、检测并过滤伪造的ARP报文,保证经过其转发的ARP报文正确合法。
l              抑制短时间内大量ARP报文的冲击。
由于防范措施部署在接入侧,因此无需在网关上部署,可以减轻网关负担。
如果接入交换机上不支持ARP攻击防范功能,或者主机直接接入网关,则需要在网关上部署防范措施,部署思路从两个方面考虑:
l              建立正确的ARP表项,防止攻击者修改。
l              抑制短时间内大量ARP报文或者需触发ARP解析的IP报文的冲击。
直接在网关上进行部署对接入交换机的依赖较小,可以较好的支持现有网络,有效地保护用户投资。
实际应用时,建议分析网络的实际场景,选择合适的攻击防范技术。
2  ARP攻击防范技术介绍
接入设备可能受到的攻击类型为仿冒网关、仿冒用户和泛洪攻击。针对这三种攻击可以采用的防范措施为:
1. 针对仿冒网关攻击
ARP报文的合法性进行检查,如果合法则进行后续处理,如果非法则丢弃报文。
l              ARP Detection功能
l              ARP过滤保护功能
l              ARP网关保护功能
2. 针对仿冒用户攻击
ARP报文的合法性进行检查,如果合法则进行后续处理,如果非法则丢弃报文。
l              ARP Detection功能
l              ARP过滤保护功能
3. 针对ARP泛洪攻击
l              ARP报文限速功能
某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报文限速功能是指对上送CPU的ARP报文进行限速,可以防止大量ARP报文对CPU进行冲击。例如,在配置了ARP Detection功能后,设备会将收到的ARP报文重定向到CPU进行检查,这样引入了新的问题:如果攻击者恶意构造大量ARP报文发往设备,会导致设备的CPU负担过重,从而造成其他功能无法正常运行甚至设备瘫痪,这个时候可以启用ARP报文限速功能来控制上送CPU的ARP报文的速率。
推荐用户在配置了ARP Detection或者发现有ARP泛洪攻击的情况下,使用ARP报文限速功能。
网关设备可能受到的攻击类型为仿冒用户和泛洪攻击。针对这两种攻击可以采用的防范措施为:
1. 针对仿冒用户攻击
(1)        通过合法方式建立正确的ARP表项,并阻止攻击者修改
l              授权ARP功能
l              ARP自动扫描和固化功能
l              配置静态ARP表项
(2)        动态学习ARP表项前进行确认,保证学习到的是真实、正确的映射关系
l              ARP主动确认功能
l              ARP报文源MAC一致性检查功能
2. 针对ARP泛洪攻击
l              源MAC地址固定的ARP攻击检测功能
l              限制接口学习动态ARP表项的最大数目
l              ARP防IP报文攻击功
授权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表项。
推荐在网吧这种环境稳定的小型网络中使用这两个功能。
对于网络中重要的服务器等设备,可以将其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表中已有与报文A源IP地址对应的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为攻击报文,设备会忽略收到的报文A,ARP表项不会更新。
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存在攻击也不会被检测过滤。
当指定接口下的动态ARP表项达到允许学习的最大数目后,将不允许新增动态学习表项,以保证当一个接口所接入的某一台主机发起ARP攻击时不会导致整个设备的ARP表资源都被耗尽。
当配置接口学习动态ARP表项的最大数目为0时,表示禁止接口学习动态ARP表项。
2.2.8  ARP防IP报文攻击功能
如果网络中有主机通过向设备发送大量目标IP地址不能解析的IP报文来攻击设备,则会造成下面的危害:
l              设备向目的网段发送大量ARP请求报文,加重目的网段的负载。
l              设备会试图反复地对目标IP地址进行解析,增加了CPU的负担。
为避免这种IP报文攻击所带来的危害,设备提供了下列两个功能:
l              如果发送攻击报文的源是固定的,可以采用ARP源抑制功能。开启该功能后,如果网络中某主机向设备某端口连续发送目标IP地址不能解析的IP报文,当每5秒内由此主机发出IP报文触发的ARP请求报文的流量超过设置的阈值,那么对于由此主机发出的IP报文,设备不允许其触发ARP请求,直至5秒后再处理,从而避免了恶意攻击所造成的危害。
l              如果发送攻击报文的源不固定,可以采用ARP黑洞路由功能。开启该功能后,一旦接收到目标IP地址不能解析的IP报文,设备立即产生一个黑洞路由,使得设备在一段时间内将去往该地址的报文直接丢弃。等待黑洞路由老化时间过后,如有报文触发则再次发起解析,如果解析成功则进行转发,否则仍然产生一个黑洞路由将去往该地址的报文丢弃。这种方式能够有效地防止IP报文的攻击,减轻CPU的负担。
3  典型组网应用
结合上面的描述,在此通过典型组网应用的介绍,进一步说明ARP攻击防范技术在实际中的部署。
& 说明:
红色数据流表示非法ARP报文被丢弃,攻击防范生效。
 
监控方式主要适用于动态接入用户居多的网络环境,如图5所示,网络内的主机通过DHCP服务器动态获取IP地址。
在上述网络中,ARP攻击防范的措施部署在接入交换机上,网关设备和主机都无需另外进行攻击防范的配置。
接入设备上运行的ARP Detection特性会根据DHCP Snooping的安全表项对通过本设备的ARP报文进行检查。如果用户侧主机的ARP报文中携带的发送者信息和DHCP Snooping安全表项的绑定信息不一致,报文将被认定为攻击报文并被丢弃。从而避免了网关或者其他主机的ARP表中记录错误的地址映射关系。
同时,建议配置ARP限速,防止ARP泛洪攻击。
认证方式适合网络中采用认证登陆的场景,如图6所示,通过H3C iMC、H3C iNode客户端与接入交换机和网关的联动,全方面的防范ARP攻击。
实现原理:客户端通过认证协议(802.1x或Portal)登陆网络,iMC对客户端进行认证,接入交换机对获取到客户端的IP+MAC信息进行绑定,保证当前用户的合法性;认证通过后,iMC将网关的IP+MAC信息下发给客户端进行绑定,保证网关的准确性。
如图7所示,首先网关通过ARP自动扫描功能建立网吧局域网内所有客户端的动态ARP表项,然后通过ARP固化功能将这些动态ARP表项转换为静态ARP表项。完成后禁止网关学习动态ARP表项,即只允许和现有ARP表项一致的客户端才能访问Internet。这样可以防止用户私自修改客户端IP地址,使用户的网上行为有记录可循。
4  参考文献
l              RFC 826:An Ethernet Address Resolution Protocol
l              RFC 2131:Dynamic Host Configuration Protocol(DHCP)
l              RFC 3046:DHCP Relay Agent Information Option

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多