现在很多学校的校园网经常出现掉线、IP冲突、大面积断网等状况,这些问题的根源都是ARP欺骗攻击的结果。在没有ARP欺骗之前,数据流向是:网关<—>本机;ARP欺骗之后,数据流向是:网关<—>攻击者(“网管”)<—>本机,本机与网关之间的所有通讯数据都将流经攻击者(“网管”),“任人宰割”就难免了。
ARP防火墙通过在系统内核层拦截虚假ARP数据包以及主动通告网关本机正确的MAC地址,可以保障数据流向正确,不经过第三者,从而保证通讯数据安全、网络畅通、通讯数据不受第三者控制,从而完美地解决问题。
使用ARP防火墙查杀ARP病毒的使用方法为:ARP拦截到本机外对的ARP攻击时,点击进入显示详细数据的页面, PID即发送攻击数据的进程ID号,双击此数据即可查看进程的详细信息。或者选中数据后右击,选择“查看进程详细信息”选项。
防御措施
ARP协议的安全漏洞来源于协议自身设计上的不足, ARP协议被设计成一种可信任协议,缺乏合法性验证手段。从网络管理的角度上分析,主要的防御方法有:
1.不要把你的网络安全信任关系建立在IP基础上或MAC基础上,理想的关系应该建立在IP+MAC基础上。主机的IP→MAC地址对应表手工维护,输入之后不再动态更新,显然可以避免ARP攻击,大多数三层交换机都支持这种方法。
2.设置静态ARP缓存。采用静态缓存,主机在与其他计算机通信时,只要在自己的静态缓存中根据对方IP地址找到相应的MAC地址,然后直接发送给对方。攻击者若向主机发送ARP应答,目标主机也不会刷新ARP缓存,从而避免了ARP欺骗的发生。
3.关闭ARP动态更新功能。除非很有必要,否则停止使用ARP,将ARP作为永久条目保存在对应表中。
4.使用ARP服务器。即指定局域网内部的一台机器作为ARP服务器,专门保存并且维护可信范围内的所有主机的IP地址与MAC地址映射记录。该服务器通过查阅自己缓存的静态记录并以被查询主机的名义响应ARP局域网内部的请求。确保这台ARP服务器不被黑。
5.使用“proxy”代理IP的传输。
6.使用硬件屏蔽主机。设置好路由,确保IP地址能到达合法的路径(静态配置路由ARP条目)。注意,使用交换集线器和网桥无法阻止ARP欺骗。
7.管理员定期用响应的IP包中获得一个rarp请求,然后检查ARP响应的真实性。
8.管理员定期轮询,检查主机上的ARP缓存。
9.使用防火墙连续监控网络。注意有使用SNMP的情况下,ARP的欺骗有可能导致陷阱包丢失。
深入剖析ARP原理,防范ARP攻击
BY:疯狂暴龙 2008-5-24
我们知道根据OSI或TCP/IP模型,当在应用产生一个数据后,会向下层传递,当传到传输层后开始对数据进行封装,封装完毕后,继续向下层传递.(详细情况请看我的《网络互连之数据传输详解(OSI标准篇)》),当传到数据连路层后,同样象其他层一样,要对数据进行封装,我们通过分析数据桢保温格式会发现,数据连路层在对数据进行封装的时候,会在头部信息加上目的MAC地址,和源MAC地址!源MAC地址就是本机的MAC地址,计算机当然知道,于是将自己的MAC地址添入到源MAC地址里去,当添目的MAC地址的时候,这时计算机首先会察看上层的头部信息(也就是网络层的封装信息),察看里面的目的IP地址,知道目的IP地址后,首先会查找自己的“MAC地址表”(用来存放MAC地址的表,专业术语叫CAM表),看自己的CAM表是否有目的IP地址的MAC地址,如果有,就将查到的MAC地址添入到目的MAC地址里去。如果没有,就会向整个局域网发送ARP广播桢(内容大概是“IP地址为XXX.XXX.XXX.XXX的MAC地址是多少”),局域网内所有的机器都会收到这个广播,然后察看里面的信息,看是否是发给自己的,如果是发给自己,就回复一个单播桢(内容大概是IP地址为XXX.XXX.XXX.XXX的MAC地址是XX-XX-XX-XX-XX-XX),而其他的计算机对这个不是发给自己的广播不理会,丢弃掉!这样目的MAC就知道了,然后填入到目的MAC里面,继续封装.向物理层传输!!!
好了!!在一般的情况下,局域网内的计算机是不会理会不是发给自己的ARP广播的(计算机网卡默认的工作模式造成的) .这里就出现一个问题!由于是ARP广播,所以一些别有用心的人接受到这个广播后,并不丢弃掉,而是察看里面的信息,然后伪造一个虚假或不存在的MAC地址回复给那个计算机,这样就达到了 ARP欺骗的目的!这里我举个例子详细讲下!首先模拟一个简单的网络TOP!
计算机A,IP为192.168.1.1 MAC地址为AAAAAAAA
计算机B,IP为192.168.1.2 MAC地址为BBBBBBBB(假定他是攻击者)
网关, IP为192.168.1.254 MAC地址为CCCCCCCC
当计算机要访问外网的时候,他会把数据发给网关,但是这时他不知道网关的MAC的地址(我们要明白,在以太局域网里,定位是靠MAC地址而不是IP地址).于是计算机A就会发送一个ARP广播,询问网关的MAC地址是多少.当然网关和计算机B都收到了广播,这时,网关会把自己的真实MAC地址CCCCCCC告诉计算机A,而计算机B正常模式下是不理会这个广播的,但是这里他是攻击者,就会伪造一个虚假的MAC地址(比如自己的MAC地址)告诉计算机A,网关的MAC地址是BBBBBBB,我门知道ARP协议的基础就是信任局域网内所有的人,那么对回复的2个单播桢,计算机A会相信谁呢,这里由于MAC地址表的原因,他会相信最近一次接受到的数据.这是因为为了加快查询速度,减少ARP缓存表的长度,在MAC地址表里面的缓寸条目会有个存活时间,并且当接受到新的缓寸条目,就会对相应的条目进行更新!这里我们可以看出,只要计算机B不停的向计算机A发送伪造的ARP数据,那么计算机A就会受到欺骗,他的MAC地址表就会被更新,缓寸条目就会是这样,ip 192.168.1.254 对应的MAC是BBBBBBBB,这样计算机A每次发送给外网的数据就会发送给计算机B,而不是给网关,于是计算机A就会出现不能连上互联网的状况(因为发送到外网的数据,发错地方了嘛,更本到不了外网!),当然如果计算机B更高明点,就会对计算机A的数据进行转发,转发给网关,让后在将网关的回复信息在转发给计算机A,这样计算机A所有发送到外网的数据都能被计算机B知道的轻轻楚楚(象什么账号,密码,邮件等等,当然数据都是经过加密的,但是对高手来说,只是需要多花点时间罢了),并且计算机A本身不知道,他依然认为他处于正常情况,计算机B就相当与透明的!
好了!我们已经了解到了ARP欺骗的工作原理,接下来就是防范措施了!我们从上面的可以看出,计算机A只所以会受到欺骗,是因为,他本身不知道网关的真实的MAC地址,而由于以太网的原因,他又是很轻信的!所以这里我们只要让他知道网关的真实MAC地址就行了,即管理员手动配置静态的MAC地址表!也就是手动帮定MAC地址,当然为了防止网关也被欺骗,我们还需要对网关进行手动帮定内网计算机的MAC地址.具体做法就是分别在内网每太计算机上输入arp -s 网关IP 网关MAC地质,然后在网关上依次输入arp -s 计算机A的IP 计算机B的MAC,arp -s 计算机B的IP 计算机A的MAC,arp -s 计算机C的IP 计算机C的MAC...........
当然配置完后,最好装上ARP防火墙,可以有效的防止ARP欺骗,并能找出ARP攻击者!如果ARP防火墙不能找出攻击者的话,我们还可以利用内网袖探,分析抓取的数据,来找到攻击者!