病毒、木马ARP攻击行为的原理分析及解决思路
来源:asp之家 时间:2010-02-21 08:56:00
近一段时间带有ARP攻击行为的病毒,木马很是常见,主要有两种表现形式:
1. 频繁的出现地址冲突的现象
2. 上网速度很慢甚至上不了网
经分析,这大部分是由于病毒进行ARP地址欺骗造成的。由于ARP协议的固有的缺陷,病毒通过发送假的ARP数据包,使得同网段的计算机误以为中毒计算机是网关,造成其它计算机上网中断(第一种情况)。或是假冒网络 * 定的机器对这台机器通信的数据进行截获(第二种情况)。为了避免中毒计算机对网络造成影响,趋势科技已经提供相关的防御工具KB(62735),由于ARP病毒攻击的复杂多变性,现在针对两种基本的攻击行为的原理进行分析,并提出相应的解决思路。
上网速度很慢甚至上不了网
我们首先要了解一下ARP(Address Resolution Protocol)地址解析协议,它是一种将IP地址转化成物理地址的协议。ARP具体说来就是将网络层(TCP/IP协议的IP层,也就是相当于OSI 的第三层)地址(32位)解析为数据链路层(TCP/IP协议的MAC层,也就是相当于OSI的第二层)的MAC地址(48位)[RFC826]。ARP 协议是属于链路层的协议,在以太网中的数据帧从一个主机到达网内的另一台主机是根据48位的以太网地址(硬件地址)来确定接口的,而不是根据32位的IP 地址。内核(如驱动)必须知道目的端的硬件地址才能发送数据。当然,点对点(如两台直联的计算机)的连接是不需要ARP协议的。为了解释ARP协议的作用,就必须理解数据在网络上的传输过程。这里举一个简单的ping例子。
假设我们的计算机A的IP地址是192.168.1.50,要测试与B机器的连通性,执行这个命令:ping 192.168.1.51。该命令会通过ICMP协议发送ICMP数据包。该过程需要经过下面的步骤:
1、应用程序构造数据包,该示例是产生ICMP包,被提交给内核(网络驱动程序);
2、内核检查是否能够转化该IP地址为MAC地址,也就是在本地的ARP缓存中查看IP-MAC对应表;
3、如果存在该IP-MAC对应关系,那么数据包直接发出;如果不存在该IP-MAC对应关系,那么接续下面的步骤;
4、内核进行ARP广播,目的地的MAC地址是BB-BB-BB-BB-BB-BB,ARP命令类型为Request,其中包含有自己的MAC地址;(下面会讲到具体包格式)
5、当B主机接收到该ARP请求后,就发送一个ARP的Reply命令,其中包含自己的MAC地址;
6、B获得A主机的IP-MAC地址对应关系,并保存到ARP缓存中;
7、B内核将把IP转化为MAC地址,然后封装在以太网头结构中,再把数据发送出去;
使用arp -a命令就可以查看本地的ARP缓存内容,所以,执行一个本地的ping命令后,ARP缓存就会存在一个目的IP的记录了。当然,如果你的数据包是发送到不同网段的目的地,那么就一定存在一条网关的IP-MAC地址对应的记录。
知道了ARP协议的作用,就能够很清楚地知道,数据包的向外传输依靠ARP协议,当然,也就是依赖ARP缓存。要知道,ARP协议的所有操作都是内核自动完成的,同其他的应用程序没有任何关系。ARP协议并不只在发送了ARP请求才接收ARP应答。而ARP协议的固有缺陷就在这里,当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因此, B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.1.52(C的IP地址),MAC地址是BB-BB-BB- BB-BB-BB(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP 缓存,将本地的IP-MAC对应表更换为接收到的数据格式,由于这一切都是A的系统内核自动完成的,A可不知道被伪造了。
某些病毒就是利用这个原理,向受害者发送源硬件地址为随机产生貌似来自网关的ARP应答包,于是在受害者缓存里,网关的IP是正确的,可对应的硬件地址却是错误的或者是中毒机器。该计算机向外发送的数据包总是发送到了错误的网关硬件地址上或是中毒机器。
而如果病毒想要截获某台机器上网的所有通信而不被察觉,只要同时再向网关发送冒充此机器的相应的数据包即可实现。
频繁出现地址冲突的现象
主机A在连接网络(或更改IP地址)的时候就会向网络发送ARP包广播自己的IP地址。如果网络中存在相同IP地址的主机B,那么B就会通过ARP来 reply该地址,当A接收到这个reply后,A就会跳出IP地址冲突的警告,当然B也会有警告。因此用如果病毒发出的是ARP的Request包就会使用户一直遭受IP地址冲突警告的困扰。
下面就以上分析做一个模拟病毒进行ARP攻击的行为的实验,了解此类病毒是如何产生危害的。
实验描述:此实验模仿ARP攻击的一种,机器不断提示地址冲突,运行变慢,无法上网的情况,其他情况可自行参考模拟
分析:不同病毒在中毒机器上运行,发送的ARP包是有一定的周期的,受影响的系统产生的开销不一。先模拟中毒机B以较大的发送频率发送到A机器上(未中毒),如系统内核处理会不断处理接到的ARP包,这时盗用者机器上会不断提示IP冲突, 则A机器上的系统开销将大大增加,很容易无法响应用户操作。而这一切由于ARP处于网络协议的底层,对一般防火墙等高层软件是透明的,盗用者无从察觉,只能看到机器不端弹出冲突信息,系统很快慢下来,最终没有任何响应。