局域网ARP病毒攻击与防范探析
2011-11-15毛潮钢中交一航局第二工程有限公司山东青岛266071
毛潮钢 中交一航局第二工程有限公司,山东 青岛 266071
局域网ARP病毒攻击与防范探析
毛潮钢 中交一航局第二工程有限公司,山东 青岛 266071
局域网中ARP病毒攻击频繁发作,给用户造成诸多不便。本文从ARP协议及工作原理入手,深入分析了ARP安全漏洞及病毒攻击原理,阐明了ARP病毒欺骗的过程,提出解决方法和防范措施。
局域网;ARP攻击;防范
引言
计算机病毒伴随着Internet的发展,传播速度越来越快、破坏能力也越来越强。局域网ARP病毒攻击事件时常出现,造成网络频繁中断,病毒发作时计算机网络连接正常,能登陆成功,却无法打开网页,极大地影响了用户的正常使用。调查发现,主要是因为个别用户计算机感染ARP病毒所导致。笔者结合自己的一些网络管理经验,对ARP病毒攻击进行了分析和总结,提出了一些相应的解决方法和防范措施。
1 ARP协议及工作原理
ARP协议:即地址解析协议,实现通过IP地址得知其物理地址。在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网路上传送,必须知道对方目的主机的物理地址,这样就存在把IP地址变成物理地址的地址转换问题。以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的32位IP地址转换成为48位以太网地址,这就需要在互连层有一组服务协议将IP地址转换为相应的物理地址,这组协议就是ARP协议。
工作原理:在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的。 以主机A(192.168.1.5)向主机B(192.168. 1.1)发送数据为例:当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标主机B的IP地址。如果找到了,也就知道了目标主机B的MAC地址,直接把目标主机B的MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到目标主机B的IP地址,主机A就会在网络上发送一个广播,向在同一网段内的所有主机发出这样的询问:“我是192.168.1.5,我的硬件地址是‘主机A的MAC地址’,请问IP地址为192.168.1.1的主机MAC地址是什么?”网络上其他主机并不响应主机A的ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192. 168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,就可以向主机B发送信息了,同时主机A和主机B都更新了自己的ARP缓存表(因为主机A在询问的时候把自己的IP和 MAC地址一起都告诉了主机B),下次主机A再向主机B或者主机B向主机A发送信息时,就可以直接从各自的ARP缓存表里查找到了。ARP缓存表采用老化机制(即设置了生存时间TTL),在一段时间内(一般15~20分钟)如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。
2 遭受ARP攻击后现象
ARP欺骗木马的中毒现象表现为:使用局域网时会突然掉线,过一段时间后又会恢复正常。用户频繁断网,IE浏览器频繁出错,以及一些常用软件出现故障等。如果局域网中计算机是通过身份认证上网的,会突然出现可认证,但不能上网的现象(无法ping通网关),重启机器或在MS-DOS窗口下运行命令arp -d后又可恢复上网等现象。
ARP欺骗木马只需在局域网内成功感染一台电脑,就可能导致整个局域网许多用户都无法上网,严重的甚至可能带来整个网络的瘫痪。该木马发作时,除了导致用户上网出现时断时续的现象外,还会窃取用户密码,如盗取QQ密码、盗取各种网络游戏密码和账号、盗窃网上银行账号进行非法交易活动等。
3 故障原因查找分析
3.1 ARP缓存表查看方法
ARP缓存表是可以查看的,也可以添加和修改。在MS-DOS命令窗口下运行“arp -a”命令,就可以查看ARP缓存表中的内容。
用“arp -d”命令可以删除ARP表中所有的内容;
用“arp -d +空格+ <指定IP地址>”可以删除指定IP所在行的内容;
用“arp -s”可以手动在ARP表中指定IP地址与MAC地址的对应关系。
3.2 ARP病毒攻击查找过程
①执行arp –a,列出了:
10.216.96.18 00-0F-EA-11-00-5E
10.216.96.3 00-0F-EA-11-00-5E(改变后的网关MAC地址)
由于之前我们已经知道网关的正确物理地址是00-00-0c-07-0a-01,此时却变成了00-0F-EA-11-00-5E,说明10.216. 96.18正在利用arp进行欺骗,冒充网关。
②执行arp -d,清除ARP缓存列表信息。重新运行arp –a,看可疑IP地址是否存在,不存在说明此IP地址正常,存在则说明该机器有ARP病毒。
③使用tracert命令,在任意一台受影响的主机上,在MS-DOS命令窗口下运行如下命令:tracert 61.135.179.148(外网IP地址)。假定设置的缺省网关为10.216. 96.3,在跟踪一个外网地址时,第一跳却是10.216.96.18,那么10.216.96.18就是病毒源。
通过以上查找分析,局域网内有计算机感染ARP 病毒,中毒机器的网卡会不断发送虚假的ARP数据包,告诉网内其它计算机网关的MAC地址是中毒机器的MAC地址,使其它计算机将本来发送网关的数据从而发送到中毒机器上,导致整个局域网都无法上网,乃至整个网络的瘫痪。我们知道局域网中的数据流向是网关→本机,如果网络有ARP 欺骗之后,数据的流向是网关→攻击者→本机,因此攻击者能随意窃听网络数据信息。
4 解决方法及防范措施
①合理划分VLAN,彻底阻止盗用IP、MAC地址,杜绝ARP的攻击。
②使用可防御ARP攻击的三层交换机,绑定端口MAC-IP。限制ARP流量,及时发现并自动阻断ARP攻击端口。
③安装ARP防火墙或者开启局域网ARP防护,比如360安全卫士等,并且实时下载安装系统漏洞补丁,关闭不必要的服务等,减少病毒的攻击。
④经常更新杀毒软件病毒库,允许的情况下可设置为每天定时自动更新。
⑤如果没有安装防范软件,则可以通过编写简单的批处理程序来绑定网关,从而防止ARP欺骗。步骤如下:
首先,获得网关的MAC地址。以Windows XP为例,点击“开始”→“运行”→输入“cmd”→“确定”→输入“arp -a”,查看网关的MAC地址;
第二步,编写批处理文件arp.bat,内容如下:
arp -s 10.216.96.3 00-00-0c-07-0a-01(注:arp -s是用来手动绑定IP地址对应的MAC地址);
第三步,编写完后另存为.bat文件,并将这个批处理文件拖到Windows开始程序的“启动”中,重起电脑即可。
5 结束语
ARP协议制定时间比较早,对于ARP病毒攻击最根本的解决措施就是使用 IPv6协议,因为IPv6定义了邻机发现协议(NDP),把ARP纳入NDP并运行于因特网控制报文协议(ICMP)上,使ARP更具有一般性,包括更多的内容,而且不用为每种链路层协议定义一种ARP。
随着网络技术的不断更新,网络建设的不断完善,我们已经可以更好的解决ARP攻击问题,确保网络安全可靠运行。
10.3969/j.issn.1001-8972.2011.15.054