局域网内ARP病毒的防范
作者: 孙晨阳摘 要:本文主要研究ARP病毒的原理、病毒源的查找和定位及其病毒的防御方法。
关键词:ARP协议; 病毒; 防御
中图分类号:TP393.1 文献标识码:A 文章编号:1006-3315(2011)7-170-002
在计算机网络系统所受到的网络病毒危害中,局域网ARP病毒是经常出现的一种,好多单位深受其害。因此,作为网络管理员,必须掌握一定的知识和采取一定的保护措施以防范ARP病毒的入侵。笔者旨在通过本文,向网络管理员介绍ARP病毒的攻击原理、病毒源的查找和定位以及病毒的防御方法,供网管人员参考。
一、ARP协议简介
现在局域网组网的一般形式是:以太网+IP通信协议,即物理网络使用以太网交换机,主机使用IP通信协议。
在以太网中,如果主机A需要向主机B发送数据,在发送前必须先解决一个问题——怎么才能找到主机B?可能有人会说通过主机B的IP地址啊。但实际上,在以太网环境中数据的传输所依懒的是以太网地址即MAC地址,而非IP地址。在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。因此,必须把主机B的IP地址转换成主机B的MAC地址,而将已知IP地址转换为MAC地址的工作是由ARP协议来完成的。
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址查询目标设备的MAC地址,以保证通信的顺利进行。
1.ARP协议的工作原理
在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如下所示。
我们以主机A(172.20.164.18)向主机B(172.20.164.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有主机B的IP地址。如果找到了,也就知道了主机B的MAC地址,直接把主机B的MAC地址写入帧里面发送就可以了。
如果在ARP缓存表中没有找到主机B的IP地址,主机A就会在网络上发送一个“ARP请求”广播数据包,数据包里包括主机A的IP地址、MAC地址、以及主机B的主机的IP地址,目的MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“172.20.164.1的MAC地址是什么?”
网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机即主机B首先将主机A的MAC地址和IP地址添加到自己的ARP列表中,如果ARP 表中已经存在该IP的信息,则将其覆盖。然后给主机A发送一个ARP响应数据包,告诉对方“172.20.164.1的MAC地址是00-0f-1f-6b-bc-d7”。主机A收到这个ARP响应数据包后,将得到的主机B的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。
二、ARP病毒攻击原理
ARP病毒一般分为两种类型:ARP欺骗和ARP扫描。
1.ARP欺骗
ARP协议的设计基础就是信任局域网内所有的人,为了减少网络上过多的ARP数据通信,一个主机,即使收到的ARP应答并非自己请求得到的,它也会将其插入到自己的ARP缓存表中,这样,就造成了ARP病毒即“ARP欺骗”发生的可能。
如果主机C想探听同一网络中两台主机A和B之间的通信,他会分别给这两台主机发送一个ARP应答包,让两台主机都“误”认为主机C的MAC地址是对方的MAC地址,这样,A和B双方看似“直接”的通信连接,实际上都是通过主机C间接进行的。主机A一方面得到了想要A和B的通信内容,另一方面,只需要更改A和B数据包中的一些信息,成功地做好转发工作即可。这种ARP 欺骗属于主机MAC地址欺骗。
还有一种ARP欺骗属于网关MAC地址欺骗:主机C向局域网内所有主机发送一个ARP应答包,让其他所有主机都“误”认为主机C的MAC地址是网关的MAC地址,这样,局域网内其他所有主机发向外部网络的数据包,实际上都是发给了主机C。
2.ARP扫描
ARP扫描就是病毒主机在局域网中发出巨量的ARP请求广播包,几乎都是对网段内的所有主机进行扫描。巨量的ARP请求广播会占用大部分网络带宽资源,造成网络堵塞,网络中的主机无法进行数据收发,进而形成网络瘫痪。
如果运行正常的局域网中突然会出现:主机突然不能上网,过段时间又能上网,并会反复掉线;主机上网网速变慢,经常出现掉线;在IP地址设置正常的情况下,经常有主机显示“IP地址冲突”:全网同样配置下,唯独某台主机无法上网,重启主机或者禁用网卡,再启用就恢复正常,但一会又掉;正在使用某一类应用程序的主机依次掉线,或时通时断;网络堵塞,网络中的所有主机都无法上网等现象,就有可能是ARP病毒所致。
三、ARP病毒源的查找和定位
1.使用ARP命令查找和定位
当局域网中发生ARP欺骗的时候,ARP病毒主机会向全网不停地发送ARP欺骗广播,这时局域网中的其它主机就会动态更新自身的ARP缓存表,将网关的MAC地址记录成ARP病毒主机的MAC地址。这时候我们只要在其它受影响的主机中查询一下当前网关的MAC地址,就知道中毒主机的MAC地址了。
在cmd命令提示行下输入“ARP -a”命令,输入后的返回信息如下:
Internet AddressPhysical AddressType
172.20.164.25400-1E-C9-44-FE-9A dynamic
这时,由于这个主机的ARP表是错误的记录,因此,该MAC地址不是真正网关的MAC地址,而是中毒主机的MAC地址!这时可以使用nbtscan工具扫描全网段主机,得到全网的IP—MAC地址对照表,查找中毒主机的IP地址就可以了。
2.使用tracert命令查找和定位
在受影响的主机中运行路由跟踪命令如:
tracert d www.qq.com
马上就发现第一条不是网关的ip地址,而是本网段内的另外一台主机的IP地址,再下一条才是网关的IP地址。而正常情况下,路由跟踪命令执行后的输出第一条应该是默认网关地址,由此判定第一条的那个非网关IP地址的主机就是罪魁祸首。
3.使用ARP防火墙软件查找和定位
在网络中的任一主机上安装运行ARP防火墙软件,就可以马上检测到病毒主机。显示了一条ARP攻击信息:IP地址为172.20.164.201、MAC地址为00-1E-C9-44-FE-9A的主机试图伪装成IP地址为172.20.164.254的网关。
4.利用交换机日志信息查找和定位
可网管型交换机会存储交换机运行的日志信息,其中就有IP地址冲突信息。如下面就是cisco交换机4507R中的一条日志信息:
5w5d: %IP-4-DUPADDR:Duplicate address 172.20.164.254 on Vlan201, sourced by 001e.c944.fe9a
以上信息说明:在VLAN201中有一个MAC地址为001e.c944.fe9a的主机试图修改为网关IP地址172.20.164.254。
本文为全文原貌 未安装PDF浏览器用户请先下载安装
原版页码:170,171原版全文
我们可以在cisco交换机4507R上使用“show mac-address-table vlan 201”指令得到以下信息:
201 001e.c944.fe9adynamic ip FastEthernet3/7
201 001e.c945.13d9 dynamic ip FastEthernet3/7
201 0021.9b6c.606d dynamic ip GigabitEthernet4/3
可以知道MAC地址为001e.c944.fe9a的主机连接在交换机FastEthernet3/7端口上。
再使用“show ARP” 指令得到以下信息:
Internet 172.20.164.200 0 0013.200f.36f5 ARPA lan201
Internet 172.20.164.201 0 001e.c944.fe9a ARPA Vlan201
Internet 172.20.164.202 3 0021.9b6c.606d ARPA Vlan201
可以知道MAC地址为001e.c944.fe9a的主机的IP地址为172.20.164.201。
通过以上操作,就可以快速的查找和定位病毒主机。
5.使用抓包工具进行查找和定位
使用常用的一些抓包工具如SnifferPro、Ethereal、Wireshark等,在网络中对数据包进行捕获,也可以查找和定位病毒主机,具体的方法涉及到抓包工具的使用,这里不具体介绍,读者可自行查找相关资料。
四、ARP病毒的防御方法
ARP病毒的防御方法主要有以下几种:
1.在交换机上合理划分VLAN,缩小VLAN中的主机数量,限制ARP流量。这种方法治标不治本,只能在ARP病毒发动攻击时减少受影响的主机数量。
2.在所有主机上手动绑定网关IP地址和MAC地址。首先,获得网关的IP地址和MAC地址。例如网关的IP地址为:172.20.164.254,MAC地址为:00-0c-85-f5-44-bf。
其次,用记事本编写一个批处理文件arp.bat内容如下:
@echo off
arp -d
arp -s 172.20.164.254? 00-0c-85-f5-44-bf
将此批处理文件拖动(移动)到“开始”-->“程序”-->“启动”中。
这种方法可以彻底根治网关MAC地址欺骗,但网络中主机数量较多时,网管员的工作量将非常大。
3. 在交换机上绑定交换机端口、IP地址和MAC地址
在使用固定IP地址的网络中,可在交换机所有端口上使用指令绑定主机可使用的IP地址和MAC地址。
这种方法也可以彻底根治ARP病毒,但网管员必须首先获得全网主机的IP-MAC地址对照表,这可以使用nbtscan工具扫描全网段主机来获得。而且在网络中主机数量较多时,网管员对交换机进行配置的工作量将非常大。
4.在网络中使用ARP防火墙软件
在网络的一台主机中安装使用ARP防火墙软件,就可以对VLAN内的ARP数据包进行实时监控。这种方法无法彻底根治ARP病毒,但可以迅速发现并找到ARP病毒主机。
改进的方法是在所有主机上安装使用ARP防火墙软件,这样可以彻底根治ARP病毒,但网络中主机数量较多时,网管员的工作量将非常大。
5.在局域网使用PPPOE协议
在局域网内建立PPPOE服务器,让局域网主机不使用ARP协议而使用PPPOE协议拨号上网,由DHCP服务器验证拨号用户信息和分配用户IP地址。由于主机不使用ARP协议,也就不存在利用ARP地址欺骗在局域网中发动攻击的可能了。
这种方法可以彻底根治ARP病毒,但需要添置一台PPPOE服务器,一般费用都在万元以上。此外还需要改变原有网络拓扑结构和相关网络设备的配置文件以支持PPPOE协议,为每个用户设置ID和密码,而且还需要为每台主机设置PPPOE拨号连接,网管员的工作量将非常大。
参考文献:
谢希仁编著.计算机网络(第四版).北京:电子工业出版社,2005年12月
本文为全文原貌 未安装PDF浏览器用户请先下载安装
原版页码:170,171原版全文