浅谈校园网内ARP欺骗攻击的防范
2011-10-20严江涟
严江涟
(湖南省娄底市卫生学校 计算机中心,湖南 娄底 417000)
浅谈校园网内ARP欺骗攻击的防范
严江涟
(湖南省娄底市卫生学校 计算机中心,湖南 娄底 417000)
随着计算机技术、计算机网络的迅猛发展和日益普及,越来越多的部门、单位、校园组建了自己的局域网,但随之而来的局域网内病毒的爆发对网络的正常使用和数据安全造成了严重威胁,特别是局域网内的ARP欺骗攻击对网络的正常运行造成很大的威胁。本文介绍了校园网内ARP欺骗攻击的一些防范方式,希望对类似防范工作有一定借鉴。
ARP;病毒攻击;IP地址;MAC地址
随着计算机技术、计算机网络的迅猛发展和日益普及,越来越多的部门、单位、校园组建了自己的局域网进行信息的收集发布,办公的效率得到很大提高。但随之而来的是局域网内病毒的爆发对网络的正常使用和数据安全造成了严重威胁,特别是局域网内的ARP欺骗攻击对网络的正常运行造成的威胁最大。
近段时间,我校的校园网内主机频繁出现网络时断时续等现象,有时整个VLAN内网络主机都无法上网,后来甚至发展为病毒开始攻击网络内的主交换机,瘫痪交换机的路由功能,蔓延到其他网段,导致整个网络全部瘫痪,引起这种现象的主要原因就是局域网VLAN内某些主机感染了计算机病毒、木马,在网段内开始发送ARP欺骗,使得VLAN内部存在ARP欺骗攻击而影响到交换机的正常工作最终导致整个网络瘫痪。
一、A R P协议的作用
ARP(Address Resolution Protocol)是地址解析协议的英文缩写,ARP协议是一个在OSI七层模型中的第二层链路层工作协议,在本层和硬件接口间进行联系并为上层网络层提供服务,在网络中一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址,ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,使得IP地址与MAC地址之间建立对应关系,从而保证主机与主机之间通信的顺利进行。
我们通过下面的例子就能够很清楚地了解ARP的工作机制,假设某网络内有五个IP地址的主机或者网络设备,其中主机A,B处于同一网段中,网关D是A,B主机的网关,主机C是另一个网段,网关E是主机C的网关,具体如表所示。
表 地址示例
假如同网段内的主机A要与主机B通信,它首先会检查自己的ARP缓存表中是否保存有192.168.0.2这个地址对应的MAC地址,如果没有,主机A就会向局域网的广播地址发送ARP请求,意思就是192.168.0.2是哪台主机?MAC地址是什么?请告诉主机A。这个请求会广播给局域网同一网段内的所有主机,但是只有IP地址为192.168.0.2的主机B才会响应这个请求,它会回应主机A一个ARP响应,这样主机A就得到了主机B的MAC地址,并把这个对应关系保存在自己的ARP缓存中,之后主机A与主机B就可以开始通信,直到通信结束后这个对应关系才会删除。假如是主机A要与不同网段的主机C之间进行通信,因为不处于同一网段,主机A会检查自己的ARP缓存表里是否有网关D对应的MAC地址,如果没有就会通过ARP请求获得,获得后与网关D通信,然后由网关D通过路由将数据包送到网关E,网关E收到数据包后发现是送给192.168.1.3的主机C的,它就会检查自己的ARP缓存表,查看是否有192.168.1.3对应的MAC地址,如果没有就通过广播ARP请求获得,然后通过MAC地址与主机C通信,从而建立主机A和不同网段的主机C之间的通信。
二、A R P欺骗的机制
正常情况下ARP缓存表里保存了正确的IP地址和对应的MAC地址,保证了数据传输的一对一性,但是ARP协议中有一个漏洞,无论主机A是否发送ARP请求或是已收到ARP回应,当再有ARP回应发送过来时,主机A都会记下这个ARP回应信息,并更新自己的ARP缓存,交换机也是一样,只要是有主机发送ARP请求,它就会记下这个信息,并更新自己的ARP缓存,而不管这个ARP请求是对是错,这就是ARP协议不完善的地方。
这样网络中ARP欺骗就有了以下两种基本的方法:
第一种情况,主机B向主机A发送ARP回应欺骗主机A说,我是网关D,我的IP地址是192.168.0.254,MAC地址是DD-DD-DD-DD-DD-DD,于是主机A更新了自己的ARP缓存表,将主机B的MAC地址错误地认为是网关D的MAC地址,当主机A需要和主机C通信时,本来应该正确发送到网关D的数据包就会错误地发送到主机B。
第二种情况,主机B发送ARP请求,欺骗网关D说,我是主机A,IP为192.168.0.1,MAC地址是BB-BB-BBBB-BB-BB,于是交换机错误地更新了自己的ARP缓存,将主机B的MAC地址错误地认为是主机A的MAC地址,那么当外部网络一个发给主机A的数据包到达网关D时,因为网关D的ARP缓存表内主机A的IP地址192.168.0.1对应的是主机B的MAC地址BB-BB-BBBB-BB-BB,于是就把这个数据包发给了主机B,而不是主机A。
通过这两种欺骗方法,就实现了在全交换环境下的数据监听,大部分的木马或者病毒使用ARP欺骗正是为了达到窃取数据的目的。同时,感染了ARP病毒的主机B代替了网关的功能,本来应该由网关转发的数据包现在由主机B来转发,而被欺骗的其他主机接收不到本来该由它接收的数据,从而就造成了用户上网速度变慢,甚至频繁断网,另外因为主机的ARP缓存在通信结束后会自动删除,为了继续达到欺骗的目的,欺骗者需要不停地发送大量的ARP请求和回应来达到目的,造成网络中ARP包泛滥而最终堵塞整个网络。一台感染了ARP病毒的主机利用ARP欺骗实现了监听并修改正常用户发送或接收的数据,就可以盗取用户的网络游戏、电子银行等的账号和密码,并截取和篡改网络上访问网页的数据包,添加包含病毒、木马程序的网页链接,加快病毒的传播,而当网络中多台主机感染了ARP病毒时,整个网络会很快瘫痪。
三、防范A R P欺骗的方法
1.在主机上使用ARP命令绑定网关的真实MAC地址
以主机A为例:
Arp-d;先清除错误的ARP表
Arp-s 192.168.0.254dddd-dddd-dddd
为主机A指定它所在网段的网关IP与MAC地址
2.在交换机上配置ACL系统视图,通过设定规则,进行ARP包过滤,禁止所有冒充网关的ARP报文
我校的三层交换机采用的是华为S3300系列,以S3300为例,在该段的网关D上配置ACL来进行ARP报文过滤。
假设主机B感染了病毒,在其所在VLAN接口Ethernet0/0/21上配置流过滤动作,禁止源IP为192.168.0.2的主机B报文通过,其他报文允许通过。
针对第二种欺骗方法,笔者采取以下防范办法:
(1)在交换机上做端口与MAC地址的静态绑定
则IP为192.168.0.1并且MAC地址为aaaa-aaaaaaaa的主机A的ARP报文可以通过其所在VLAN的21端口通过,仿冒的ARP报文则无法通过,从而不会出现错误的ARP表项。
(2)在交换机上做IP地址与MAC地址的静态绑定
这样就将主机A的IP地址、MAC地址信息保存在交换机上,主机B发送ARP欺骗信息冒充主机A时,交换机就不再接受了。
如果你的局域网内主机IP地址是由DHCP服务器动态分配,那可以采用打开dhcp snooping arp security enable的安全功能来监控和防范ARP欺骗病毒。
执行arp-suppress enable命令后,交换机将对VLANIF接口进行ARP抑制。交换机收到某IP地址的ARP表项之后,如果1秒内还收到多次以该IP为源IP地址的ARP报文,就只做应答,而不更新ARP表项。
经过以上配置,交换机上连接普通主机的端口在发送ARP报文时受到交换机检测,报文中IP与MAC地址对必须与DHCP Snooping检测并记录的主机当时动态申请的IP地址相符,这样中毒主机就无法发送虚假的ARP报文了,同时交换机还会对端口发送的ARP报文数量进行限制,防止大量虚假ARP报文造成网络的堵塞。
这些配置都是在交换机上进行,需要硬件支持才能完成,另外因为在主机上运行ARP命令直接绑定网关IP及其MAC地址的方法因为计算机重启会失效,所以我们也可以利用一些软件为网络内所有主机直接绑定网关IP及其MAC地址,例如“彩影”,在其内手动设置好网关IP及对应MAC地址,那就算这台主机感染了病毒也无法达成假冒网关欺骗的目的,同时“彩影”也会自动拦截网络内的ARP欺骗并对企图修改主机ARP表的行为进行报警。尽可能地在主机上对ARP欺骗进行抑制,避免冲击交换机,影响整个网络。
通过这些技术手段,我们可以利用设备对ARP攻击进行很好的防范,但是不管怎样进行技术上的操作,防止ARP病毒最根本的途径还是提高用户自身的安全意识,养成良好的使用习惯,安装必要的杀毒软件和防火墙,不使用不安全、不受信任的软件等。
(编辑:杨馥红)
TP393.08
B
1673-8454(2011)07-0048-03