诸葛神算704999co六肖:ARP攻击防范技术白皮书

来源:百度文库 编辑:偶看新闻 时间:2024/04/27 20:14:51

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 概述... 31.1 产生背景... 31.1.1 ARP工作机制... 31.1.2 ARP攻击类型介绍... 31.1.3 ARP攻击的危害... 61.2 H3C解决方案... 72 ARP攻击防范技术介绍... 82.1 接入设备攻击防范介绍... 82.1.1 ARP Detection功能... 82.1.2 ARP网关保护功能... 102.1.3 ARP过滤保护功能... 102.1.4 ARP报文限速功能... 102.2 网关设备攻击防范介绍... 112.2.1授权ARP功能... 112.2.2 ARP自动扫描和固化功能... 122.2.3 配置静态ARP表项... 122.2.4 ARP主动确认功能... 122.2.5 ARP报文源MAC一致性检查功能... 132.2.6 源MAC地址固定的ARP攻击检测功能... 142.2.7 限制接口学习动态ARP表项的最大数目... 142.2.8 ARP防IP报文攻击功能... 143 典型组网应用... 153.1 监控方式... 153.2 认证方式... 163.3 网吧解决方案... 174 参考文献... 17
1  概述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报文,导致主机B的ARP表中记录了错误的网关地址映射关系,从而正常的数据不能被网关接收。图1 仿冒网关攻击示意图仿冒网关攻击是一种比较常见的攻击方式,如果攻击源发送的是广播ARP报文,或者根据其自身所掌握的局域网内主机的信息依次地发送攻击报文,就可能会导致整个局域网通信的中断,是ARP攻击中影响较为严重的一种。2. 仿冒用户攻击(1)        欺骗网关如图2所示,主机A仿冒主机B向网关发送了伪造的ARP报文,导致网关的ARP表中记录了错误的主机B地址映射关系,从而正常的数据报文不能正确地被主机B接收。图2 欺骗网关攻击示意图(2)        欺骗其他用户如图3所示,主机A仿冒主机B向主机C发送了伪造的ARP报文,导致主机C的ARP表中记录了错误的主机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报文的冲击。直接在网关上进行部署对接入交换机的依赖较小,可以较好的支持现有网络,有效地保护用户投资。实际应用时,建议分析网络的实际场景,选择合适的攻击防范技术。2  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报文限速功能是指对上送CPU的ARP报文进行限速,可以防止大量ARP报文对CPU进行冲击。例如,在配置了ARP Detection功能后,设备会将收到的ARP报文重定向到CPU进行检查,这样引入了新的问题:如果攻击者恶意构造大量ARP报文发往设备,会导致设备的CPU负担过重,从而造成其他功能无法正常运行甚至设备瘫痪,这个时候可以启用ARP报文限速功能来控制上送CPU的ARP报文的速率。推荐用户在配置了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              ARP防IP报文攻击功能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表中已有与报文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存在攻击也不会被检测过滤。2.2.7  限制接口学习动态ARP表项的最大数目当指定接口下的动态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攻击防范技术在实际中的部署。3.1  监控方式图5 监控方式部署范例& 说明:红色数据流表示非法ARP报文被丢弃,攻击防范生效。 监控方式主要适用于动态接入用户居多的网络环境,如图5所示,网络内的主机通过DHCP服务器动态获取IP地址。在上述网络中,ARP攻击防范的措施部署在接入交换机上,网关设备和主机都无需另外进行攻击防范的配置。接入设备上运行的ARP Detection特性会根据DHCP Snooping的安全表项对通过本设备的ARP报文进行检查。如果用户侧主机的ARP报文中携带的发送者信息和DHCP Snooping安全表项的绑定信息不一致,报文将被认定为攻击报文并被丢弃。从而避免了网关或者其他主机的ARP表中记录错误的地址映射关系。同时,建议配置ARP限速,防止ARP泛洪攻击。3.2  认证方式图6 认证方式部署范例认证方式适合网络中采用认证登陆的场景,如图6所示,通过H3C iMC、H3C iNode客户端与接入交换机和网关的联动,全方面的防范ARP攻击。实现原理:客户端通过认证协议(802.1x或Portal)登陆网络,iMC对客户端进行认证,接入交换机对获取到客户端的IP+MAC信息进行绑定,保证当前用户的合法性;认证通过后,iMC将网关的IP+MAC信息下发给客户端进行绑定,保证网关的准确性。3.3  网吧解决方案图7 网吧解决方案如图7所示,首先网关通过ARP自动扫描功能建立网吧局域网内所有客户端的动态ARP表项,然后通过ARP固化功能将这些动态ARP表项转换为静态ARP表项。完成后禁止网关学习动态ARP表项,即只允许和现有ARP表项一致的客户端才能访问Internet。这样可以防止用户私自修改客户端IP地址,使用户的网上行为有记录可循。4  参考文献l              RFC 826:An Ethernet Address Resolution Protocoll              RFC 2131:Dynamic Host Configuration Protocol(DHCP)l              RFC 3046:DHCP Relay Agent Information Option