显示标签为“ARP协议”的博文。显示所有博文
显示标签为“ARP协议”的博文。显示所有博文

2008年11月11日星期二

彻底解决局域网ARP攻击

一般ARP攻击的对治方法
现在最常用的基本对治方法是“ARP双向绑定”。
由于ARP攻击往往不是病毒造成的,而是合法运行的程序(外挂、网页)造成的,所杀毒软件多数时候束手无策。
所谓“双向绑定”,就是再路由器上绑定ARP表的同时,在每台电脑上也绑定一些常用的ARP表项。
“ARP双向绑定”能够防御轻微的、手段不高明的ARP攻击。ARP攻击程序如果没有试图去更改绑定的ARP表项,那么ARP攻击就不会成功;如果攻击手段不剧烈,也欺骗不了路由器,这样我们就能够防住50%ARP攻击。
但是现在ARP攻击的程序往往都是合法运行的,所以能够合法的更改电脑的ARP表项。在现在ARP双向绑定流行起来之后,攻击程序的作者也提高了攻击手段,攻击的方法更综合,另外攻击非常频密,仅仅进行双向绑定已经不能够应付凶狠的ARP攻击了,仍然很容易出现掉线。
于 是我们在路由器中加入了“ARP攻击主动防御”的功能。这个功能是在路由器ARP绑定的基础上实现的,原理是:当网内受到错误的ARP广播包攻击时,路由 器立即广播正确的ARP包去修正和消除攻击包的影响。这样我们就解决了掉线的问题,但是在最凶悍的ARP攻击发生时,仍然发生了问题----当ARP攻击 很频密的时候,就需要路由器发送更频密的正确包去消除影响。虽然不掉线了,但是却出现了上网“卡”的问题。
所以,我们认为,依靠路由器实现“ARP攻击主动防御”,也只能够解决80%的问题。
为了彻底消除ARP攻击,我们在此基础上有增加了“ARP攻击源攻击跟踪”的功能。对于剩下的强悍的ARP攻击,我采用“日志”功能,提供信息方便用户跟踪攻击源,这样用户通过临时切断攻击电脑或者封杀发出攻击的程序,能够解决问题。
彻底解决ARP攻击
事实上,由于路由器是整个局域网的出口,而ARP攻击是以整个局域网为目标,当ARP攻击包已经达到路由器的时候,影响已经照成。所以由路由器来承担防御ARP攻击的任务只是权宜之计,并不能很好的解决问题。
我们要真正消除ARP攻击的隐患,安枕无忧,必须转而对“局域网核心”――交换机下手。由于任何ARP包,都必须经由交换机转发,才能达到被攻击目标,只要交换机据收非法的ARP包,哪么ARP攻击就不能造成任何影响。
我们提出一个真正严密的防止ARP攻击的方案,就是在每台接入交换机上面实现ARP绑定,并且过滤掉所有非法的ARP包。这样可以让ARP攻击足不能出户,在局域网内完全消除了ARP攻击。
因为需要每台交换机都具有ARP绑定和相关的安全功能,这样的方案无疑价格是昂贵的,所以我们提供了一个折衷方案。
经济方案
我们只是中心采用能够大量绑定ARP和进行ARP攻击防御的交换机――Netcore 7324NSW,这款交换机能够做到ARP绑定条目可以达到1000条,因此基本上可以对整网的ARP进行绑定,同时能杜绝任何非法ARP包在主交换机进行传播。
这样如果在强力的ARP攻击下,我们观察到的现象是:ARP攻击只能影响到同一个分支交换机上的电脑,这样可能被攻击到的范围就大大缩小了。当攻击发生时,不可能造成整个网络的问题。
在此基础上,我们再补充“日志”功能和“ARP主动防御”功能,ARP攻击也可以被完美的解决。
ARP攻击最新动态
最近一段时间,各网吧发现的ARP攻击已经升级,又一波ARP攻击的高潮来临。
这次ARP攻击发现的特征有:
1、 速度快、效率高,大概在10-20秒的时间内,能够造成300台规模的电脑掉线。
2、 不易发现。在攻击完成后,立即停止攻击并更正ARP信息。如果网内没有日志功能,再去通过ARP命令观察,已经很难发现攻击痕迹。
3、 能够破解最新的XP和2000的ARP补丁,微软提供的补丁很明显在这次攻击很脆弱,没有作用。
4、 介质变化,这次攻击的来源来自私服程序本身(不是外挂)和P2P程序。

ARP欺骗攻击技术及其防范方法

什么是ARP协议

要想了解ARP欺骗攻击的原理,首先就要了解什么是ARP协议。ARP是地址转换协议的英文缩写,它是一个链路层协议,工作在OSI模型的第二层,在本层和硬件接口间进行联系,同时为上层(网络层)提供服务。

我们知道,二层的以太网交换设备并不能识别32位的IP地址,它们是以48位以太网地址(就是我们常说的MAC地址)传输以太网数据包的。因此IP地址与MAC地址之间就必须存在一种对应关系,而ARP协议就是用来确定这种对应关系的协议。

ARP工作时,首先请求主机发送出一个含有所希望到达的IP地址的以太网广播数据包,然后目标IP的所有者会以一个含有IP和MAC地址对的数据包 应答请求主机。这样请求主机就能获得要到达的IP地址对应的MAC地址,同时请求主机会将这个地址对放入自己的ARP表缓存起来,以节约不必要的ARP通 信。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用(Windows系统这个时间为2分钟,而Cisco路由器的这个时间为5分 钟),就会被删除。通过下面的例子我们可以很清楚地看出ARP的工作机制。

假定有如下五个IP地址的主机或者网络设备,它们分别是:

主机A 192.168.1.2
主机B 192.168.1.3
网关C 192.168.1.1
主机D 10.1.1.2
网关E 10.1.1.1
假 如主机A要与主机B通信,它首先会检查自己的ARP缓存中是否有192.168.1.3这个地址对应的MAC地址,如果没有它就会向局域网的广播地址发送 ARP请求包,大致的意思是192.168.1.3的MAC地址是什么请告诉192.168.1.2,而广播地址会把这个请求包广播给局域网内的所有主 机,但是只有192.168.1.3这台主机才会响应这个请求包,它会回应192.168.1.2一个ARP包,大致的意思是192.168.1.3的 MAC地址是02-02-02-02-02-02。这样的话主机A就得到了主机B的MAC地址,并且它会把这个对应的关系存在自己的ARP缓存表中。之后 主机A与主机B之间的通信就依靠两者缓存表里的MAC地址来通信了,直到通信停止后2分钟,这个对应关系才会从表中被删除。

再来看一个非局域网内部的通信过程。假如主机A需要和主机D进行通信,它首先会发现这个主机D的IP地址并不是自己同一个网段内的,因此需要通过网 关来转发,这样的话它会检查自己的ARP缓存表里是否有网关192.168.1.1对应的MAC地址,如果没有就通过ARP请求获得,如果有就直接与网关 通信,然后再由网关C通过路由将数据包送到网关E,网关E收到这个数据包后发现是送给主机D(10.1.1.2)的,它就会检查自己的ARP缓存,看看里 面是否有10.1.1.2对应的MAC地址,如果没有就使用ARP协议获得,如果有就是用该MAC地址与主机D通信。

通过上面的例子我们知道,在以太局域网内数据包传输依靠的是MAC地址,IP地址与MAC对应的关系依靠ARP表,每台主机(包括网关)都有一个ARP缓存表。在正常情况下这个缓存表能够有效保证数据传输的一对一性,像主机B之类的是无法截获A与D之间的通信信息的。

但是主机在实现ARP缓存表的机制中存在一个不完善的地方,当主机收到一个ARP的应答包后,它并不会去验证自己是否发送过这个ARP请求,而是直 接将应答包里的MAC地址与IP对应的关系替换掉原有的ARP缓存表里的相应信息。这就导致主机B截取主机A与主机D之间的数据通信成为可能。

首先主机B向主机A发送一个ARP应答包说192.168.1.1的MAC地址是02-02-02-02-02-02,主机A收到这个包后并没有去 验证包的真实性而是直接将自己ARP列表中的192.168.1.1的MAC地址替换成02-02-02-02-02-02,同时主机B向网关C发送一个 ARP响应包说192.168.1.2的MAC是02-02-02-02-02-02,同样,网关C也没有去验证这个包的真实性就把自己ARP表中的 192.168.1.2的MAC地址替换成02-02-02-02-02-02。当主机A想要与主机D通信时,它直接把应该发送给网关 192.168.1.1的数据包发送到02-02-02-02-02-02这个MAC地址,也就是发给了主机B,主机B在收到这个包后经过修改再转发给真 正的网关C,当从主机D返回的数据包到达网关C后,网关也使用自己ARP表中的MAC,将发往192.168.1.2这个IP地址的数据发往 02-02-02-02-02-02这个MAC地址也就是主机B,主机B在收到这个包后再转发给主机A完成一次完整的数据通信,这样就成功地实现了一次 ARP欺骗攻击。

因此简单点说,ARP欺骗的目的就是为了实现全交换环境下的数据监听。大部分的木马或病毒使用ARP欺骗攻击也是为了达到这个目的。

如何发现及清除

局域网内一旦有ARP的攻击存在,会欺骗局域网内所有主机和网关,让所有上网的流量必须经过ARP攻击者控制的主机。其他用户原来直接通过网关上 网,现在却转由通过被控主机转发上网。由于被控主机性能和程序性能的影响,这种转发并不会非常流畅,因此就会导致用户上网的速度变慢甚至频繁断线。另外 ARP欺骗需要不停地发送ARP应答包,会造成网络拥塞。

一旦怀疑有ARP攻击我们就可以使用抓包工具来抓包,如果发现网内存在大量ARP应答包,并且将所有的IP地址都指向同一个MAC地址,那么就说明 存在ARP欺骗攻击,并且这个MAC地址就是用来进行ARP欺骗攻击的主机MAC地址,我们可以查出它对应的真实IP地址,从而采取相应的控制措施。另 外,我们也可以到路由器或者网关交换机上查看IP地址与MAC地址的对应表,如果发现某一个MAC对应了大量的IP地址,那么也说明存在ARP欺骗攻击, 同时通过这个MAC地址查出用来ARP欺骗攻击的主机在交换机上所对应的物理端口,从而进行控制。


如何防范?

我们可以采取以下措施防范ARP欺骗。

(1)在客户端使用arp命令绑定网关的真实MAC地址命令如下:

arp (先清除错误的ARP表)

arp 192.168.1.1 03-03-03-03-03-03 (静态指定网关的MAC地址)

(2)在交换机上做端口与MAC地址的静态绑定。

(3)在路由器上做IP地址与MAC地址的静态绑定。

(4)使用“ARP SERVER”按一定的时间间隔广播网段内所有主机的正确IP-MAC映射表。

(5)最主要是要提高用户的安全意识,养成良好的安全习惯,包括:及时安装系统补丁程序;为系统设置强壮的密码;安装防火墙;安装有效的杀毒软件并及时升级病毒库;不主动进行网络攻击,不随便运行不受信任的软件。

ARP透视——ARP原理

在局域网中,是通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的。ARP协议对网络安全具有极其重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如下表所示。

主机 IP地址 MAC地址
A 192.168.1.1 aa-aa-aa-aa-aa-00
B 192.168.1.2 bb-bb-bb-bb-bb-11
C 192.168.1.3 cc-cc-cc-cc-cc-22
D 192.168.1.4 dd-dd-dd-dd-dd-33

我们以主机A(192.168.1.1)向主机B(192.168.1.2)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.1.2的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.16.2的MAC地址是bb-bb-bb-bb-bb-11”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。

从上面可以看出,ARP协议的基础就是信任局域网内所有的人,那么就很容易实现在以太网上的ARP欺骗。