局域网内ARP攻击原理及检测防御方法

2012-04-29 12:12俞祖宏
新闻世界 2012年6期

俞祖宏

【摘要】本文介绍网络ARP协议及ARP攻击的原理,同时阐述如何检测和防御ARP攻击。

【关键词】ARP;ARP协议;攻击原理;检测防御

工作中是否遇到过在局域网内上网时会突然掉线,过一段时间后又会恢复正常;或者是网速是否时快时慢,极其不稳定(通常所说的“卡”),但单机进行光纤数据测试时一切正常?或者是IE浏览器频繁出错,以及一些常用软件出现故障等等。如果出现了上述状况,那么就要小心了,因为很可能受到了ARP攻击。那么什么是ARP呢?如何受到攻击的?该怎么解决呢?

一、什么是ARP?

ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址(相当于主机的“身份证”)。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

二、ARP协议的工作原理

正常情况下,每台主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址的对应关系。当源主机需要将一个数据包发送到目标主机时,会按照下列步骤:

1、首先检查自己ARP列表中是否存在该IP地址对应的MAC地址。如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目标主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址以及目标主机的IP地址。

2、网络中所有的主机收到这个ARP请求后,会检查数据包中的目标IP地址是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个ARP响应数据包,告诉对方自己就是它需要查找的MAC地址。

3、源主机收到这个ARP响应数据包后,将得到目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。

如图:

(1)源主机192.168.1.1要发送网络包给192.168.1.3,但不知MAC地址?

(2)在局域网内发出广播包“192.168.

1.3的MAC地址是什么?”

(3)其他机器不回应,只有192.168.

1.3回应“192.168.1.3的MAC地址是CC

-CC-CC-CC-CC-CC”;

(4)源主机192.168.1.1将IP地址192.

168.1.3和MAC地址CC-CC-CC-CC-CC

-CC添加到自己的ARP列表中,并将网络包发送。

从上面可以看出,ARP协议的基础就是信任局域网内所有的人,那么就很容易在局域网上实现ARP欺骗攻击。更何况ARP协议是工作在更低于IP协议的协议层,因此它的危害就更加隐蔽。

三、ARP攻击的常见种类及工作原理

其实,此起彼伏的瞬间掉线或大面积的断网大都是ARP欺骗攻击在作怪。常见的ARP攻击有仿冒网关攻击、欺骗网关攻击(这两种合起来也叫拒绝服务攻击(DoS, Denial of Service))、ARP“中间人”攻击(Man in the Middle)、ARP报文泛洪攻击(MAC Flooding)四种,我们根据影响范围和出现频率分别介绍如下:

1、仿冒网关攻击。攻击者伪造ARP报文,报文的发送源IP地址为网关IP地址,但是发送源MAC地址为伪造的MAC地址,攻击者将这样的报文发送到被攻击的主机上,被攻击的主机更新了自己的ARP列表。这样一来,被攻击的主机访问网关时,被重定向到一个错误的MAC地址上,导致该用户无法正常访问外网。攻击者还可使用第三方PC机的MAC地址作为偽造的MAC地址,这样,形成连锁反应,导致很难查找到真正的攻击者。

2、欺骗网关攻击。攻击者伪造ARP报文,报文的发送源IP地址为同网段内某一合法用户的IP地址,但是发送源MAC地址为伪造的MAC地址,攻击者将这样的报文发送到网关,网关更新了自己的ARP列表,将原合法用户的IP地址重定向到伪造的MAC地址上。这样一来,网关发送到该合法用户的所有数据,被重定向到一个错误的MAC地址上,导致该用户无法正常访问外网。

3、ARP“中间人”攻击。ARP“中间人”攻击,又称为ARP双向欺骗。如下图所示,如果恶意攻击者主机B想探听主机A和主机C之间的通信,它可以给这两台主机发送伪造的ARP应答报文,使主机A和主机C用主机B的MAC地址更新自身的ARP列表。此后,主机A和主机C之间看似“直接”的通信,实际上都是通过恶意攻击者所在的主机B间接进行的,也就是说,主机B担当了“中间人”的角色,它可以对信息进行窃取或篡改。

4、ARP报文泛洪攻击。攻击者利用工具构造大量的ARP报文发往交换机、网关、路由器或某台PC机的某个端口,导致CPU忙于处理ARP协议,负担过重,造成网络设备其他功能不正常甚至瘫痪。

四、ARP攻击的检测

局域网内的机器遭到ARP病毒欺骗攻击,如果找到源头的机器,将其病毒或木马杀掉,局域网内机器就会恢复正常,那么如何才能快速定位到攻击的源头机器呢?

1、用arp a命令。当发现上网明显变慢,或者突然掉线时,我们可以用arp -a命令来检查ARP表。如果发现网关的MAC地址发生了改变,或者发现有很多IP地址指向同一个MAC地址,那么肯定就是ARP攻击所致。

2、利用彩影ARP防火墙软件查看。如果网卡是处于混杂模式或者ARP请求包发送的速度大或者ARP请求包总量非常大,判断这台机器有可能就是“元凶”。定位好机器后,再做病毒信息收集工作。

3、通过路由器的“系统历史记录”查看。由于ARP攻击的木马程序发作的时候会发出大量的数据包导致局域网通讯阻塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢。当ARP攻击的木马程序停止运行时,用户会恢复从路由器上网,切换过程中用户会再断一次线。

在路由器的“系统历史记录”中看到大量如下的信息:

MAC Chged 10.16.103.124

MAC Old 00:02:8c:36:d1:7f

MAC New 01:05:6d:60:c7:18

这个消息代表了用户的MAC地址发生了变化,在ARP攻击木马开始运行的时候,局域网所有主机的MAC地址更新为病毒主机的MAC地址(即所有信息的MAC New地址都一致为病毒主机的MAC地址),同时在路由器的“用户统计”中看到所有用户的MAC地址信息都一样。

如果是在路由器的“系统历史记录”中看到大量MAC Old地址都一致,则说明局域网内曾经出现过ARP攻击(ARP攻击的木马程序停止运行时,主机在路由器上恢复其真实的MAC地址)。

五、 ARP攻擊的防御办法

ARP攻击的核心就是破坏网络设备的ARP表内容,使得设备无法查到IP对应的正确的MAC地址,导致报文发送错误,网络通信瘫痪。由于ARP攻击的病毒不同于其他病毒,它的攻击是基于网络协议的天然缺陷,所以ARP攻击的防御也不同于常见病毒,单靠传统的杀毒软件和防火墙往往是头疼医头、脚痛医脚,难以根除。而且,ARP病毒不仅攻击PC机,还可攻击路由器、核心交换机、接入交换机等网络设备,传播和危害范围较广。所以,仅靠单一设备、单一解决方案防御ARP病毒是不够的。根据本人的实际操作经验,关于ARP病毒具体防范措施,执行以下步骤,可有效防范ARP病毒攻击:

1、做好IP-MAC地址的绑定工作,在交换机和客户端都要绑定,这是可以使局域网免疫ARP病毒侵扰的好办法。一些中高端核心交换机,可以采用认证模式的静态接入绑定或DHCP监控模式的动态接入绑定。

2、全网所有的电脑都打上MS06-014和MS07-017这两个补丁,这样可以免疫绝大多数网页木马,防止在浏览网页的时候感染病毒、木马。

3、在网络正常时保存好全网的IP-MAC地址对照表,这为以后一旦网络中ARP病毒,能快速、方便地查找攻击电脑。

4、禁用系统的自动播放功能,防止病毒从U盘、移动硬盘、MP3等移动存储设备进入到计算机。

5、指导好网络内使用者不要随便点击打开QQ、MSN等聊天工具上发来的链接信息,不要随便打开或运行陌生、可疑文件和程序,如邮件中的陌生附件,外挂程序等。

6、部署网络流量检测设备或软件,时刻监视全网的ARP广播包,查看网络内设备的MAC地址是否正确。

7、部署杀毒软件和ARP防火墙,定期升级病毒库,定期全网杀毒,使每台电脑都具备最新的防护功能。

8、为防止ARP报文泛洪攻击对局域网造成的阻塞,交换机或路由器还需开启端口ARP报文限速功能。

总之,有网络的地方,就有网络安全的问题。在局域网中,ARP攻击是我们无法预料和绝对防止的,但我们能够通过了解其原理,做到提前检测,提前防范,将其可能造成的损失降到最低。

参考文献

①李海鹰、程灏,《针对ARP攻击的网络防御模式设计与实现》,《计算机工程》,2005(5)

②唐正军、李建华:《入侵检测技术》[M].北京:清华大学出版社,2012

(作者单位:芜湖日报报业集团技术保障部)

责编:刘冰石