博达交换机ARP欺骗和攻击的防范.docx
《博达交换机ARP欺骗和攻击的防范.docx》由会员分享,可在线阅读,更多相关《博达交换机ARP欺骗和攻击的防范.docx(13页珍藏版)》请在冰点文库上搜索。
博达交换机ARP欺骗和攻击的防范
博达交换机ARP欺骗和攻击的防范
1、概述
1.1ARP攻击日益严重
近来,ARP欺骗和攻击问题日渐突出,尤其是在校园网这种大型网络。
严重者甚至造成大面积网络不能正常访问外网,学校和类似学校的大型网络是深受其害。
根据ARP欺骗和攻击的特点,本文给出了有效的防ARP欺骗和攻击解决方案。
要解决ARP欺骗和攻击问题,首先必须了解ARP欺骗和攻击的类型和原理,以便于更好的防范和避免ARP欺骗和攻击的带来的危害。
1.2ARP协议的工作原理
ARP协议是用来提供一台主机通过广播一个ARP请求来获取相同网段中另外一台主机或者网关的MAC的协议。
以相同网段中的两台主机A、B来举例,其ARP协议运行的主要交互机制如下:
1、如果A需要向B发起通信,A首先会在自己的ARP缓存表项中查看有无B的ARP表项。
如果没有,则进行下面的步骤:
2、A在局域网上广播一个ARP请求,查询B的IP地址所对应的MAC地址;
3、本局域网上的所有主机都会收到该ARP请求;
4、所有收到ARP请求的主机都学习到了A所对应的ARP表项;如果B收到该请求,则发送一个ARP应答给A,告知A自己的MAC地址,其他主机收到A的ARP请求后,发现其目的IP地址不是自己,则会丢弃,但会保存主机A的ARP信息,以便后续通信;
5、主机A收到B的ARP应答后,会在自己的ARP缓存中写入主机B的ARP表项.
如上所述,利用ARP协议,可以实现相同网段内的主机之间正常通信或者通过网关与外网进行通信。
但由于ARP协议是基于网络中的所有主机或者网关都为可信任的前提制定。
导致在ARP协议中没有认证的机制,从而导致针对ARP协议的欺骗攻击非常容易。
1.3ARP欺骗和攻击的类型
目前ARP欺骗和攻击中有如下三种类型。
我们根据影响范围和出现频率分别介绍如下:
1.3.1网关冒充
ARP病毒通过发送错误的网关MAC对应关系给其他受害者,导致其他终端用户不能正常访问网关。
这种攻击形式在校园网中非常常见。
见下图:
图1网关冒充攻击示意图
如上图所示,攻击者发送伪造的网关ARP报文,欺骗同网段内的其它主机。
从而网络中主机访问网关的流量,被重定向到一个错误的MAC地址(这个错误的MAC地址可以是攻击者自身的MAC地址,也可以构造一个网络中其他主机或是一个不存在的MAC地址,主要还是看攻击者的最终目的是什么),导致该用户无法正常访问外网。
1.3.2欺骗网关
攻击者发送错误的终端用户的IP+MAC的对应关系给网关,导致网关无法和合法终端用户正常通信。
这种攻击在校园网中也有发生,但概率和“网关冒充”攻击类型相比,相对较少。
见下图:
图2欺骗网关攻击示意图
如上图,攻击者伪造虚假的ARP报文,欺骗网关相同网段内的某一合法用户的MAC地址已经更新。
网关发给该用户的所有数据全部重定向到一个错误的MAC地址,导致该用户无法正常访问外网。
1.3.3欺骗终端用户
这种攻击类型,攻击者发送错误的终端用户/服务器的IP+MAC的对应关系给受害的终端用户,导致同网段内两个终端用户之间无法正常通信。
这种攻击在校园网中也有发生,但概率和“网关冒充”和“欺骗网关”攻击类型相比,相对较少。
见下图:
图3欺骗终端攻击示意图
如上图,攻击者伪造虚假的ARP报文,欺骗相同网段内的其他主机该网段内某一合法用户的MAC地址已经更新。
导致该网段内其他主机发给该用户的所有数据全部重定向到一个错误的MAC地址,导致同网段内的两台主机无法正常通信。
1.3.4ARP泛洪攻击
这种攻击类型,攻击者伪造大量不同ARP报文在同网段内进行广播,导致网关ARP表项被占满,合法用户的ARP表项无法正常学习,导致合法用户无法正常访问外网。
主要是一种对局域网资源消耗的攻击手段。
这种攻击在校园网中也有发生。
如下图:
图4ARP泛洪攻击示意图
2解决方案介绍
通过对上述的ARP欺骗和攻击类型的介绍。
我们可以很容易发现当前ARP欺骗和攻击防御的关键所在:
如何获取到合法用户和网关的IP+MAC对应关系,并如何利用该对应关系对ARP报文进行检查,过滤掉非法ARP报文。
我们给出了两种解决方案:
一、对于二层交换机,可以利用安全端口功能(switchportport-security);二、对于二层半(三层)的交换机,可以利用动态的IP+MAC绑定(DHCPSnooping)来防止ARP欺骗和攻击。
利用这两种方法,获取到合法用户的IP+MAC对应关系,从而解决不同环境下的ARP防欺骗和攻击问题。
2.1安全端口模式
当用户网络中的接入层交换机采用的是二层交换机,由于二层交换机不处理三层报文,这就限制了二层交换机在防止ARP欺骗和攻击方面不能做到彻底的防止,只能够缩小ARP欺骗和攻击的范围。
二层交换机主要是通过安全端口功能(port-security)来缩小ARP欺骗和攻击的范围。
在二层交换机的端口下,通过下面的命令来开启安全端口功能:
interfacef0/1
switchportport-securitymode{dynamic|static{accept|reject}}
其中static后面跟的accept方式就是静态的允许,其余的禁止,而reject方式就反过来,静态的禁止,其余的允许,如果是dynamic方式就是说端口限定动态学习mac地址的数量,其范围因交换机的型号不同而不同,如S2008/S2116/S2026上的范围是1-4095;S2224D上的范围是1-8191。
需要再加一条命令switchportport-securitydynamicmaximum。
switchportport-securitystaticmac-addressHH:
HH:
HH添加安全端口的静态安全MAC地址。
从上面的配置命令可以看出:
安全端口功能为静态的话,可以指定特定MAC通过或是禁止,如果欺骗者以一个不存在的或不是自身的MAC地址来进行欺骗,这样是可以通过静态MAC实现禁止,如果欺骗者是以自身的MAC地址来进行欺骗,这样就无法防止ARP欺骗了,因为这种静态MAC只检查MAC地址,不检查IP地址,只要MAC地址符合安全端口下的静态(static)允许(accept),就算是ARP欺骗报文也会允许通过。
动态的方式是限定交换机动态学习MAC地址的数量,这在一定程度上缩小了ARP攻击的影响范围。
从上面的分析可知,二层交换机不能很好的防止ARP欺骗和攻击,效果比较差。
一般遇到接入交换机是二层的,甚至是傻瓜的,我们一般是在路由器和用户主机上,进行双向的IP+MAC地址绑定来防范ARP欺骗和攻击,但是这种方法过于繁琐。
2.2DHCPSnooping模式
2.2.1总体思路
二层半(三层)的交换机除了支持上面的所描述的安全端口功能之外,还支持端口IP和MAC地址绑定,既可以同时绑定IP和MAC地址,也可以只绑定IP或MAC地址。
当在端口下配置了MAC地址和IP地址的绑定以后,除与被绑定地址匹配的IP报文外,所有不匹配的IP报文都会被过滤。
interfacef0/1
Switchportport-securitybind{ipA.B.C.D|macH.H.H}
这种手动的绑定IP+MAC地址的方式,虽然可以防止ARP欺骗和攻击,但是这种方式适应于规模比较小的网络环境,如果网络规模大到上千用户甚至上万,进行手动的绑定IP+MAC地址,其工作量是可想而知的,而且对日后的管理也带来很大的麻烦。
二层半(三层)交换机最大的特色就是它支持动态的IP+MAC地址绑定,即DHCPSnooping。
二层半(三层)接入交换机通过监控用户的正常动态IP地址获取过程,获取正常用户的IP+MAC对应关系在接入交换机上绑定。
接入交换机过滤掉所有不匹配绑定关系的ARP报文,来防止接入的用户主机进行ARP欺骗和攻击。
这种防攻击手段能够有效防御本文所描述的所有攻击类型(详见1.3)。
业务流程如下图:
图5DHCPSNOOPING模式示意图
2.2.2相关技术
1.ARP入侵检测机制
DynamicARPInspection(DAI)使用DHCPSnooping绑定表,交换机通过对所有的ARP请求数据包来源端口进行IP+MAC匹配检测来确定请求是否合法,如果不合法则丢弃。
对于个别的特殊机器(如服务器、路由器等配置的静态IP)可以采用手动添加ARP访问表来实现。
DAI配置是针对VLAN操作,同一VLAN可以自定义DAI的开启和关闭,而其中某个端口的ARP请求报文数量也可以通过DAI控制。
为了防止ARP中间人攻击,二层半(三层)接入交换机支持对收到的ARP报文判断合法性。
这是如何做到的呢?
二层半(三层)接入交换机可以动态获取(即DHCPsnooping表项)或者静态配置合法用户的IP+MAC对应关系。
并且在收到用户发送的ARP报文时,可以检查报文中的源IP地址及源MAC地址的绑定关系与所获取的合法用户IP+MAC对应关系表项是否匹配来判断该报文是否为合法ARP报文。
通过过滤掉所有非法ARP报文的方式来实现所有ARP欺骗攻击。
如下图:
图6ARP入侵检测功能示意图
2.动态IP地址分配环境的工作机制
DHCPSnooping是博达二层半(三层)交换机上的安全特性之一,其定义了交换机上的信任端口和不信任端口,对于不信任端口的DHCP报文进行截获和嗅探,通过建立和维护DHCPSnooping绑定表,过滤不可信任信息以及来自这些端口的非正常DHCP报文。
当用户为动态IP地址分配环境时。
接入交换机可以通过监控用户的IP地址申请过程,从而自动学习到合法用户的IP+MAC对应关系。
并依据该表项实现对合法ARP报文的确认和非法ARP报文的过滤。
其配置命令如下:
ipdhcp-relaysnooping
ipdhcp-relaysnoopingvlan1,2,3,10,20
interfaceF0/1
dhcpsnoopingtrust
那么这些动态表项是如何形成的呢?
当开启DHCPSnooping功能后,接入交换机采取监听DHCP-REQUEST广播报文和DHCP-ACK广播报文的方法来记录用户获取的IP地址等信息。
目前,博达二层半(三层)接入交换机的DHCPSnooping表项主要记录的信息包括:
分配给客户端的MAC地址、客户端的IP地址、租约信息、客户端获取IP地址的类型、VLAN信息、端口信息,如图8所示:
图8DHCPSnooping表项示意图
为了对已经无用的DHCPSnooping动态表项定期进行老化删除,以节省系统的资源,和减少安全隐患,博达接入交换机支持根据客户端IP地址的租约时间对DHCPSnooping表项进行老化。
3.静态IP地址分配环境的工作机制
对于不能通过动态IP地址获取的部分用户,以及打印机等服务器。
二层半(三层)交换机也支持手工配置合法用户的IP+MAC对应关系,形成静态合法用户的IP+MAC表项,即:
用户的IP地址、MAC地址及连接该用户的端口之间的绑定关系。
静态配置的IP+MAC表项拥有和动态学习的DHCPSnooping表项的同样功能。
接入交换机可以依据配置的静态表项实现对合法ARP报文的确认,和非法ARP报文的过滤。
从而可以很好的解决静态IP地址分配环境下的部署问题。
此工作机制适合网络规模比较小的网络环境。
4.ARP信任端口设置
在实际组网中,交换机的上行口会接收其他设备的请求和应答的ARP报文,这些ARP报文的源IP地址和源MAC地址并没有在DHCPSnooping表项或者静态绑定表中。
为了解决上行端口接收的ARP请求和应答报文能够通过ARP入侵检测问题,交换机支持通过配置ARP信任端口,灵活控制ARP报文检测功能。
对于来自信任端口的所有ARP报文不进行检测,对其它端口的ARP报文通过查看DHCPSnooping表或手工配置的IP静态绑定表进行检测。
其配置命令如下:
ipdhcp-relaysnooping
ipdhcp-relaysnoopingvlan1,2,3,10,20
iparpinspectionvlan1,2,3,10,20
interfaceF0/1
dhcpsnoopingtrust
arpinspectiontrust
5.IPSourceGuard
IPSourceGuard使用DHCPsnooping绑定表信息,配置在交换机端口上,并检测所有经过定义端口的报文。
通过检查流量的IP地址和MAC地址是否在DHCPsnooping绑定表,不在绑定表中则阻塞这些流量。
检测接口上的IP:
ipdhcp-relaysnooping
ipdhcp-relaysnoopingvlan1,2,3,10,20
iparpinspectionvlan1,2,3,10,20
ipverifysourcevlan1,2,3,10,20
interfaceF0/1
dhcpsnoopingtrust
arpinspectiontrust
ip-sourcetrust
6.ARP限速功能
博达二层半(三层)以太网交换机还支持端口ARP报文限速功能,来避免此类攻击对局域网造成的冲击。
开启某个端口的ARP报文限速功能后,交换机在指定时间内对该端口接收的ARP报文数量进行统计,如果在指定时间内收到的ARP报文数量超过设定值,则认为该端口处于超速状态(即受到ARP报文攻击)。
此时,交换机将对攻击源阻塞网络服务,在指定时间内,该攻击源不能进行任何网络服务,使其不再接收任何报文,从而避免大量ARP报文攻击设备。
当阻塞时间过后,再恢复该攻击源的网络服务。
其配置命令如下:
ipdhcp-relaysnooping
ipdhcp-relaysnoopingvlan1,2,3,10,20
iparpinspectionvlan1,2,3,10,20
ipverifysourcevlan1,2,3,10,20
filterperiod10
filterthresholdarp1000
filterblock-time600
filterenable
interfaceF0/1
dhcpsnoopingtrust
arpinspectiontrust
ip-sourcetrust
interfaceF0/2
filterarp
3典型组网部署
3.1DHCPSnooping模式的部署
3.1.1典型组网
图9DHCPSnooping模式网络示意图
3.1.2部署思路
1、在接入交换机上开启DHCPsnooping功能,并配置与DHCP服务器相连的端口为DHCPsnooping信任端口。
2、在接入交换机上为静态IP地址分配模式的主机或者服务器配置对应的IP静态绑定表项。
3、在接入交换机对应VLAN上开启ARP入侵检测功能,并配置该交换机的上行口为ARP信任端口。
4、在接入交换机的直接连接客户端的端口上配置ARP报文限速功能,同时全局配置因ARP报文超速而被阻塞的时间。
4总结
以上给出的ARP攻击防御解决方案,可以很好的缓解和解决校园网的ARP攻击问题。
同时拥有很强的适应性,有利于现有校园网的设备利用问题。
附:
只有交换机2226、2224M、3224、3224M、3424、3448、3524、3512、3948能完全支持dhcpsnooping功能。
交换机2226C和2448B只能snooping,不能针对arp和IP进行限制。
目前root.c中不进行dhcpr_init。
其它交换机不支持dhcpsnooping功能。
------摘自《switch_update_2.0.1K》
新机型2228和3424B也支持dhcpsnooping功能,因为《switch_update_2.0.1K》写的比较早,在此文档中没有对新机型进行说明。