一、 ARP欺骗的原理

在局域网中,同一子网中的两台计算机通信的建立实际上是通过MAC地址来完成的,所以两台计算机通信前必须将IP地址转换MAC地址,这个过程是由ARP协议完成的。如IP为192.168.0.10的计算机A想要和IP为192.168.0.8的计算机B通信,就会向整个网络发送一个广播(ARP REQUEST)大致内容为:“大家好,我的IP是 192.168.0.10,我的MAC地址AA: AA: AA: AA: AA: AA,请记下,大家以后用他联系我,顺便请问IP为192.168.0.8的同志,你的MAC地址是多少啊 ,小弟有数据包要发给你。”   在正常情况下IP为192.168.0.8的计算机B接收到该广播包后会回复一个数据包(ARP REPLY)告诉IP 192.168.0.10的计算机A:“小弟,你好,我的MAC地址是BB: BB: BB: BB: BB: BB,你也记下,以后我们就直接用MAC地址通信了,常保持联系。”这时连接完成,计算机A顺利的将数据包发给计算机B,这是两台计算机通信的正常建立,但是如果此时有一台计算机C不停的告诉(欺骗)计算机A:“计算机B的MAC地址是CC: CC: CC: CC: CC: CC” ,而计算机A本身不具有辨别能力(网络连接设计上的缺陷),正确的回复很快被错误的广播淹没(图1就是这个过程的示意图)。计算机A就会错误的记录下计算机B的MAC地址为CC: CC: CC: CC: CC: CC,并错误的将数据包发给了计算机C,计算机C得到数据包后,接下来他就可以对数据包为所欲为了,分析数据包中的帐户信息、在数据包中加入病毒代码再发送给计算机B或干脆丢弃数据包。在这个过程中,计算机C就欺骗了计算机A和计算机B。这个过程就是ARP欺骗。
ARP欺骗有两种攻击可能,一种是对路由器(网关)的欺骗;另一种是对内网计算机的欺骗,当然也可能两种攻击同时进行。不管怎么样,欺骗广播发送后,计算机和路由器之间发送的数据包就可能被送到错误的MAC地址上,从表面上来看,就是“上不了网”或打开的网站个个有病毒,上网的计算机若没有及时更新系统补丁,就很容易感染病毒,网络用户的安全信息也很容易被盗。从这儿可以看出ARP欺骗对局域网计算机安全影响巨大,已成为目前影响网络正常运行的主要原因。

图1

二、 局域网ARP欺骗的一般处理方法
由于ARP欺骗是利用了网络连接建立原理设计上的缺陷,所以要从根本上解决的方案估计没有,但要恢复局域网中计算机的正常上网,阻断欺骗机对网络的影响,还是有办法的。根据ARP欺骗的原理,要防止ARP欺骗必须阻止计算机和路由器的ARP缓存表被非法篡改。目前较为有效的方法是MAC地址双向绑定。即路由器上绑定客房机IP-MAC地址对照信息,客户机上绑定路由器IP-MAC地址对照信息,对于客户机上的MAC地址绑定相对较容易,使用下面的批处理并加入计算机的启动项中就可完成。
ARP –d
ARP –s 网关IP 网关MAC
然而这种方法只能在计算机启动时实施一次MAC地址绑定,效果可能有限。互联网上也有专门用于防范ARP欺骗的软件,如Ani ARP Sniffer、360ARP防火墙 等,这类软件的防范原理是自动检测实时防篡改的MAC地址绑定,效果优秀。

对于路由器上的MAC地址绑定相对较繁琐,需要事先知道客户机的IP及MAC地址信息,不同品牌的路由器绑定的操作方法也不相同,当客户机较多时,操作就比较繁琐。这种方法比较适用规模较小,变化不大的计算机网络(如网吧),路由器MAC地址绑定后,当客户机网卡变动后就要更新对应的路由器绑定数据,否则就不能上网,所以维护也较繁琐。同样若用WIN2000/2003的路由功能,则可以用下面的批处理实现MAC地址绑定。
ARP –d
ARP –s 计算机A IP地址 计算机A网关MAC地址
ARP –s 计算机B IP地址 计算机B网关MAC地址
…………
鉴于ARP欺骗的流行,不少网络设备厂商推出号称具有防范ARP欺骗的安全网关、路由器产品,其防范原理是定期(如10次/秒的频度)不断的向内部网络广播正确的网关IP-MAC地址对照信息(方法类似ARP木马广播伪造的MAC信息,汗……),应该说具有一定的防护作用,但在欺骗攻击较多时,也会失去它的作用,且这类网络设备和MAC地址欺骗木马一起不断向网络发送广播数据包,占用了很大的网络带宽,会大大降低网络的连接速度,故不推荐采用。
笔者认为,ARP欺骗是由中ARP欺骗病毒计算机发起的,运用上边介绍的方法只能从表面上解决客户机的正常上网,问题的关键并没有解决,及时找到中毒计算机,将其从网络隔离,清除ARP欺骗病毒并做好防病毒工作,这才是维护网络正常运作的关键。
三、 开启交换机MAC地址过滤,轻松拦截ARP欺骗广播包
笔者所在的单位拥有计算机数量较多,用MAC地址双向绑定的方法难度较大,且局域网内计算机的IP为动态分配,但一般情况下同时在线的计算机300台左右。在网管机上安装防ARP欺骗及监测软件Ani ARP Sniffer ,当发现ARP欺骗机时,立即将欺骗机MAC地址添加到主交换机的MAC 地址过滤池中(需要打开交换机的远程管理功能,基于telnet或web方式等), 主交换机会立即将由欺骗机发来的数据包丢弃过滤,避免了伪造的MAC地址广播包发送到其他计算机,网络也就恢复正常。此时欺骗机因数据包过法通过主交换机而将始终无法上网,且无法分配到IP地址(需要DHCP服务器接在主交换机的另一端口上)。管理员若备有计算机MAC地址记录表(网络正常时,可以通过MAC地址扫描软件得到),则很快可以找到发动攻击的欺骗机,及时进行处理。若没有记录表,欺骗机用户因不能上网会主动向网管处反应情况,也就找到了中毒主机。对于“MAC地址过滤”一般的可网管交换机都具有该功能,查阅相应的资料就能找到操作方法。将所有中毒主机处理后,及时更新系统补丁,安装有效的防病毒软件(笔者用的是NOD32),加强整个网络的防病毒能力,实时监测整个网络的ARP数据包,发现问题及时处理,就能从最大程度上解决ARP欺骗对内部网络的影响。

文章如转载,请注明转载自:http://www.5iadmin.com/post/497.html