一种ARP攻击检测与定位方法

2010-09-21 02:43阮清强
电子测试 2010年1期
关键词:局域网IP地址队列

阮清强

(重庆邮电大学 通信与信息工程学院, 重庆 400065)

0 引言

随着互联网的广泛应用,内部网络的安全问题逐渐成为人们关注的焦点。目前,ARP攻击是局域网的主要攻击手段之一,可以用来监听特定主机的通信数据,甚至可以恶意破坏指定主机与外部的通信,并且具有隐蔽性、随机性的特点,给网络安全运行带来巨大隐患,是局域网安全的首要威胁[1]。因此,如何准确、高效、快速地检测出网络中是否存在ARP攻击,并对攻击主机进行精确的定位,是每个网络管理者都必须要解决的一个难题。本文提出了一种检测和定位的方法,利用该方法可以检测到网络中存在的绝大多数ARP攻击包并对发送攻击包的主机进行定位。

1 ARP协议及ARP攻击原理

ARP(Address Resolution Protocol,地址解析协议)是TCP/IP协议族中的一个重要协议,它负责将网络层(IP层,OSI的第三层)地址转换为数据链路层(MAC层,OSI的第二层)地址。在网络交换机中维护的ARP表支持IP地址和MAC地址的一一对应关系。提供2者的相互解析。在目前广泛使用的以太网中,ARP的功能是提供从32位的IP地址到48位的硬件地址(MAC地址)的转换。

在基于以太网技术的局域网中,ARP协议是建立在各主机之间相互信任的基础上的,根据ARP协议的实现机制,存在以下可以利用的缺陷:(1)ARP高速缓存根据所接收到的ARP协议包随时进行动态更新;(2)ARP协议没有连接的概念,任意主机即使在没有ARP请求的时候也可以作出应答;(3)ARP协议没有认证机制,只要接收到的协议包格式是正确的,主机就无条件地根据协议包的内容刷新本机ARP缓存,并不检查该协议包的合法性[2]。

ARP欺骗攻击的核心思想就是向目标主机发送伪造ARP请求包或应答包,并使目标主机接收该数据包中伪造的IP地址与MAC地址之间的映射对,以此来更新目标主机的ARP缓存,从而达到欺骗的目的。

2 ARP攻击检测与定位方法

ARP攻击检测与定位的步骤如图1所示。

2.1 抓包

首先利用WinPcap获取局域网中的所有ARP数据包。鉴于目前绝大多数局域网都采用交换机进行组网,因此,为了捕捉到所有的ARP数据包,必须将检测软件部署在交换机的镜像端口,并将主机网卡设置成为混杂模式。

图1 ARP攻击检测与定位流程图

2.2 数据包结构分析

在ARP数据包中,其以太头部和ARP分组中都包含了本机的MAC地址,对于正常的ARP数据包,二者应该是一致的。而许多攻击者为了隐藏攻击主机,往往会在数据包中插入虚假的地址,这就造成了许多ARP攻击包中二者不一致的情况。因此,如果发现一个ARP数据包中的以太头部和ARP分组中的MAC地址不一致,则可以认定这是一个ARP攻击包。

2.3 与确定的映射对比

在实际网络中,一些主机的IP地址和MAC地址通常是固定的,将这些映射录入到数据库中。当接收到一个ARP数据包时,将其中的映射与数据库中的映射进行对比,如果其中一项相符,而另一项不符,则该ARP数据包为攻击包。

2.4 伪造包判断

流程如图2所示。在系统中动态地维护2个队列,一个请求队列和一个应答队列。当接收到的ARP数据包为请求包时,将其加入到请求队列。当接收到的数据包为应答包时,首先在请求队列中查看是否存在相应的请求包,如果不存在,说明该包是没有请求的应答包,是一个伪造包。如果存在相应的请求包,则在应答队列中查看是否存在相应的应答包,如果存在,说明在该包之前已经接收到相应的应答包,则其中一个应答包必定为伪造包。如果在应答队列中不存在相应的应答包,则将请求队列中相应的项删除,添加到应答队列中。

图2 伪造包分析流程图

2.5 定位和报警

首先读取交换机的Cache,从中查找攻击主机的IP地址、MAC地址和对应的交换机端口,将该信息提交给网络管理员并保存到系统日志,进行下一步的处理。

3 测试结果

在Windows系统中,利用WinPcap开发包实现了这种检测和定位方法。利用ArpSpoof工具和自己编写ARP伪造包发送程序,在2种不同的网络环境下对软件进行了测试:

在单个交换机的小型局域网中,该软件运行良好,能够检测到绝大多数ARP攻击包,并能向系统报告发送攻击数据包的主机的详细信息,包括MAC地址、IP地址和交换机端口,根据这些信息,网络管理员能够很方便地查找到攻击主机的具体位置并进行处理。

在多个交换机级联组成的局域网中,将装有该软件的主机接到最上一级的交换机镜像端口上,测试结果表明,当前交换机下的某台主机攻击当前交换机下的其它主机时,软件能够检测到攻击并能准确定位;当前交换机下的主机攻击其它交换机下的主机时,软件能检测到一些种类的攻击,也能够进行定位;其它交换机下的主机对当前交换机下的主机进行攻击时,软件能检测到大多数形式的攻击,但只能提供该攻击主机的IP地址和MAC地址以及来源于哪台交换机,但不能判断该攻击主机位于该交换机的哪个端口;非当前交换机下的2台主机之间存在ARP攻击时,软件不能检测出攻击的存在。

4 结束语

针对ARP攻击数据包的特征和目前大多数局域网都采用交换机组网的这一特点,提出了一种将检测软件部署在交换机镜像端口的检测和定位方法。该方法在实际网络环境中运行良好,能够有效地检测出网络中存在的ARP攻击并对攻击主机进行准确的定位。但正如在测试结果中发现的一样,该方法有一定的局限性,因此,下一步的工作是进一步完善该方法,使其适用于绝大多数的网络环境。

[1]秦丰林,段海新,郭汝廷. ARP欺骗的监测与防范技术综述[J]. 计算机应用研究, 2009(1):30-33.

[2]郭卫兴,刘旭,吴灏. 基于ARP缓存超时的中间人攻击检测方法[J].计算机工程, 2008(7):133-135.

[3]林宏刚,陈麟,王标,吴彦伟. 一种主动检测和防范ARP攻击的算法研究[J]. 四川大学学报,2008(5):143-149.

[4]Tripunitara, MV. Dutta P. A middleware approach to asynchronous and backward compatible detection and prevention of ARP cache poisoning[C]. Proceedings of 15th Annual Computer Security Applications Conference. 1999:303-309.

[5]Chomsiri T. Sniffing Packets on LAN without ARP spoofing[C]. Convergence and Hybrid Information Technology,Third International Conference. 2008:472-477.

[6]王燕, 张新刚.基于ARP协议的攻击及其防御方法分析[J].微计算机信息, 2007, 23(12):72-74.

[7]张洁, 武装, 陆倜. 一种改进的ARP协议欺骗检测方法[J].计算机科学, 2008, 35(3):53-54.

[8]范俊俊, 鲁云萍. 基于交换机的ARP安全机制研究[J].计算机工程与设计,2008,29(16):4162-4164.

猜你喜欢
局域网IP地址队列
轨道交通车-地通信无线局域网技术应用
队列里的小秘密
基于多队列切换的SDN拥塞控制*
铁路远动系统几种组网方式IP地址的申请和设置
基于VPN的机房局域网远程控制系统
在队列里
IP地址切换器(IPCFG)
基于802.1Q协议的虚拟局域网技术研究与实现
丰田加速驶入自动驾驶队列
局域网性能的优化