资源描述
基于DAI的ARP欺骗深度防御
摘要:随着各种病毒与木马程序的泛滥,ARP欺骗在以太网校园网中已经成为危害网络正常稳定运行的主要问题。文章在对ARP攻击方式进行深入分析的基础上,阐述了DAI如何预防ARP欺骗的工作原理。以Cisco3750交换机为例设计了基于DAI的防御方案;指出了在配置过程中应注意的事项;分析了目前DAI的局限以及对进一步防御的展望。
关键词:ARP;ARP欺骗;DAI;防御
中图分类号:TP393 文献标识码:A
前言
CERNET应急响应组2007年5月报告ARP欺骗是首要威胁。确实,一些带有ARP 欺骗功能的木马病毒,利用ARP协议的缺陷,像大规模的流行性感冒一样,极大地威胁着以太网用户的安全。在校园网中,随着网络规模的扩大,网络节点的增加,由于ARP欺骗造成的日益频繁的网络时断时续、无法上网,更大范围地影响了广大网民的学习、工作和生活,同时也深深地困扰着网络管理员们。
一、Arp的主要攻击类型
究其ARP攻击的主要类型主要可分为两种:冒充主机欺骗网关和冒充网关欺骗主机。
1.1冒充主机欺骗网关
冒充主机欺骗网关,是一种比较常见的典型攻击类型。如图1 所示 ,如果攻击主机C发出一个ARP包文,其中的源Mac地址为MacC,源Ip地址为Ip A,如图2的①所示,那么网关D收到这个ARP包后会产生如表1的第二行所示的ARP缓存项。即任何发往主机A 的报文都会被发往攻击主机C,网关无法与真实主机A直接通信。
假如攻击主机C不断地利用自己的真实Mac地址和其他主机的Ip地址作为源地址发送ARP包,则网关会产生如表1所示的ARP表,即网关无法与网段内的任何主机(攻击主机C除外)直接通信。然而,这种情况下交换机是不会产生任何报警日志的,原因在于,多个Ip地址对应一个Mac地址在交换机看来是正常的,不会影响其通过Ip所对应的Mac来交付报文。
表1交换机网关受到C冒充其他主机攻击时的arp表
Address
Hardware Addr
Interface
IpA
MacC
Vlan201
IpB
MacC
Vlan201
IpC
MacC
Vlan201
IpD
MacD
Vlan201
网关D
IpD, MacD
主机A
IpA, MacA
主机B
IpB, MacB
攻击主机C
IpC, MacC
Fa 1/1
图1 ARP攻击网络拓扑图
表2主机A受到C冒充网关攻击时的arp 缓存表
Internet Address
Physical Address
Type
IpB
MacB
dynamic
IpC
MacC
dynamic
IpD
MacC
dynamic
但是如果攻击主机不断利用任意不同的Mac地址作为源Mac地址;某一Ip地址,比如IpA,为源Ip地址,那么交换机则会产生关于IpA地址冲突的报警日志。如果此种攻击过于频繁,多台攻击主机在实施攻击,会导致交换机的CPU使用率过高。严重的可能导致交换机瘫痪,其他正常的服务也无法提供,即遭受拒绝服务攻击。
1.2冒充网关欺骗主机
冒充网关欺骗主机也是一种常用的攻击方式。攻击主机C向主机A发出一个ARP回应包文,其中的源Mac地址为MacC,源Ip地址为Ip D,如图2的②所示。那么主机A生成的ARP缓存表如表2第三行所示。主机A发往网关D的报文都会被发往攻击主机C,造成主机A突然断网。如果攻击主机C向网关D转发了来自主机A的报文,那么主机A能够通过攻击主机C继续上网。当然上网的质量完全取决于攻击主机C,时断时续也是一种正常的表现了。
MacA
MacB
MacC
MacD
Ip A
Ip B
Ip C
Ip D
源Mac
源Ip
①
①
②
②
任意Mac
ARP报文
图2 ARP攻击时ARP报文的源Mac和源Ip地址
显然要实现上述的转发效果,即所谓的中间人攻击(Man In the Middle),攻击主机C需要同时欺骗网关D和主机A,主机C在其中的作用相当于一个中间人。攻击主机通过ARP攻击同时欺骗了多台主机,某一主机发往目标主机的信息被攻击主机截获,并转发到目标主机;目标主机发送给源主机的信息也被攻击主机截获,并转发到源主机。
攻击主机C的假冒arp报文,无论是发给网关D,或者主机A,两者都被照单全收,立即更新各自的arp缓存,为攻击主机开启方便之门。因此,之所以ARP攻击能够得逞,主要的原因在于没有对ARP报文信息的真实性进行检验。
二、DAI的原理
由上述的分析可知如何部署对ARP报文的有效性检验是预防ARP攻击的根本。如何确定哪些ARP报文是合法的呢?众所周知,在由DHCP服务器构成的动态分配主机Ip的环境中,主机申请Ip时的Mac地址和Ip地址是一一配对的,也是唯一的,上述的攻击主机C也不能例外,因此不可能利用同一个Mac地址申请到多个Ip地址,更不可能申请到网关地址。
Cisco开发的动态ARP报文检测(Dynamic Arp Inspection),就是利用DHCP服务记录的申请者的Mac地址,Ip地址以及相应的交换机端口号,提供了一种比较完善的解决方案,其主要的工作流程如图3所示:
交换机端口收到ARP报文时,会提取该报文中的源Mac地址与 Ip地址对,将其与DHCP snooping binding表中的相关地址进行比较,如果一致的话就允许该报文通过,如果不一致的话则认为该报文非法,禁止该报文通过,并生成报警日志。对于收到非法ARP报文的端口可以设置其端口的状态为进入错误(Err-disable)状态,关闭该端口流量。
以图1中的攻击主机C为例,当其通过DHCP服务申请到Ip地址的时候,在交换机内部会生成一个关于: MacC,Ip C和交换机端口Fa 1/1的映射记录,并将之保存在DHCP snooping binding表中。
若主机C用正常状态下的MacC,Ip C作为源地址发送ARP报文,则当报文进入交换机端口时,由于其ARP报文中的源地址“MacC,Ip C”与Dhcp Snooping Binding表中的“MacC,Ip C,Fa 1/1”相一致,因此交换机端口会接受该ARP报文。相反,若攻击主机C发起冒充主机欺骗网关的攻击,利用“MacC,Ip A”作为arp报文的源地址,那么与Dhcp Snooping Binding表中“MacC,Ip C,Fa 1/1”这一映射不一致,交换机会丢弃该报文,并可能将该端口Fa 1/1置于错误状态,使其不能正常收发数据。同理当主机C冒充网关欺骗主机时,也会因为 ARP报文源“MacC,Ip D”与“MacC,Ip C,Fa 1/1”的映射不一致,导致攻击失败。
显然如果给攻击主机C手工配置静态Ip地址,那么会导致基于源地址“MacC,Ip C” 的正常ARP通信都无法进行。因为其没有通过DHCP申请Ip地址,Dhcp Snooping Binding表中自然没有与其相关的任何记录,也就不能通过DAI的检验了。除非网络管理人员将主机C的Mac,Ip 地址与“Fa 1/1”的映射手工加入DHCP snooping binding表中。
图3 DAI 工作流程图
端口进入可自动恢复的
err-disable状态
交换机端口动作
交换机端口不动作
允许arp报文通过
禁止该arp报文通过,生成报警日志
否
是
结果一致
与Dhcp Snooping Binding表中的相关地址进行比较
提取arp报文中的源mac,源Ip地址
发送arp报文
端口进入不可自动恢复
err-disable状态
当然,对于一些需要配置静态Ip地址的服务器来说,手工添加“DHCP Snooping Binding”表的绑定记录是必须的;或者添加ARPAcl(ARP访问控制列表);或者将相应的交换机端口置于不检验ARP报文的状态,即DAI的信任端口。三者的区别在于:前者使“DHCP snooping binding”表增加一条记录;ARPAcl优先于DAI检测,允许相应的拥有合法源mac和ip地址的arp报文通过;后者则允许该端口所有的ARP报文通过,无论是否合法。
三、DAI的配置及其注意事项
如 图4所示,交换机B为Cisco 3750;交换机B连接DHCP服务器数据来源的端口为“GigabitEthernet1/1”;连接FTP服务器的端口为“GigabitEthernet1/2”,FTP服务器的硬件地址为“MacF:0000.00ff.ffff”,Ip地址为静态的“IpF:10.1.1.10”。三台主机和FTP服务器均属于Vlan105,Vlan105的网关接口置于交换机B内。
DHCP Server
交换机A
交换机B
FTP Server
MacF,IpF
图4 DAI配置网络拓扑图
GigabitEthernet1/2
GigabitEthernet1/1
以下为在交换机B中配置DAI:
jiaohuanjiB(config)#ip dhcp snooping
!打开dhcp snooping功能, 配合接口模式下的“ip dhcp snooping trust”命令,一方面可阻止非法dhcp服务器发送dhcp数据,另一方面可为DAI提供“DHCP snooping binding”表
jiaohuanjiB (config)#ip dhcp snooping vlan 105
!定义dhcp snooping作用的vlan 105
jiaohuanjiB (config)#ip dhcp snooping database flash:/dhcp.db
!将“DHCP snooping binding”表保存在flash:/dhcp.db中,避免设备重启后,DAI用户无法发送数据,导致断网
jiaohuanjiB (config)#ip arp inspection vlan 105
!定义arp inspection 作用的vlan 105
jiaohuanjiB (config)#interface gi 1/1
!进入接口gi 1/1的配置模式
jiaohuanjiB (config-if)# ip dhcp snooping trust
!定义信任来自gi 1/1端口的DHCP报文,因为该端口连接的是DHCP服务器
jiaohuanjiB (config-if)# ip arp inspection trust
!定义信任来自gi 1/1端口的ARP报文,因为该端口是上行接口
jiaohuanjiB (config)#ip dhcp snooping binding 0000.00ff.ffff vlan 105 10.1.1.10 interface GigabitEthernet1/2 expiry 4294967295
!为FTP服务器添加静态的“DHCP snooping binding”记录,expiry 4294967295表示该记录永不过期
jiaohuanjiB (config)#errdisable detect cause arp-inspection
!如果某一端口检测到非法的ARP报文,则使端口进入错误状态
jiaohuanjiB (config)#errdisable recovery cause arp-inspection
!使能错误状态的端口自动恢复正常
jiaohuanjiB (config)#errdisable recovery interval 300
!定义从错误状态恢复正常状态的时间为300秒
jiaohuanjiB (config)#no errdisable detect cause arp-inspection
!定义检测到非法ARP报文时端口不动作,此命令与上述三条命令相对
jiaohuanjiB (config)#inter vlan105
!进入接口vlan105的配置模式
jiaohuanjiB (config-if) #ip dhcp relay information trusted
!换机启用DHCP SNOOPING后,会在DHCP数据包中插入option 82的选项(参考RFC3046),如不进行如上配置,一旦dhcp中继服务设备检测到boot request数据包,就会丢弃,使网段内主机无法获得Ip地址
由上可见,在DAI的初始配置过程中还是需要一定的管理成本,尤其是在对现有的网络进行改造,对可用性要求较高的网络环境中,如果没有充分的准备很可能导致某些设备无法正常使用。
在配置DAI前,应该清楚地知道网络的拓扑结构,比如哪些端口是上行口;哪个端口与DHCP服务器相连,哪些端口的服务器或主机需要配置静态的IP地址,提前获得该服务器或主机相应的Mac地址、Ip地址、交换机端口的具体数值。
应将上行口配置为Dhcp Dnooping、DAI的信任口,相应的对端下行口可以配置成检测口。将需要静态Ip设备的Mac地址、Ip地址、交换机端口的映射记录添加到“DHCP Snooping Binding”表中,以免发生不必要的服务中断。
必须采取恰当的措施动态地保存“DHCP Snooping Binding”表,如果利用远程TFTP服务器保存该表的话,应保证该服务器的随时可用,以免设备重启后,DAI用户无法发送数据,导致断网。
在实际配置过程中还应防止中途断网,以上述配置为例:假如网络管理人员通过Vlan105网段的主机远程登入交换机操作,那么在键入“jiaohuanjiB (config)#ip arp inspection vlan 105”命令时,很可能使自己断开了与交换机的连接。因为在敲入该命令后,交换机默认对所有Vlan105的端口都进行DAI检测,由于在“DHCP Snooping Binding”表中尚未有相应的记录,登入主机的正常ARP报文也被拒绝了。因此,最好用专门的网管机,或者其他网段的主机来实施配置。至少得先更新动态获得的IP地址,使其在“DHCP Snooping Binding”表中创建所需的记录。
四、结语
DAI部署有效地弥补了ARP协议的缺陷,在实际中使用效果良好。配置完成后,一般无需额外的管理维护。当然,DAI需要网络设备软、硬件的支持,现有的网络环境往往无法在接入层交换机满足该需求。
即使如此,如果在汇聚层交换机实施DAI配置则完全能够防止“冒充主机欺骗网关”这一攻击方式,倘若在接入层交换机进行适当配置使所有ARP报文都须经过三层交换机则可杜绝“冒充网关欺骗主机”。更进一步说,如果能将“DHCP Snooping Binding”表中的相关记录导入用户机,那么ARP病毒再无用武之地了。
A Deeper Guard for ARP Attack based on DAI
Abstract: With the malicious spread of various virus and Trojan, ARP attack has become one of the main reasons for Ethernet net. Through detailed analysis on ARP attack modes, this article display the working principle of DAI(Dynamic ARP Inspection). It said how to design the guard plan with the switch of Cisco 3750 based on DAI. Farthermore, the article pointed out the attention should be payed when conforming the plan. Finally, it also showed the limitation in the real situation, and the future of the deeper guard.
Key words: ARP; ARP attack; DAI; guard
5
展开阅读全文