【摘要】ARP协议由于自身的漏洞,在实际应用中给病毒和恶意软件带来了可乘之机。本文对ARP病毒进行了介绍,揭示其攻击原理和解决办法等。
【关键词】ARP病毒;MAC地址;局域网;网络安全
1.ARP病毒介绍
ARP(AddressResolutionProtocol)协议是TCP/IP协议组中的一个协议,能够把网络地址翻译成物理地址(又称MAC地址),但是存在漏洞,对于木马病毒的入侵埋下了隐患。这一类利用ARP协议的漏洞进行传播的病毒总称为ARP病毒,对电脑用户私密信息的威胁很大。
病毒发作时的症状表现为计算机网络连接正常,能登陆成功却时常上不了网,局域网的网络情况却时好时坏,这很可能就是ARP欺骗已经发作的征兆。
2.ARP协议的工作原理
在局域网中,两台主机之间要进行通信,必须知道目标主机的IP地址,但是网卡并不能直接识别IP地址,只能识别其硬件地址MAC地址,这就必须进一步通过ARP协议将数据包中的IP地址转换为MAC地址。IP地址与MAC对应的关系依靠ARP缓存表,每台主机(包括网关)都有一个ARP缓存表,在正常情况下这个缓存表能够有效保证数据传输的一对一性。假设某局域网有由三台电脑组成。电脑A代表攻击方,电脑S代表源主机,另一台电脑B代表目的主机。这三台电脑的IP地址分别为:192.168.0.2,192.168.0.3,192.168.0.4,MAC地址分别为:MAC-A,MAC-S,MAC-B。
在数据传输过程中,S电脑要给B电脑发送数据,则要先查询自身的ARP缓存表,查看里面是否有192.168.0.4这台电脑的MAC地址,如果有就将MAC-B封装在数据包的外面,直接发送出去即可。如果没有,S电脑便向全网络发送一个ARP广播包,要求返回IP地址为192.168.0.4的主机的MAC地址。B电脑接收到该广播,就将自身的IP地址和MAC-B地址返回到S电脑。现在S电脑可以在要发送的数据包上贴上目的地址MAC-B发送出去,同时它还会动态更新自身的ARP缓存表,将192.168.0.4-MAC-B这一条记录添加进去。这样,等S电脑下次再给B电脑发送数据的时候,就不用发送ARP广播包进行查询了。若数据源主机一直没有收到ARP响应数据包,表示ARP查询失败。这就是ARP工作原理下的数据包正常发送过程。
3.ARP病毒的欺骗过程和欺骗原理
数据发送机制有一个致命的缺陷,即它是建立在对局域网中电脑全部信任的基础上的。比如在上述数据发送中,当S电脑向全网询问后,B电脑也回应了自己的正确MAC地址,但同时,A电脑却返回了B电脑的IP地址和和自己的硬件地址。由于A电脑不停地发送这样的应答数据包,则会导致S电脑又重新动态更新自身的ARP缓存表,这回记录成:192.168.0.4与MAC-A对应,我们把这步叫做ARP缓存表中毒。这样,就导致以后凡是S电脑要发送给B电脑,都将会发送给A主机。也就是说,A电脑就劫持了由S电脑发送给B电脑的数据,完成了ARP欺骗过程。
如果A电脑不冒充B电脑,而是冒充网关,那后果会更加严重。A电脑将会监听整个局域网发送给互联网的数据包。
4.判断一台电脑是否受到ARP攻击的办法
(1)在正常情况下,登录网关路由器的管理界面并记录网关面向局域网接口(LAN口)的MAC地址。如查看结果:MAC地址:00-0A-EB-B9-5C-CE,IP地址:192.168.1.1
(2)当发生异常情况的时候,在内网发生故障的电脑(或任意一台电脑)上运行ARPa命令,在回显的信息中查看对应网关IP的MAC地址,对比是不是之前记录的网关的MAC地址。如果不是,则说明局域网发生了ARP攻击。
5.针对ARP病毒的应对策略
由于ARP攻击有时不是病毒造成的,而是合法运行的程序(外挂、网页等)造成的,所以常见的杀毒软件多数时候束手无策。
要真正消除ARP病毒攻击的隐患,必须“双向绑定”:在每台电脑上绑定一些常用的ARP表项,同时设置“局域网核心”路由器。由于任何ARP包,都必须经由交换机转发,才能达到被攻击的目标,那么只要路由器拒收非法的ARP包,ARP攻击就不能造成任何影响。
第一步:电脑端进行ARP条目绑定
A.打开“记事本”程序,在里面输入命令:ARPs192.168.1.100-0A-EB-B9-5C-CE
命令中参数的四部分,分别是:“ARP”、“-s”、“网关IP地址”、“网关MAC地址”,中间以空格隔开。对于局域网中的所有电脑来说,它们的“网关IP地址”就是路由器的LAN口IP地址,“网关MAC地址”就是LAN口的MAC地址。
B.输入完成后另存为protection.bat批处理文件。
C.将protection.bat复制到“启动”文件夹中。
打开“开始”-“程序”-“启动”,右击菜单,选择“打开”命令,打开“启动”文件夹,将protection.bat复制到“启动”文件夹中。
D.复制完成后,重新启动电脑,让protec-tion.bat文件自动执行一次。目的是让ARP条目成为静态不再改变,确保这台电脑不会因为受到ARP欺骗而动态修改自己的ARP表,导致不能上网。
在DOS界面运行ARPa可以看到当前ARP条目已由以前的动态(Dynamic)改为静态(Static)。实际上,局域网中的电脑不仅和路由器之间有MAC地址询问的过程,任意两台电脑之间通讯,都首先有一个询问对方MAC地址的过程。为了安全和方便,可以将protection.bat文件复制到每台电脑的“启动”文件夹中。
第二步:在网关路由器端进行ARP绑定
现在,局域网内的电脑可以将数据包正常发送到路由器。然而,路由器也有一张ARP缓存表,用来记录网内主机的IP地址和MAC地址,如果网关路由器受到欺骗后,路由器就会向错误的目的主机发送数据。也就是说,现在的防范效率只有50%,在网关路由器上进行配置,将局域网网内的每台电脑的IP地址和MAC地址绑定到路由器,才真正是万事大吉。
下面就在路由器端绑定主机。
首先登录路由器,找到“IP与MAC绑定-静态ARP绑定设置”,再在“ARP绑定”部分选中启用。然后点击“增加单个条目”来新增一个绑定。要添加多个静态绑定请重复上述步骤。当然还可以快捷的来添加静态绑定,切换到“IP与MAC绑定-ARP映射表”,查看所有连接到此路由器的主机IP与MAC地址信息,要绑定某一台主机,只需要点击导入即可,如***1所示:
***1
然后切换到“IP与MAC绑定-静态ARP绑定设置”,在刚才导入的条目中间勾选“绑定”即可完成绑定。至此,在路由器端绑定ARP设置就完成了。
转载请注明出处学文网 » ARP病毒的认识及解决方案