您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页针对校园网中ARP攻击的防御

针对校园网中ARP攻击的防御

来源:爱go旅游网
第29卷第5期2007年9月

南 京 工 业 大 学 学 报

JOURNALOFNANJINGUNIVERSITYOFTECHNOLOGYVol.29No.5

Sep.2007

针对校园网中ARP攻击的防御

崔北亮,杨小健

1

2

(1.南京工业大学信息中心,江苏南京210009;2.南京工业大学信息科学与工程学院,江苏南京210009)

摘 要:通过分析ARP攻击的原理,提出在网络设备配置具备的情况下,结合动态主机分配协议(DHCP),在交换机上部署动态ARP检察(DAI)技术,使非法的ARP数据包无法进入网络;在网络设备配置不具备的情况下,通过编程,借助于计算机实现对ARP数据包的监控、对ARP攻击的预警、ARP攻击后的自动恢复,并对ARP攻击者实施隔离,进而保护内部网络.

关键词:ARP协议;DHCP协议;网络安全;DAI;PVLAN3中图分类号:TP393.08   文献标识码:A   文章编号:1671-7627(2007)05-0078-04

OnprotectionagainstARPattackwithincampusnetwork

CUIBei2liang,YANGXiao2jian

1

2

(1.InformationCenter,NanjingUniversityofTechnology,Nanjing210009,China;

2.CollegeofInformationScienceandEngineering,NanjingUniversityofTechnology,Nanjing210009,China)

Abstract:HavinganalyzedtheprinciplesofARPattack,thethesisintroduces:whenthenetworkequipmentsarea2vailable,DAItechnologyisemployedintherouterwithDHCPtopreventillegalARPdatapackagefromenteringintothenetwork;andwhennetworkequipmentsarenotavailable,tomonitortheARPdatapackage,towarna2gainstARPattackinadvanceandtheautomaticrecoveryfromARPattackwillberealizedbycomputerthroughpro2grammingandtheARPattackerwillbeisolatedtoprotecttheinnernetwork.Keywords:ARPprotocol;DHCPprotocol;networksecurity;DAI;PVLAN

  网络现已成为人们工作、生活中的一部分.网络在带给人们巨大便利的同时,也存在安全的隐患问题.如果不能很好地管理网络,安全问题势必影响正常的工作,甚至带来灾难性的后果,尤其当前病毒层出不穷、黑客无处不在,安全问题成为当今网络技术的一个重要研究课题.广域网的安全由价格昂贵的硬件设备支撑,经验丰富的技术人员维护;然而局域网的硬件设备普遍落伍,最终用户的网络安全技术匮乏,加之IPV4本身设计上的缺陷,解决局域网的安全问题显得尤为困难.本文针对当前局域网中最普及、危害最深的地址解析协议(AddressResolutionProtocol,ARP)攻击进行分析,并提出切实可行的防御方案.

1 ARP协议及欺骗原理

1.1 以太网和ARP的工作原理

[1]

以太网中,数据包被发送出去之前,首先要进行拆分、封装,变成二进制的比特流.以太网中数据的传输仅知道目标的IP地址是不够的,还需要知道下一跳的MAC地址,这需要借助于另外一个协议ARP.

ARP查询包以广播形式发送到网络上,局域网

中所有的计算机均收到此包,只有本机IP地址为“目的IP”的计算机对此包进行响应,并回复此包.当始“发送端”收到此ARP应答包后,即获取到目标IP对应的MAC地址,然后就可进行数据包的封装了.

3收稿日期:2007202224

作者简介:崔北亮(1975—),男,安徽蚌埠人,讲师,主要研究方向为计算机网络构建及安全,E2mail:cbl@njut.edu.cn.

 第5期崔北亮等:针对校园网中ARP攻击的防御79

1.2 ARP欺骗DAI(DynamicARPInspection,动态ARP检查)的技

了解ARP的工作原理后,只要有意图地填充某些字段,即可达到ARP攻击的效果:IP地址冲突、

[2-3]

ARP欺骗、ARP攻击等.

2 传统解决ARP欺骗办法的局限性

2.1 IP与MAC的静态绑定

[4]

术,判断进入的ARP包的合法性,DAI技术本质上

采用的还是IP与MAC进行绑定,只是这个绑定是结合DHCPServer数据库自动完成的,不需要手工添加,而以往采用的IP与MAC静态绑定,需要手工静态添加,可扩展性不强.

为了阻止ARP欺骗,交换机必须确保只转发合法的ARP查询和应答包.DAI中途截获所有的ARP应答包,并与DHCPServerSnooping数据库进行MAC与IP地址绑定的验证,合法的ARP包被转发和保存到ARP高速缓存,来自非法设备的ARP应答包被丢弃并记录日志.此外对于静态配

IP与MAC的静态绑定是最直观、最好理解的解决ARP欺骗办法.但此方法的缺陷也很明显,在高校这种

经常变化的网络环境中,手工维护MAC表的方式工作量巨大,不切合实际,而且它也要求网络硬件(主机、路由器或路由交换机)支持这种配置方式.2.2 虚拟私有局域网(PVLAN)技术因ARP攻击是针对同一网段的主机系统,可以通过子网掩码把VLAN划分得足够小,例如每个VLAN仅容纳2台主机,1个IP分给PC,另1个IP用来作网关,这样完全杜绝了ARP攻击的可能.但缺陷是造成了IP地址的极大浪费和管理的难度,此方法在实际操作中不可行.另1种改进的技术称PVLAN(有关PVLAN的配置文档,请参考各交换机厂商的配置文档),是1种新的VLAN机制,所有主机在同1个子网中,但各主机只能与自己的默认网关通信.这一新的VLAN特性就是私有VLAN(Pri2vateVLAN),PVLAN功能可以保证同一个VLAN中的各个端口相互之间不能通信,这样即使同一VLAN中的用户,相互之间也不会受到广播的影响.采用PVLAN技术,在1个局域网内的所有计算机之间都不能直接通信,只能同默认网关进行通信,即使在实施PVLAN技术的局域网内使用基于ARP协议的软件进行扫描,扫描者也仅仅只能看到默认网关.此方法虽然杜绝了主机之间ARP欺骗的可能,但不能防止某台主机用其他主机的IP地址和错误的MAC来欺骗网关,还有就是一般交换机上不支持PVLAN技术,此种解决办法也不具有普遍性.

置的IP地址,数据包将因DAI检查失败而被丢弃,但可以根据用户定义的访问控制列表(ARPACL)进行检查,避免被丢弃.DAI对所有从“Trus2ted”接口收到的ARP包不进行任何检查,直接转发;截获所有从“Untrusted”接口收到的包并进行检查.为了提高效率,把所有连接PC的接口配置成“Untrusted”,所有连接交换机或上行链路的接口配置成“Trusted”.

配置DAI分为以下2个步骤.步骤1 配置DHCPServer保护,让非法DHCPServer无法工作,具体做法就是:配置DHCP的Snooping,并把端口分为信任和非信任端口,处于非信任的端口不转发收到的DHCP的应答包,信任的端口转发收到的DHCP应答包.通过配置端口的状态,使连接普通PC的端口无法接收DHCPServer的应答包,即使非法用户把自己的PC配置成DHCPServer,也无法对外提供服务.这里以Cisco(思科,全球最大的路由器和交换机生产厂商)交换机为例,其他厂商交换机的配置请查阅厂家配置文档,Cisco交换机配置的相关命令如下:

Switch(config)#ipdhcpsnooping 启用DHCP的探测

Switch(config)#ipdhcpsnoopinginformationop2tion 在DHCP的请求包中包括最初的起源端口

Switch(config2if)#ipdhcpsnoopingtrust 配置连接其他交换机和合法DHCP服务器的端口为信任端口,默认情况下,所有的交换机端口都是非信任端口

Switch(config2if)#ipdhcpsnoopinglimitrate rate非信任端口发送DHCP包的速率,防DHCP

3 解决ARP欺骗的办法

3.1 交换机配置满足情况下的解决办法

对于ARP欺骗最好的解决办法是在ARP欺骗数据包进入交换机时,马上进行合法性检查,确认包的合法性,交换机把非法的ARP数据包直接丢弃,不再转发.这样非法的ARP攻击数据包不仅不会带来安全隐患,而且也不会因大量的非法流量而影响正常的业务流,网络更安全高效.交换机可以采用

请求包攻击

80南 京 工 业 大 学 学 报 第29卷 

Switch(config)#ipdhcpsnoopingvlannumber [number]在某些VLAN上启用DHCP的探测Cisco新出厂的交换机都支持DHCPSnooping,

有些老款的交换机可以通过升级IOS(交换机的操

作系统)来支持该功能.

步骤2 配置DAI,具体做法是:

Switch(config)#iparpinspectionvlanvlan_id[,vlan_id] 配置在哪些VLAN上启用DAI

Switch(config2if)#iparpinspectiontrust 配置DAI的信任端口,默认所有端口都是非信任端口

Switch(config2if)#iparpinspectionlimitrate rate非信任端口发送ARP包的速率,阻止ARP包攻击

Switch(config)#iparpinspectionvalidate{[src2mac][dst2mac][ip]} 配置ARP检测的依据,检查ARP包中的“以太网头部地址”和“ARP请求或应答包”中的以太网地址是否一致,不一致的包将被丢弃;IP选项则是检查“ARP请求或应答包”中的IP地址是否符合要求.

经过上述配置后,非法的ARP包将被交换机拒收.这种防御ARP攻击的方式最理想.但Cisco支持DAI的交换机至少要3层以上(包括3层),很多单位的接入层交换机都是2层交换机,甚至是不可网管的2层交换机或集线器.针对这种网络拓扑,可以使用下面的方法,辅助解决ARP攻击.3.2 交换机配置不满足情况下的解决办法  若1个单位的接入层设备都是集线器或2层交换机,DAI根本无法实施,可以通过编程,借助计算机来实现对ARP数据包的监控、对ARP攻击的预警、ARP攻击后的自动恢复,并对ARP攻击者实施隔离,进而保护内部网络,只是难度相对较大,效果不如DAI理想.具体做法如下.3.2.1 开启ARP数据包监控

Winpcap(windowspacketcapture)是Windows平台下1个免费的公共网络访问系统.借助于Winpcap可以为Win32应用程序提供访问网络底层的能力.通过C++编写程序代码,捕获本机接收到的所有原始数据报,包括在共享网络上各主机发送/接收的以及相互之间交换的数据报,并过滤出以太网类型是“0x0806”的ARP数据包,依次取出各个字段,打印在屏幕上,这样可以监测局域中ARP包的数量,以及各个IP地址发送ARP包的情况,从中不难发现潜在的ARP攻击源.程序设计的思想如图1所示.

图1 ARP攻击检测及防御流程

Fig.1 FlowchartofARPattackdetectingandpreventing

3.2.2 对ARP攻击的预警

通过大量观察发现,几乎每一款ARP攻击软件在发动攻击之前,首先都要通过发送ARP查询包,遍历同一网段的所有可用IP,以探测局域网中在线的主机,然后才能有的放矢地对之实施攻击.针对这种攻击特点,定义一个一维数组如下:typedefstructipmac{unsignedcharmac[6];ULONG ip;intarpnum;}IPMAC;

IPMACipmacbiao[1000];

/3MAC地址3//3ip地址3/

/3统计发送ARPre2

quest包的数量3/

  为了及时反映出局域网主机的在线情况,周期性的初始化一维数组,把本网段的所有可用IP地址,按顺序填充“ipmacbiao”数组的“ip”字段,把“arpnum”字段清零,把“mac[]”字段清空.使用本机的IP和MAC地址构造出ARP查询包,目的IP地

 第5期崔北亮等:针对校园网中ARP攻击的防御81

址是本网段的所有IP,并把这样的ARP包从网络上发出去,发送数据包的同时接收所有发往本机的ARP应答包,并根据发送者的IP地址,更新“ip2macbiao”数组的“mac[]”字段,这里保存的是本地所有IP地址及它们的真实MAC地址,此操作是为了保存真实信息,以备在遭受到ARP攻击后能进行自动恢复.本机所有的ARP查询包发送完毕后,开始接收网络上所有的ARP查询包,并根据发送者IP地址修改“arpnum”字段,如果“arpnum”字段数值超过一定的阀值,即可认为该机存在攻击的可能性,因在一个正常的网络环境中,不应该出现一台主机在极短的时间内需要遍历整个局域网的情况.在屏幕上打印出报警信息,提醒管理员加以注意.3.2.3 ARP攻击后的自动恢复收集网络上所有的ARP应答包,根据ARP应答包中的源IP地址,查询“ipmacbiao”数组,并把“ipmacbi2ao”数组中的MAC地址与收到的ARP应答包中的源MAC地址进行比较,如果二者不同,即可认为该IP正

名;10.0.248.1为本网段起始IP地址,10.0.248.2为本网段结束IP地址;2000是选择开关,第一位如果是

“1”表示对攻击者进行反向攻击,第二位如果是“1”表示输出所有收到的ARPreply包,第三位如果是“1”表示输出所有收到的ARPrequest包;300是检测周期,单位是s.从执行结果可以看出“10.0.248.220”发送大量的ARP查询包,存在攻击可能;“10.0.248.112”与MAC的对应与保存在数组中的数据不一致,极可能正在遭受攻击;当检测到攻击存在,程序会用数组中保存的正确数据重发ARP应答包,减小攻击的影响.3.2.4 对ARP攻击者实施隔离根据前面介绍的ARP攻击原理,网管机用攻击者的IP和错误的MAC构造出ARP的应答包,依次发给局域网中的对应主机,同时模拟局域网中的每台主机给攻击者发送ARP应答包,只是源MAC不是真实主机的MAC,这样就使攻击者自动断开了与局域网所有主机的连接,使攻击者无法对局域网进行攻击.此种方法有一定的局限性,因有的ARP攻击软件也是周期性的发送ARP查询包,刷新自己的ARP缓存,用这种以毒攻毒的方法往往会使更多的计算机受到牵连,因ARP包是广播发送,会占用大量的带宽,也会占用局域网PC的处理器时间,根治的方法还是用“3.2.3”中提到的“查询MAC来源端口”找出源头,彻底根除ARP攻击.

在遭受ARP攻击,屏幕打印出报警信息,提醒管理员注意保护网络安全.并从“ipmacbiao”数组中取出保存的MAC地址,构造出ARP应答包,然后在网络上发送,使受害主机恢复正常.管理员也可以在网管型交换机上查询欺骗MAC的来源端口,缩小排查的范围.程序执行效果如图2所示,其中c2arp是编译后的可执行程序

图2 ARP攻击检测程序

Fig.2 ARPattackdetectingprogram

4 结束语

随着计算机网络的不断发展,网络安全已成为亟待解决的问题.对网络攻击的检测与防范,保障计算机网络系统及整个信息基础设施的安全已成为刻不容缓的重要课题.本文提出的解决ARP攻击的方法实用且高效,有很强的可操作性,可供高校、企事业单位借鉴.

参考文献:

[1] 周华,赵海燕,袁刚.运用ARP欺骗进行网络安全管理[J].

网络安全技术与应用,2005(3):44-45.

[2] 李海鹰.针对ARP攻击的网络防御模式设计与实现[J].计

算机工程,2005(5):170-171.

[3] 郭浩,郭涛.一种基于ARP欺骗的中间人攻击方法及防范

[J].信息安全与通信保密,2005(10):66-68.

[4] 马军,王岩.ARP协议攻击及其解决方案[J].微计算机信息,

2006(22):70-71.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务