国家 / 地区

ARP攻击防御技术白皮书-6W100

手册下载

ARP攻击防御技术白皮书

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Copyright © 2019 新华三技术有限公司 版权所有,保留一切权利。

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

除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。

本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。



概述

1.1  产生背景

1.1.1  ARP工作机制

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

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

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

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

1.1.2  ARP攻击类型介绍

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

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

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

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

·     仿冒网关攻击

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

·     泛洪攻击

1. 仿冒网关攻击

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

图1 仿冒网关攻击示意图

 

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

2. 仿冒用户攻击

·     欺骗网关

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

图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攻击是一种非常恶劣的网络攻击行为:

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

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

1.2  技术优点

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

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

 

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

·     攻击源一般来源于主机侧,因此接入设备在ARP攻击防御功能是一个关键控制点。

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

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

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

·     如果接入设备不支持ARP攻击防御功能,或者主机直接接入网关,则需要在网关上部署防御措施。

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

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

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

接入设备ARP攻击防御技术实现

2.1  接入设备ARP攻击防御简介

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

·     针对仿冒网关攻击

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

¡     ARP Detection功能

¡     ARP过滤保护功能

¡     ARP网关保护功能

·     针对仿冒用户攻击

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

¡     ARP Detection功能

¡     ARP过滤保护功能

·     针对ARP泛洪攻击

ARP报文限速功能

2.2  ARP Detection功能

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

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

目前,ARP Detection的三种具体实现机制如下:

·     ARP报文有效性检查

·     用户合法性检查

·     ARP报文强制转发

2.2.1  ARP报文有效性检查

对于ARP信任端口,不进行报文有效性检查;对于ARP非信任端口,需要根据配置的检查模式对MAC地址和IP地址不合法的报文进行过滤:

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

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

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

2.2.2  用户合法性检查

用户合法性检查在ARP非信任端口上执行。对于ARP信任端口,不进行用户合法性检查。

ARP非信任端口根据ARP报文中源IP地址和源MAC地址检查用户是否是所属VLAN所在接口上的合法用户,具体包括基于用户合法性规则检查以及基于用户表项(IP Source Guard静态绑定表项、DHCP Snooping表项、802.1X安全表项)的检查。具体匹配机制如下:

(1)     设备收到ARP报文后,用户合法性检查过程如下:

¡     如果找到与报文匹配的规则,则按照该规则对报文进行处理;

¡     如果未找到与报文匹配的规则,则继续进行基于IP Source Guard静态绑定表项的检查、基于DHCP Snooping表项的检查和基于802.1X安全表项的检查。只要符合三者中的任何一个,就认为该ARP报文合法,进行转发。

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

上述过程中使用的IP Source Guard静态绑定表项通过ip source binding命令生成,DHCP Snooping安全表项通过DHCP Snooping功能自动生成,802.1X安全表项通过802.1X功能产生。其中,802.1X用户使用支持将IP地址上传的客户端认证时,客户端会将IP地址上传至配置ARP Detection的设备,之后设备自动生成可用于ARP Detection的用户合法性检查的802.1X安全表项。

2.2.3  ARP报文强制转发

ARP报文强制转发基于非信任接口生效,对已经通过用户合法性检查的ARP报文进行处理:

·     对于ARP请求报文,通过信任接口进行转发;

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

对于从ARP信任接口接收到的ARP报文不受此功能影响,按照正常流程进行转发。

2.3  ARP网关保护功能

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

在接口上开启此功能后,当接口收到ARP报文时,将检查ARP报文的源IP地址是否和配置的被保护网关的IP地址相同:

·     如果相同,则认为此报文非法,将其丢弃;

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

2.4  ARP过滤保护功能

ARP过滤保护功能用来限制接口上允许通过的ARP报文,可以防止仿冒网关和仿冒用户的攻击。

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

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

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

2.5  ARP报文限速功能

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

在接口上配置ARP报文限速功能后,当接口上单位时间收到的ARP报文数量超过用户设定的限速值,超过限速部分的报文会被丢弃。设备还将进行如下操作:

·     当开启了ARP模块的告警功能后,设备将这个时间间隔内的超速峰值作为告警信息发送出去,生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关特性

·      当开启了ARP限速日志功能后,设备将这个时间间隔内的超速峰值作为日志的速率值发送到设备的信息中心,通过设置信息中心的参数,最终决定日志报文的输出规则(即是否允许输出以及输出方向)。

网关设备ARP攻击防御技术实现

3.1  网关设备ARP攻击防御技术简介

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

·     针对仿冒用户攻击

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

-     授权ARP功能

-     ARP自动扫描和固化功能

-     配置静态ARP表项

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

-     ARP主动确认功能

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

·     针对ARP泛洪攻击

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

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

¡     ARPIP报文攻击功

3.2  授权ARP功能

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

开启接口的授权ARP功能后:

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

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

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

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

3.3  ARP自动扫描和固化功能

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

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

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

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

3.4  配置静态ARP表项

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

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

3.5  ARP主动确认功能

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

配置ARP主动确认功能后,设备在新建或更新ARP表项前需进行主动确认,防止产生错误的ARP表项。

配置ARP主动确认功能的严格模式后,新建ARP表项前,设备会执行更严格的检查:

·     收到目标IP地址为自己的ARP请求报文时,设备会发送ARP应答报文,但不建立ARP表项;

·     收到ARP应答报文时,需要确认本设备是否对该报文中的源IP地址发起过ARP解析:若发起过解析,则解析成功后设备开启主动确认功能。主动确认流程成功完成后,设备可以建立该表项;若未发起过解析,则设备丢弃该报文。

开启ARP主动确认功能后,设备在新建或更新ARP表项前需进行主动确认,防止产生错误的ARP表项。

3.5.1  新建ARP表项前的主动确认

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

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

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

3.5.2  更新ARP表项前的主动确认

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.9  ARPIP报文攻击功能

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

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

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

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

·     如果发送攻击报文的源是固定的,可以采用ARP源抑制功能。

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

·     如果发送攻击报文的源不固定,可以采用ARP黑洞路由功能。开启该功能后,一旦接收到目标IP地址不能解析的IP报文,设备立即产生一个黑洞路由,使得设备在一段时间内将去往该地址的报文直接丢弃。黑洞路由老化之后,如果设备重新接收到目标IP地址不能解析的IP报文,将继续产生一个黑洞路由。这种方式能够有效地防止IP报文的攻击,减轻CPU的负担。

·     在网关开启发送端IP地址检查功能,手动限定ARP的学习范围。开启该功能后,如果指定VLAN内的ARP报文的发送端IP地址不在指定的源IP地址范围内,则认为是攻击报文,将其丢弃;否则,继续进行ARP学习。

典型组网应用

4.1  监控部署方式

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

图5 监控方式部署组网图

 

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

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

同时,建议在接入设备上配置ARP限速功能,防止ARP泛洪攻击。

4.2  认证部署方式

认证部署方式适合网络中采用接入认证的场景,如6所示,接入设备通过与H3C iMCIntelligent Management Center,开放智能管理中枢)服务器、H3C iNode客户端、网关的联动,全方面地防御ARP攻击。

图6 认证方式部署组网图

 

在上述组网中,iNode客户端通过认证协议(802.1XPortal)登录网络,iMC服务器对客户端进行认证,接入设备绑定获取到的客户端的IP+MAC信息。ARP攻击防御功能的措施部署在接入设备上:

·     在接入设备的用户侧接口上开启ARP网关保护功能,可以防止伪造网关攻击;

·     在接入设备的网关侧接口上开启ARP过滤保护功能,可以防止伪造网关和伪造用户的攻击。

4.3  网吧等小型网络解决方案

7所示网吧等小型网络中,客户端比较稳定,不会经常新增或删除客户端。通过将ARP攻击防御技术部署在网关设备上,可防止用户私自修改客户端IP地址,使用户的网上行为有记录可循。

在本解决方案中,首先在网关上通过ARP自动扫描功能建立网吧等小型局域网内所有客户端的动态ARP表项,然后通过ARP固化功能将这些动态ARP表项转换为静态ARP表项。ARP固化操作完成后,配置接口允许学习动态ARP表项的最大数目为0,禁止接口学习动态ARP表项,即只允许和现ARP表项一致的客户端才能访问Internet

图7 网吧等小型网络部署组网图

 

参考文献

·     RFC 826An Ethernet Address Resolution Protocol

·     RFC 2131Dynamic Host Configuration Protocol(DHCP)

·     RFC 3046DHCP Relay Agent Information Option

 

联系我们 联系我们
联系我们
回到顶部 回到顶部