局域网中ARP欺骗的防范

来源 :计算机时代 | 被引量 : 0次 | 上传用户:sychf1
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:阐述了ARP欺骗技术的基本原理,对ARP欺骗造成局域网无法正常通讯的实例进行分析,提出了针对ARP欺骗的多种防范办法。实际应用效果较好。
  关键词:ARP;局域网;MAC地址;IP地址;TCP/IP
  
  0 引言
  
  在大型局域网的维护工作中,最近常常发现网络时断时续的现象,而且断网的计算机也不固定。经过多方面的监控和测试,最终确定是时下比较流行的ARP欺骗病毒导致断网。由于这个病毒相当普遍而且易发,所以对ARP欺骗的原理做一些分析是很有必要的。
  
  1 ARP欺骗的基本原理
  
  ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写,是一个位于TCP/IP协议栈中的低层协议,负责将某个IP)地址解析成对应的MAC地址。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
  首先以总线型以太网上三台主机通信(如图1所示)了解一下ARP协议的通信过程。以太网中的主机A发送数据给主机B时,主机A会先检查自己的ARP缓存表中是否有主机B的MAC地址。如果没有,则主机A就会在网络上发送一个广播,向同一网段内的所有主机发出这样的询问:“IP地址为主机B(即IP地址为192.168.12)的MAC地址是什么?”网络上其他IP地址不匹配主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“IP地址为主机B的MAC地址是BB-BB-BB-BB-BB-BB”。这样,主机A就获得了主机B的MAC地址,并对ARP缓存表进行更新,随后就可以向主机B发送信息了。
  


  ARP欺骗过程如下:
  假定主机A是进行监听的主机(ARP欺骗发起的主机),B和C为以太网内任意两台台主机,处于被监听状态。
  ①首先主机A主动向主机B发送ARP应答报文,告诉主机B,192.168.1.3地址的MAC地址改为AA-AA-AA-AA-AA-AA(原先ARP表中的MAC地址是CC-CC-CC-CC-CC-CC)。
  ②主机A主动向主机c发送ARP应答报文,告诉主机c,192.168.1.2地址的MAC地址改为AA-AA-AA-AA-AA-AA(原先ARP表中的MAC地址是BB-BB-BB-BB-BB-BB)。
  ③这样,当主机c需要发数据给主机B的时候,因为主机B的IP地址192.168.1.2在c的ARP表中对应MAC地址是AA-AA-AA-AA-AA-AA,所以实际数据就转发到主机A上。同理,当主机B发送数据到主机c的时候,数据也同样发到了主机A上。
  还有一些ARP欺骗采用存储转发方式:将C给B发送消息,改为c先发消息给A,A再发给B;将B给C发送消息,改为B把消息发给A,A再发给C。
  
  2 ARP欺骗在局域网中的危害实例
  
  下面以最基础的通过VLAN通信的局域网为例,剖析ARP欺骗在局域网中的危害。
  如图2所示,假设局域网中的主机A、B、c、D等等处于VLAN2(192.168.2.0/24),Web代理服务器E处于VLANl(192.168.1.0/24),其IP地址是192.168.1.8。主机A想要连接Intemet,必须通过Web代理服务器E,A想发数据给E,就会发现服务器E的IP地址并不在自己所属网段内,因此必须通过网关s2来转发,因此,需要检查自己的ARP缓存表里是否有网关s2的IP地址(192.168.2.254)所对应的MAC地址,如果没有就通过ARP请求获得,如果有就直接与网关通信,然后再由网关S2通过路由将数据包送到网关S1,网关S1收到这个数据包后发现是送给服务器E的,就会检查自己的ARP缓存,看看里面是否有192.168.1.8对应的MAC地址,如果没有就使用ARP协议获得,如果有就用该MAC地址与Web服务器E通信。
  


  当主机D被植入了ARP欺骗的木马程序,D就主动向VLAN2中的所有主机发送ARP应答报文,告诉它们,网关S2的JP地址192.168.2254所对应的MAC地址是DD-DD-DD-DD-DD-DD(原先MAC地址是22-22-22-22-22-22)。所有接受到报文的主机都将更新自己的ARP缓存表。于是,当主机A想连接Internet的时候,会寻找IP地址为192.168.2.254的网关,因为对应的ARP缓存表已被修改,主机A最终找到的网关其实是主机D,于是把数据发送给了D,所以,主机无法连接Web服务器E,接入Internet失败。同样,其他的主机也无法接入Internet。
  ARP欺骗最典型的应用就是一些盗号木马。以传奇盗号软件为例,当软件开始运行的时候,ARP欺骗也同时运行。在主机A中输入账号密码想登录传奇服务器,由于A一直连不上Internet,而把它的相关数据一直发给监听的主机D,所以D就能通过这个手段获取A主机上的账号和密码。
  当然,这只是针对代理服务器连接Internet的攻击,同样,ARP欺骗也会影响局域网中的Ftp、Telnet、Email等服务,并导致无法使用。
  
  3 针对ARP欺骗的几种防范方案
  
  ARP欺骗实质上是利用主机对ARP应答的无条件信任,篡改主机的ARP缓存表,从而实现各种攻击。因此,为了防御ARP攻击,就需要保证主机的ARP缓存表的IP地址与MAC地址映射关系正确,尽可能地阻止非法篡改ARP缓存表。主要措施有以下几点:
  (1)主机上静态地解析ARP缓存表
  主机的IP和MAC地址对应表用手工维护,不作动态更新,可以避免ARP协议攻击。大多数三层交换机都支持这种方法。但是,这种方法的缺陷也很明显,移动或经常变化的网络环境中,这种静态手工维护MAC表的方式不适用。
  (2)使用ARP服务器
  使用ARP服务器查找自己的ARP转换表来响应其他机器的ARP广播,但必须确保这台ARP服务器不被黑客攻击。
  (3)使用DHCP服务器
  建立DHCP服务器(建议建在网关上),所有主机的IP地址及相关主机信息,只能从网关取得,网关开通DHCP服务,但是要给每个网卡绑定固定惟一的IP地址。一定要保持网内的机器IP/MAC一一对应的关系。
  (4)使用三层交换方式
  现在,更多的三层以至于四层交换机应用于局域网之中,第三层交换技术用的是IP路由交换协议,因而ARP欺骗攻击在这种交换环境下不起作用。但相对来讲第三(四)层交换机价格普遍比较昂贵。
  上面所讲的各种方法都是切实可行的,实际工作中,可以根据不同的网络环境采取不同的方法。
  举个例子,一个有将近1000台计算机的局域网,如果都采取第四钟方法使用三层交换机连接,显然费用过大,所以适当地在汇聚层采用几台三层交换机,可以有效地减少ARP欺骗的影响范围。此外,由于前面三种方法都必须把ARP表或者DHCP对应表一一输入,未免工作量太大(每台机器都要输入将近1000条记录),所以可以采用一种折衷的方式。如果网络更新不是太多的话,可以在第一种方法的基础上作部分修改,编写一个针对网关地址静态ARP解析的批处理文件,内容如下:
  @echo off
  arp d
  arp-s 1 92.1 68.2.254 22-22-22-22-22-22将这个批处理软件拖到每台主机“Windows—开始一程序一启动”中。于是主机每次启动的时候都会对网关进行静态ARP绑定。虽然,这样做也有缺陷:无法防范针对个别机器进行的ARP攻击,比如说图2中,D篡改的是主机B的地址,而非网关s2的地址时,就会发生断网现象,但这样的可能性很小,而且只有当任意主机和主机B通信的时候才会出现无法连接的情况。所以,对于如此大型的一个网络,这种小范围的、暂时的攻击是可以接受的。
  
  4 结束语
  
  ARP协议在设计上是有一定缺陷的,而且为了节省ARP缓存表内存,被解析过的ARP条目的寿命都是有限的:如果一段时间内该条目没有被引用过,则条目被自动删除。在工作站PC的Windows环境中,ARP条目的寿命是2分钟,在大部分Cisco交换机中,该值是5分钟。这就注定了ARP表是在不断更新的,因此给网络黑客们提供了可利用的漏洞。本文提出的几种解决办法,通过实践验证,可以有效地避免ARP欺骗发生。ARP病毒版本不断更新、不断升级,给各地的网络不断带来新的冲击与危害,但是如果网络管理员们能够不断学习新的防范欺骗类技术,提前做好防治工作,相信ARP的危害会减少到最小的程度。
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘 要:为了解决设备重启后的重新设置问题,提出了一种实现设备控制设置的存储和回调功能的方法。该方法采用VC++中的ADO数据库编程技术,将已发送的设备控制命令保存在数据源文件中,然后根据需要进行存取,实践证明,该方法简单、灵活,对设备的控制更加方便,提高了工作效率。  关键词:串口;数据库;控制命令;设备控制
期刊
摘 要:对Microsoft Speech SDK 5.1语音控制编程接口SAPI进行了分析,详细描述用C#语言结合这些接口开发语音应用程序的流程步骤,并最终以实例程序展示了共享型语音控制程序的开发流程。  关键词:Microsoft Speech SDK;语音合成;语音识别;C#;COM
期刊
摘 要:从系统的概述、结构、工作层次、软硬件支持、功能、程序设计事项方面对基于Dialogic电话卡、具有语音合成与语音识别功能的办公自动化系统进行了详细描述,并给出了测试结果与尚待解决的问题。  关键词:办公自动化系统;语音合成;语音识别;Dialogic电话语音卡
期刊
摘 要:传统的异常处理代码存在许多问题,尤其是代码不具有模块性,异常代码的维护很困难,面向方面编程(AOP)是一种新的编程技术,它弥补了面向对象编程(OOP)在跨越模块行为上的不足,利用AOP能够很好地分离出“异常处理”这一横切关注点,模块化构建松散耦合的系统-文章研究了在异常处理方面的通用策略和AOP在异常处理方面的应用,并给出了基于JBoss AOP的具体实现:该框架简单灵活,实用。  关键
期刊
摘 要:交又查询是结构化查询的一种,它将数据表通过字段的内容进行归类,形成行、列,重新组成新的表。MicrosonAccess作为一个小型关系型数据库管理工具,采用了特定的语法实现了快速、易用的交叉查询,针对这一语法,文章以实例的方式简要叙述了多种情况下交又查询的实现过程、讨论了使用Access进行交叉查询需要掌握的技巧,并对实际应用过程中容易碰到的问题作了分析,提出了相应解决办法。  关键词:
期刊
摘 要:基于Windows平台下.Net Framework中GDI+二维图形类库,以路径(GraphicsPath)表示图元形状,用仿射变换矩阵的乘法进行图元的连续变换,推导出图元不失真连续变换的条件,并应用图元变换的矩形区域归整化,解决了文本图元变换时字体放缩的难题。  关键词:Net;GDI+;图元变换;路径;矩阵;不失真;文本变换
期刊
摘 要:叙述了如何利用虚拟现实建模语言X3D语法,采用变通的方式来模拟面向对象编程的方法:借助X3D中的原型(PROTO)节点和Script节点,实现了面向对象编程中的如数据封装、继承等功能特性,并给出了相应的实例。  关键词:X3D;面向对象;原型;节点
期刊
摘要:利用Eclipse插件的可扩展机制开发了JTang-Eclipse插件。JTang-Eclipse插件是一个将JTang服务器集成到Eclipse上的工具,遵循Eclipse插件开发平台提供的框架,支持服务器生命周期管理,可以在JTang上部署J2EE archive包,并提供打包、部署描述符自动生成和JSP编译等辅助J2EE开发的功能。  关键词:Eclipse;插件;J2EE;PDE;A
期刊
摘要:对于一些大型的复杂网络系统,利用传统的集中式系统监控模型进行监控和故障诊断是困难的。文章给出了一种将移动Agent技术用于系统监控的分布式系统监控模型。利用这种系统监控模型可以减少网络数据流量,缩短系统监控与故障诊断时间。  关键词:分布式;移动Agent;系统监控;监控模型    0 引言    在现有的集中式系统监控体系中,客户端与服务器之间传递着大量的数据,网络流量很大,增加了网络拥塞
期刊
摘要:阐述了在共享式以太网中用Visual c++6.0实现的基于原始套接字技术的改进网络嗅探器实现。在设计上,除了捕获数据包以外,还进一步解析出应用层协议,运用模式匹配的KMP算法截获相关的数据信息,并保存到本机文件中。  关键词:共享式以太网;Visual C++6.0;原始套接字;网络嗅探器;KMP算法    0 引言    随着计算机和网络的普及,单独工作、不需要与其他用户交互的应用程序越
期刊