国际病毒学杂志
主办单位:国家卫生部
国际刊号:1673-4092
国内刊号:11-5394/R
学术数据库优秀期刊 《中文科技期刊数据库》来源期刊
       首 页   |   期刊介绍   |   新闻公告   |   征稿要求   |   期刊订阅   |   留言板   |   联系我们   
  本站业务
  在线期刊
      最新录用
      期刊简明目录
      本刊论文精选
      过刊浏览
      论文下载排行
      论文点击排行
      
 

访问统计

访问总数:15174 人次
 
    本刊论文
探析ARP病毒及防范对策

  内容摘要:目前,局域网(LAN:Local Area Network)经常感染ARP病毒,并且ARP病毒攻击已成为了导致局域网大面积掉线甚至瘫痪的罪魁祸首。本文笔者结合自己三年多来从事局域网维护与管理的实践工作经验,从排除故障、优化网络管理性能的角度出发,对ARP病毒的基本知识、工作原理以及如何防范ARP病毒等几个方面做一些探讨和分析,希望能够对从事局域网维护和管理工作的技术人员有所帮助。

  论文关键词:ARP病毒,地址欺骗,攻击原理,对策,局域网,主机

    1、ARP病毒简介。ARP地址欺骗类病毒(以下简称ARP病毒)是一类特殊的地址欺骗病毒。

    2、ARP病毒特点。该病毒一般属于木马病毒,不具备主动传播的特性,不会自我复制。但是,如果局域网内某台计算机(以下简称主机)感染、运行ARP病毒时,这台主机将伪造其他主机的MAC地址,并向整个局域网发送伪造的ARP数据包,从而欺骗局域网内所有的主机和路由器,让局域网内原来直接通过路由器上网的主机都转由通过病毒主机上网,这样就占用大量网络带宽,干扰了局域网的正常运行,并可最终导致局域网中的主机大面积掉线甚至整个局域网瘫痪。

    其实,导致ARP病毒的发生,在理论上是由于以太网数据包头的源地址、目标地址和ARP数据包的协议地址不匹配;或者ARP数据包的发送和目标地址不在同一个局域网的网卡MAC数据库内;或者与同一个局域网的MAC数据库MAC/IP不匹配。

    3、ARP病毒分类。根据欺骗对象的不同,ARP病毒可以分为以下三种:

    A、欺骗局域网中某一受害主机。

    B、欺骗局域网的路由器、网关。

    C、双向欺骗,即A、B两种欺骗方法的组合方式。

    根据发起个体的不同,ARP病毒可以分为以下两种:

    A、人为攻击。人为攻击的目的主要是:造成网络异常、窃取数据、非法控制等。

    B、ARP病毒。在这里,ARP病毒不是特指某一种病毒,而是指所有包含有ARP欺骗功能的病毒的总称。

    4、ARP病毒危害。ARP病毒的危害有以下几个方面:

    A、网络异常。具体表现为:网络连接正常,但是局域网内主机上网经常掉线;局域网内部网络的部分主机不能上网;局域网时断时续并且网速较慢;局域网内所有主机不能上网,打开网页慢甚至无法打开网页;IP地址冲突等。

    B、数据窃取。具体表现为:个人隐私泄漏(如MSN聊天记录、邮件等)、账号被盗用(如QQ账号、银行账号等)。

    C、数据篡改。具体表现为:访问网页被添加恶意内容,俗称“挂马”。

    D、非法控制。具体表现为:网络速度、网络访问行为(例如某些网页打不开、某些网络应用程序用不了)受第三者非法控制。

    二、ARP病毒攻击原理

    为了讲清楚ARP病毒攻击原理,我们必须先了解一下MAC地址与ARP协议。

    1、MAC地址简介。在局域网中,一台主机要和另一台主机进行通信,就必须要知道目的主机的IP地址。但是,在局域网中负责主机之间传输数据的网卡等物理设备不识别IP地址,而只能识别其硬件地址即MAC地址。

    MAC地址是由48位二进制数(12位16进制数),每2个16进制数之间用“-”或者冒号隔开后所组成的一串数字,用来识别局域网中主机的一种标识(如:00-0B-2F-13-1A-11)。

    局域网中每台主机网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的就是传输数据时用来标识发送数据端主机(亦称源端)和接收数据端主机的地址(亦称目的端或宿端)。每块网卡都有其全球唯一的MAC地址,在网卡之间发送数据,只能根据对方网卡的MAC地址进行发送,这就需要一个将高层数据包中的IP地址转换成低层MAC地址的协议,这个工作任务将由ARP协议完成。

    2、ARP协议简介。ARP(Address Resolution Protocol,地址解析协议)协议是指将局域网中主机的IP地址转换为第二层物理地址(即MAC地址)的一种协议。

    在局域网中,网络中实际传输的是帧,帧里面有目的主机的MAC地址。在以太网中,一个主机要和另一个主机进行直接通信,就必须要知道目标主机的MAC地址。ARP协议就是解决如何实现主机的MAC地址与IP地址之间的转换,保证通信顺利进行问题的。在以太网中,每台安装有TCP/IP协议的主机里都有一个ARP缓存表,表中的IP地址与MAC地址是一一对应的。因此,该协议对局域网正常运行、安全都具有非常重要的意义。

    3、ARP病毒攻击原理。假设一个只有三台主机组成的局域网,该局域网由交换机(Switch)连接。其中一台主机名叫A(Attack,即发送攻击数据的主机),代表攻击方;一台主机名叫S(Send, 即发送数据的主机),代表源主机;另一台主机名叫D(Destination, 即接收数据的主机),代表目的主机;这三台电脑的IP地址分别为192.168.0.2、192.168.0.3、192.168.0.4;MAC地址分别为 MAC_A、MAC_S、MAC_D。

    A、网络正常情况下的数据包发送过程。现在,主机S要发送数据给主机D,在主机S内部,上层的TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol, 用户数据报协议)的数据包已经传送到最底层的网络接口层,数据包即将发送出去。但是,此时主机S还不知道目的主机D的MAC地址MAC_D,就要先查询自己的ARP缓存表,查看里面是否有192.168.0.4这台主机的MAC地址。如果有,就将MAC_D封装在数据包中直接发送即可;如果没有,主机S就要向该局域网中所有主机发送一个ARP广播包(如:主机S的IP是192.168.0.3,硬件地址是MAC_S,想知道IP地址为192.168.0.4的主机的硬件地址是多少),该局域网中所有主机(包括主机A和主机D)就都收到该ARP广播包。主机A收到该ARP广播包后,查询IP地址不是自己,就将该数据包丢弃不予理会。而主机D收到该ARP广播包后,查询IP地址就是自己,主机D就单独向主机S发送含有回复信息的数据包(如:主机D的IP地址是192.168.0.4,硬件地址是MAC_D),这样主机S就知道目的主机D的MAC地址,并将目的地址MAC_D封装到要发送的数据包中发送出去;同时主机S还会动态更新自己的ARP缓存表,将192.168.0.4-MAC_D这一条记录添加进去,以后主机S再给主机D发送数据时,就不用再向该局域网中的所有主机发送ARP广播包。

    B、局域网感染ARP病毒情况下的数据包发送过程(即ARP病毒攻击的详细原理)。在上述网络正常情况下的数据包发送机制看上去很完美,似乎整个局域网也“天下太平”,并“相安无事”。但是,上述数据发送机制有一个致命的缺陷,即该机制是建立在对局域网中所有主机全部信任的基础之上的,并且局域网中任意一台主机发送的ARP数据包都是正确的。在实际的网络数据传输过程中,并不是所有主机都“安分守己”,而是经常存在“非法”主机。

  如在上述数据包的发送过程中,当主机S向该局域网所有主机发送一个ARP广播包(如:主机S的IP是192.168.0.3,硬件地址是MAC_S,想知道IP地址为192.168.0.4的主机的硬件地址是多少)后,主机D向主机S发送含有回复信息的数据包(如:主机D的IP地址是192.168.0.4,硬件地址是MAC_D)。同时,主机A也向主机S发送含有回复信息的数据包(如:主机A的IP地址是192.168.0.4,硬件地址是MAC_A),即此时主机A“冒充”自己的IP地址是主机D的IP地址,但是MAC地址写成自己的,并且主机A不停地发送同样的应答数据包,原本主机S的ARP缓存表中已经保存了一条正确的记录:192.168.0.4-MAC_D。但是,由于主机A不停地向主机S发送含有回复信息的数据包,这时主机S并不知道主机A发送的数据包是伪造的,导致主机S又重新动态更新自己的ARP缓存表,将ARP缓存表的记录修改为:192.168.0.4-MAC_A。其实,这是一条错误记录(该过程也叫ARP缓存表中毒),这样就导致以后凡是主机S要发送数据给主机D(IP地址为192.168.0.4的主机),都将会发送给MAC地址为MAC_A的主机A。因此,主机A“劫持”了由主机S发送给主机D的数据。

    同样,如果主机A再“过分”一些,它不“冒充”主机D,而是“冒充”该局域网的网关,将会发生更加严重的后果。如果局域网中一台主机要连接Internet互联网,那么所有收发的数据都要先经过网关,而后由局域网中的网关进行数据的转发,由网关发向互联网(假设该局域网网关的IP地址为192.168.0.1)。如果主机A向局域网不停地发送ARP欺骗广播数据包(如:主机A的IP地址是192.168.0.1,硬件地址是MAC_A)。这时,局域网中的其它主机并没有“察觉”到这个ARP欺骗广播数据包。因此,局域网中的其它主机都会动态更新自己的ARP缓存表,并且都在自己的ARP缓存表中添加一条记录为:192.168.0.1-MAC_A。这样,当局域网中的其它主机都要将数据包发送给网关(即向IP地址为192.168.0.1的主机发送数据)时,最后都会将数据包发送给MAC_A这台主机。因此,主机A就将会监听整个局域网发送给互联网的数据包,将会使整个局域网产生大量的ARP数据包造成网络阻塞。

    三、ARP病毒防范对策

    ARP病毒防范工作是我们对局域网进行维护和管理工作中一项不可忽视的重要工作。如何防范ARP病毒,需要在实践中不断研究、探索和总结。笔者认为可以采用以下一些对策来加以防范。

    1、在局域网主机上安装防火墙和杀毒软件,加固网络防线。因为,网络入侵者必须首先穿越局域网中防火墙的安全防线,才能接触局域网内部的主机。因此,利用防火墙的网络安全保护作用并选择、安装功能齐全和技术先进的防火墙(如:瑞星、诺顿、AntiARP、360安全卫士ARP防火墙等)是一种最基本也是最有效的防范病毒感染和入侵的方式。同时,局域网管理人员应该在局域网内部的主机上安装好正版杀毒软件,并进行定期地升级、更新与杀毒工作,以增强防御计算机病毒的能力。同时,利用一些防火墙软件(如:AntiARP、360安全卫士ARP防火墙等),也可以有效解决ARP攻击问题,而且可以通过历史记录查看攻击源的IP和MAC地址。

    2、采用静态分配IP地址方式,并捆绑局域网中所有主机的MA地址C和IP地址,杜绝IP 地址盗用现象。如果单位局域网的网络规模较小,建议采用静态分配IP地址方式来分配IP地址。采用该对策,可以有效免疫ARP病毒侵扰,并且可以达到规范网络管理的目的。同时,局域网管理人员可以在局域网的中心路由器或代理服务器上将所有上网主机的静态IP 地址与主机网卡的MAC 地址进行捆绑设置。如: ARP -s 192.16.0.4 00-EO-4C-6C-08-75。这样,可以有效地防止其他主机盗用IP 地址。如果是通过交换机连接,可以将主机IP地址、主机网卡的MAC 地址以及交换机端口绑定。

    3、修改MAC地址,采用反欺骗技术防范。局域网管理人员修改局域网中主机的MAC地址,就可以欺骗ARP 欺骗(即反欺骗),从而达到有效防范局域网中感染并运行ARP病毒的目的。

    4、采用ARP服务器,防止ARP病毒攻击。局域网管理人员可以采用ARP 服务器,通过该服务器查找自己的ARP 转换表来响应其他主机的ARP 广播数据包,从而达到这台ARP 服务器不被攻击和有效防范局域网中感染并运行ARP病毒的目的。

    5、对局域网中的交换机(Switch)端口进行设置,防止ARP病毒攻击。

    A、端口保护(亦即端口隔离):ARP 欺骗技术需要交换机(Switch)的两个端口直接通信。因此,从事局域网维护和管理的技术人员可以将交换机(Switch)端口设为保护端口,即可用来隔离局域网中主机之间互通信息。同一台交换机(Switch)的两个端口之间不能进行直接通讯,需要通过转发环节才能相互通信。

    B、数据过滤:如果需要对报文做更进一步的控制用户可以采用ACL (Access Control Label,访问控制列表)。ACL 利用IP 地址、TCP/UDP 端口等对进出交换机(Switch)的报文进行过滤,根据预设条件,对报文做出允许转发或阻塞的决定。在现有交换机产品中,华为和Cisco(思科)公司的交换机均支持IP ACL 和MAC ACL,每种ACL 分别支持标准格式和扩展格式。标准格式ACL 根据源地址和上层协议类型进行过滤,扩展格式ACL 根据源地址、目的地址以及上层协议类型进行过滤,异词检查伪装MAC 地址的帧。

    6、使用硬件屏蔽局域网中的主机,确保合法路由。局域网管理人员在局域网中设置好所有主机的网络路由,确保IP 地址能到达合法的路径(静态配置路由ARP 条目)。注意:使用交换集线器和网桥无法阻止ARP 欺骗。

    7、定期检查ARP缓存,防止ARP病毒攻击。局域网管理的人员应该定期用响应的IP 包中获得一个RARP(Reverse Address Resolution Protocol,反向地址解析协议)请求, 检测ARP 响应的真实性;或者采用网络管理软件进行定期轮询, 检测局域网中主机上的ARP 缓存表;或者使用防火墙连续监控网络。注意:在有使用SNMP(Simple Network Management Protocol,简单网络管理协议)的情况下,ARP 欺骗有可能导致陷阱包丢失。

    8、运行相关命令和软件,查找并切断局域网中所感染ARP病毒的主机。首先,在局域网的主机上运行ping命令(ping 局域网网关的IP地址),再运行ARP -a 命令,检测所得到的局域网网关所对应的MAC地址是否与实际情况相符,如不符,再去查找与该MAC地址对应的主机。其次,可以使用常用的抓包工具(如:Sniffer软件),分析所得到的ARP数据报,再利用杀毒软件或手工方式对ARP病毒进行处理。最后,可以使用常用的MAC地址扫描工具(如:Nbtscan)来扫描局域网中所有网段的IP地址和MAC地址对应表,从而对感染ARP病毒的主机所对应MAC地址和IP地址进行分析和判断。

  或者利用网络流量检测软件或设备,监视局域网的ARP广播包,查看其MAC地址是否正确。利用上述方法查找到局域网中所感染ARP病毒的主机后,立即断开该主机的网络连接,并进行杀毒和程序修复等技术处理。

    9、加强教育与培训,提高网络安全意识。局域网管理人员结合当前计算机、网络、病毒等发展趋势,定期地进行计算机、网络安全知识的教育和培训,切实提高网络安全意识。如:不要轻易下载、使用盗版、存在安全隐患的程序和软件;不要随便打开来历不明的电子邮件,尤其是电子邮件的附件;不要随便共享文件和文件夹,以免自己的计算机受到病毒的侵入。

    结束语:

    因为ARP病毒欺骗利用的是ARP协议本身的缺陷,而且到目前为止,还没有某一个方法彻底解决和完全控制ARP病毒欺骗攻击。而且,防范ARP病毒欺骗漏洞的各类攻击也是一个系统性工程,因此,比较有效的方法,应该是针对不同的网络环境,制定不同的解决方案来有效地阻断ARP病毒欺骗攻击。

  参考文献:

  1、Peter Szor(美)、段海新 杨波 王德强译:《计算机病毒防范艺术》 机械工业出版社 2007 年1月

  2、孟晓明:《基于ARP的网络欺骗的检测与防范》2005年

  3、张海燕:《ARP漏洞及其防范技术》网络安全 2005年

  4、杨尚森:《网络管理与维护技术》 电子工业出版社 2004年5月

特别说明:本站仅协助已授权的杂志社进行在线杂志订阅,非《国际病毒学杂志》杂志官网,直投的朋友请联系杂志社。
版权所有 © 2009-2024《国际病毒学杂志》编辑部  (权威发表网)   苏ICP备20026650号-8