ARP病毒的攻击原理分析

来源:岁月联盟 作者:郭立文 时间:2010-08-30
  摘要:最近校局域网中ARP病毒频繁发作,给校内用户造成不便。本文从ARP协议入手,深入分析了ARP安全漏洞及病毒攻击原理,并对ARP欺骗的原理与攻击方式做了深入的研究,阐明了ARP病毒欺骗的过程,给用户提出解决这个问题的方法。
  关键词:协议 IP地址 ARP病毒
  
  1. 引言
  
  从上半年开始在学校的局域网爆发了“ARP欺骗”木马病毒,病毒发作时其症状表现为机网络连接正常,能登陆成功却无法打开网页,极大地影响了局域网用户的正常使用。
  
  2. ARP协议的工作原理
  
  在以太网中传输的数据包是以太包,而以太包的寻址是依据其首部的MAC地址。仅仅知道某主机的IP地址并不能让内核发送一帧数据给此主机,内核必须知道目的主机的MAC地址才能发送数据。ARP协议的作用就是在于把32位的IP地址变换成48位的以太地址。
  在以太局域网内数据包传输依靠的是MAC地址,IP地址与MAC对应的关系依靠ARP缓存表,每台主机(包括网关)都有一个ARP缓存表。在正常情况下这个缓存表能够有效保证数据传输的一对一性。我们可以在命令行窗口中,输入命令ARP -A,进行查看,输入命令ARP -D进行刷新。
  当数据源主机需要将一个数据包要发送到目的主机时,会首先检查自己ARP列表中是否存在该IP地址对应的MAC地址,如果存在,就直接将数据包发送到这个MAC地址;如果不存在,就向本地网段发起一个ARP请求的广播包,询问目的主机的IP所对应的MAC地址。网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不一致就不作回应;如果一致,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,后给数据源主机发送一个ARP响应数据包,告诉对方自己是它需要查找的MAC地址;源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。若数据源主机一直没有收到ARP响应数据包,表示ARP查询失败。
  
  3. ARP病毒的欺骗原理和欺骗过程
  
  ARP欺骗的目的就是为了实现全交换环境下的数据监听,大部分的木马或病毒使用ARP欺骗攻击也是为了达到这个目的。
  假设一个只有三台电脑组成的局域网,该局域网由交换机(Switch)连接。其中一个电脑名叫A,代表攻击方;一台电脑叫S,代表源主机,即发送数据的电脑;令一台电脑名叫D,代表目的主机,即接收数据的电脑。这三台电脑的IP地址分别为:192.168.0.2,192.168.0.3,192.168.0.4,MAC地址分别为:MAC-A,MAC-S,MAC-D。
  现在,S电脑要给D电脑发送数据,则要先查询自身的ARP缓存表,查看里面是否有192.168.0.4这台电脑的MAC地址,如果有,就将MAC-D封装在数据包的外面,直接发送出去即可。如果没有,S电脑便向全网络发送一个这样的ARP广播包:S的IP是192.168.0.3,硬件地址是MAC-S,要求返回IP地址为192.168.0.4的主机的硬件地址。而D电脑接受到该广播,经核实IP地址,则将自身的IP地址和MAC-D地址返回到S电脑。现在S电脑可以在要发送的数据包上贴上目的地址MAC-D发送出去,同时它还会动态更新自身的ARP缓存表,将192.168.0.4-MAC-D这一条记录添加进去,这样,等S电脑下次再给D电脑发送数据的时候,发送ARP广播包进行查询了。这就是正常情况下的数据包发送过程。   但是,上述数据发送机制有一个致命的缺陷,即它是建立在对局域网中电脑全部信任的基础上的,也就是说它的假设前提是:无论局域网中哪台电脑,其发送的ARP数据包都是正确的。比如在上述数据发送中,当S电脑向全网询问后,D电脑也回应了自己的正确MAC地址。但是当此时,A电脑却返回了D电脑的IP地址和和自己的硬件地址。由于A电脑不停地发送这样的应答数据包,则会导致S电脑又重新动态更新自身的ARP缓存表,这回记录成:192.168.0.4与MAC-A对应,我们把这步叫做ARP缓存表中毒。这样,就导致以后凡是S电脑要发送给D电脑,都将会发送给A主机。也就是说,A电脑就劫持了由S电脑发送给D电脑的数据。这就是ARP欺骗的过程。
  如果A电脑不冒充D电脑,而是冒充网关,那后果会更加严重。一个局域网中的电脑要连接外网,都要经过局域网中的网关进行转发。在局域网中,网关的IP地址假如为192.168.0.1。如果A电脑向全网不停的发送IP地址是192.168.0.1,硬件地址是MAC-A的ARP欺骗广播,局域网中的其它电脑都会更新自身的ARP缓存表,将A电脑当成网关,这样,当它们发送数据给网关,结果都会发送到MAC-A这台电脑中。这样,A电脑就将会监听整个局域网发送给互联网的数据包。
  
  4. 结论
  
  ARP欺骗是目前管理,特别是校园网管理中最让人头疼的攻击,它的攻击技术含量低,随便一个人都可以通过攻击软件来完成ARP欺骗攻击。同时防范ARP欺骗也没有什么特别有效的方法,目前只能通过被动的亡羊补牢形式的措施了。无论是攻和防,首要的就是找出每种攻击的“症结”之所在。只有这样才能找到行之有效的解决方案。当然最根本的办法在客户端自身的防范上,如及时下载安装系统补丁、所装杀毒软件及时升级,安装ARP专杀与防范软件等。
  
  :
  [1].张曾科,机网络.清华大学出版社.2004.
  [2].邱雪松,ARP病毒原理与防御.柳钢科技出版社.2006.
  [3].黄玉春、王自南,浅谈局域网中的嗅探原理和ARP欺骗.大众科技出版社.2006.

图片内容