ARP协议漏洞攻击与防范的研究

时间:2022-06-25 07:16:15

ARP协议漏洞攻击与防范的研究

摘要:局域网交换网络使用ARP协议完成IP地址和MAC地址的转换,由于ARP协议本身存在漏洞可以被攻击者利用,本文在分析各种利用ARP漏洞攻击的基础上,提出了一些结合实际的解决办法。

关键词:地址解析协议;绑定;ARP欺骗;交换网络

中图分类号:TP393.08文献标识码:A文章编号:1007-9599 (2011) 06-0000-02

ARP Protocol Flaws Attacks and Prevention

Yang Yongping,Ma Weimin,Zeng Yuxiong

(Information Technology College,Beijing Normal University,Zhuhai,Zhuhai519085,China)

Abstract:LAN switching network uses ARP protocol convert IP address to MAC address,there are loopholes in the ARP protocol itself can be exploited by attackers,This paper analyzes the various attacks on the basis of ARP vulnerabilities and proposed some solutions against attacks.

Keywords:Address resolution protocol;Bind;ARP spoofing;Switching network

一、交换式局域网同时使用IP地址和MAC地址

网络上的各个节点之间要进行数据通信,需要编址。在网络层的编址称为IP地址,数据链路层中用来标识节点的是MAC地址,对于目前主流的以太网和802.11无线LAN,MAC地址的长度都是6字节。IP地址具有层次结构,分为网络部分和主机部分,主机移动或者接入点改变时,节点的IP地址需要改变。而MAC地址具有扁平结构,不论适配器移动到哪里都不会变化,任何两个适配器的MAC地址都不相同。

节点同时需要网络层地址和MAC地址,主要是由于:

1.LAN是为任意网络层协议设计的,不只为了IP和因特网,适配器需要支持其它协议如IPX。

2.如果使用IP地址代替MAC地址,则IP地址必须存储到适配器的RAM中,每次适配器移动或加电时需要重新配置。

3.如果MAC不使用任何地址,则只有网络层能够核对每个数据帧是否匹配,这样主机将被LAN上发送的每个帧中断,而使用MAC过滤则可工作于适配器的硬件,效率要高得多。因此,在OSI/RM体系结构中,网络层以上节点寻址通过IP地址,网络层以下则是通过MAC地址寻址。MAC地址是局域网中进行网络通信的基础。

二、ARP协议工作过程

局域网中的两台主机(两个节点)之间通信,通常我们只需指定IP地址或域名地址,即可发送数据包或建立连接。而实际的数据包传输是通过MAC地址实现的,因此需要进行IP地址和MAC地址之间的转换。IP地址和MAC地址之间的转换,对于因特网而言,是地址解析协议ARP(Address Resolution Protocol)[RFC 826]的工作。

在局域网中,假定同一LAN中的二台主机,IP为192.168.0.1的源主机A向IP为192.168.0.254的目的主机B发送数据,其通信过程如下:

1.主机A根据以往在网络中与其他节点的通信,在自己的ARP缓冲区中维护一个ARP列表,以表示网络中节点IP地址和MAC地址的对应关系。通常情况下客户端的ARP列表是网关或本网段服务器所对应的IP+MAC。

2.A要发送一个数据包到B,先检查自己的ARP表是否存在该包中所包含的B节点IP地址及对应的MAC地址。如果有,则读取并发送到这个MAC地址;如果没有,则使用ARP协议来完成,A向本网段发起一个ARP请求的广播包,查询目标节点IP地址对应的MAC地址。ARP请求数据包里包括源节点的IP地址、硬件地址,接收方IP地址,目的MAC地址为广播地址。响应包与此相同。

3.本网段所有节点都收到这个ARP请求,它们会检查数据包中的目标IP地址是否和自己的IP地址一致。如果不相同,则忽略此数据包;如果相同,则先将源节点的IP+MAC对添加到自己的ARP表,如果本地ARP表已经包含此信息,则覆盖此条目,然后给源节点A发送一个ARP响应数据包,告诉对方自己是他需要查找的MAC地址节点。

4.源节点A在收到这个ARP相应数据包后,将得到的目标节点的IP+MAC对添加到自己的ARP表,并利用此信息传送数据。如果源节点一直没有收到ARP响应数据包,表示ARP查询失败。

查询ARP报文在广播帧中发送,响应ARP报文在一个标准帧中发送。另ARP是即插即用的,一个节点的ARP表是自动建立的,一个节点断开连接,则它的信息会从子网的节点中删除掉。如果目的主机和源主机不在同一个网段,则源主机会将信息发送到网关(路由器),由网关转发到目的地址。

三、ARP协议的漏洞

利用ARP协议的特点,还可以帮助自动提醒网段内是否有IP地址冲突。然ARP协议虽然高效,却存有漏洞。主要原因在于,ARP表是动态更新的,每一个IP+MAC条目都有一定的有效时限,ARP表只保留最近的条目。ARP是无状态的协议,即没有发出过查询ARP报文的节点,也可以接收响应ARP报文。ARP没有认证机制,对ARP报文的源节点和目的节点都不需要验证,当节点收到一个响应ARP报文,节点就无条件的更新或插入一个此IP+MAC条目。恶意节点可以包含虚假的IP+MAC的响应ARP报文,更新攻击目标的ARP缓存。

四、ARP攻击

由于ARP协议的漏洞容易实现局域网内欺骗的特点,局域网节点容易受到如下攻击:

1.攻击者冒充一个合法的用户。这将导致合法用户提示IP冲突,不能正常上网。

2.攻击者冒充网关。这将导致本网段所有的节点将出网的数据包重定向到冒充的节点,本网段的所有节点都不能上网。

这两种攻击都会发生于攻击者要独享带宽等目的的攻击,主要针对可用性,危害性尚不算大。

3.双向欺骗,充当中间人。攻击者对普通用户冒充是网关,对网关冒充是普通用户。当节点A发送数据包时,将会先经过攻击者节点,然后重定向到网关;从网关返回的数据,直接返回到攻击者节点,然后才返回到普通用户。这种情况下,网关和普通用户都以为自己在正常的使用网络,但实际上所有的数据都会被攻击者节点窃听和分析,被窃听敏感数据和信息,如游戏、QQ、银行等账号和密码。如果网段内节点较多,也会发现上网速度明显变慢。

4.ARP洪水攻击。攻击者伪造大量的ARP报文,使得正常的ARP报文无法更新到各个节点的ARP表,局域网络瘫痪。

5.针对交换机的Dos攻击。一般交换网络采用二层交换机,此类交换机维护一个自身ARP表,用于映射MAC地址对应的交换机的端口号,这个缓存可容纳的条目是有限的,当有大量的不同MAC地址的伪造ARP包到达,可以造成交换机拒绝服务,不能正常转发数据,使得交换机所连的所有网络中断。

包含有ARP欺骗功能的病毒称为ARP病毒,最大的威胁是双向欺骗的窃听方式。这种特点还会被其它病毒、木马所利用,甚至可以达到任意网页挂马的攻击目的。攻击者只要窃听到有主机访问WEB页,则把预先准备好的木马连接网址添加到从外部返回给主机的数据中,这样不管主机访问哪个WEB页,得到的数据里都包含了木马地址,导致攻击者可任意控制被攻击主机。

五、针对ARP漏洞攻击的解决方案

(一)检测ARP攻击及定位攻击源

正常使用情况下,本网段内数据包主要在各节点和网关之间传输,或由本网段内服务器和客户端之间传递,客户端之间很少有数据发送。针对这个情况,设计检测ARP攻击方法。可以采用两种方法,其一为使用抓包软件在局域网内抓取ARP的Replay包,如果最后的MAC地址不是真实网关,那么说明有ARP欺骗存在,攻击者就是此MAC所指向的主机。此种方法简单易行,任何用户都可以执行,误判率较小,但须在局域网内操作。另外一种方法是登录局域网的上联三层交换机,查看ARP表,如果存在一个MAC对应多个端口的情况,那么就表明存在ARP欺骗,地址就是所对应的MAC节点。这种操作可以通过远程完成。

(二)ARP欺骗的控制方法

1.绑定静态IP地址和MAC地址。所有的客户端机器做网关IP和网关MAC地址静态绑定,而在网关上做本网段内所有客户机IP地址和MAC地址的绑定。这样任何冒充网关的响应ARP包都会被客户端拒绝,冒充客户端的响应ARP包被网关拒绝。这些步骤可以做成一个自动批处理文件,加入到启动,每次开机自动执行。

2.交换机上绑定端口和MAC地址。每台主机的MAC地址是唯一且固定的,如果来自该端口的MAC地址与绑定的MAC地址不符合,就自动封锁该端口。但是碰到适配器损坏等情况处理起来可能较没有效率。

3.IP+MAC+端口绑定。只有正确的IP+MAC的数据包在绑定的端口才能传输通过。

4.配置具有VLAN功能的交换机或路由器,将网络按照易变\稳定的标准划分成不同的VLAN,这样即使发生了ARP欺骗攻击,也可以限制在一个较小的范围。

5.使用ARP服务器,取代主机的ARP应答功能。这需要设置所有的客户端的行为,让他们收到ARP请求后不发送ARP响应数据包。如果网络较大,则服务器负荷比较重,可能要求多个服务器。

6.使用ARP防火墙,设定不允许发送没有ARP请求的响应ARP包。这将使得感染ARP病毒的主机不发送伪造的响应ARP包。这要求所有的客户端都安装ARP防火墙才能有效。

六、结语

在实际应用中,如果网络终端经常变动,则静态绑定并不适用,也可多种方法联合使用。一种可取的方法是VLAN技术与绑定方法配合使用,可以灵活使用的网址单独成为一个VLAN,降低发生ARP攻击时候的影响范围。如果预算足够,也可以使用具有防火阻断功能的路由器,不过由于路由器过滤发生在网络层,这将导致网络性能有一定程度的下降。安全控制的一个原则是不能因为抵御ARP而明显降低网络的使用性,包括禁止一些应该具有的功能或使得系统整体性能下降。因此,对外做好边界管理,对内进行培训与教育都是提高局域网安全必不可少的。在一些封闭、安全要求比较严格的环境,可通过一些上网接入验证协议来控制用户上网。

参考文献

[1]James F.Kurose Keith W.Ross Computer Networking A Top-Down Aproach Fourth Edition[M].北京:机械工业出版社,2009

[2]王达.网络工程师必读之网络安全系统设计[M].北京:电子工业出版社,2009

[3]李兢,许勇.ARP协议的安全漏洞及抵御分析[J].计算机系统应用,2010,19,3

[4]金叶兵,夏阳.大型局域网ARP攻击与防护[J].微计算机信息,2009,25,3

上一篇:对CAN总线下自动测控系统的应用分析 下一篇:中小企业SAN数据存储方案设计