查看: 2424|回复: 1

ARP攻击及其防御技术的优缺点分析

[复制链接]
发表于 2009-2-2 14:49:56 | 显示全部楼层 |阅读模式


ARP
攻击,是指攻击者利用地址解析协议本身的运行机制而发动的攻击行为。包括进行对主机发动IP冲突攻击、数据包轰炸,切断局域网上任何一台主机的网络连接等。主要有以盗取数据为主要目的的ARP欺骗攻击,还有以捣乱破坏为目的的ARP泛洪攻击两种。争对这两种主要攻击方式,又细分为以下几种ARP攻击类型。


一、IP地址冲突


制造出局域网上有另一台主机与受害主机共享一个IP的假象。由于违反了唯一性要求,受害主机会自动向用户弹出警告对话框。大量的攻击数据包能令受害主机耗费大量的系统资源。对于windows操作系统,只要接收到一个ARP数据包,不管该ARP数据包符不符合要求,只要该ARP数据包所记录的源ip地址同本地主机相同但MAC地址不同,windows系统就会弹出ip地址冲突的警告对话框。根据ip地址冲突的攻击特征描述,这种类型的ARP攻击主要有以下几种:



(1)单播型的IP地址冲突:链路层所记录的目的物理地址为被攻击主机的物理地址,这样使得该ARP数据包只能被受攻击主机所接收而不被局域网内的其它主机所接收实现隐蔽式攻击。



(2)广播型的IP地址冲突:链路层所记录的目的物理地址为广播地址,这样使得局域网内的所有主机都会接受到该ARP数据包,虽然该ARP数据包所记录的目的ip地址不是受攻击主机的ip地址,但是由于该ARP数据包为广播数据包,这样受攻击主机也会接收到从而弹出ip地址冲突的警告对话框。


二、ARP泛洪攻击


攻击主机持续把伪造的MAC-IP映射对发给受害主机,对于局域网内的所有主机和网关进行广播,抢占网络带宽和干扰正常通信。



这种攻击方式的主要攻击特征包含:



(1)通过不断发送伪造的ARP广播数据报使得交换机拼于处理广播数据报耗尽网络带宽。



(2)令局域网内部的主机或网关找不到正确的通信对象,使得正常通信被阻断。



(3)用虚假的地址信息占满主机的ARP高速缓存空间,造成主机无法创建缓存表项,无法正常通信,这种攻击特征作者将其命名为ARP溢出攻击。ARP泛洪攻击不是以盗取用户数据为目的,它是以破坏网络为目的,属于损人不利己的行为。


三、 ARP欺骗攻击



1
、ARP欺骗原理




假如主机A要与目的主机B进行通信,为了查找与目的主机IP地址相对应的MAC地址,主机A使用ARP协议来查找目的主机B的MAC地址。首先,源主机A会以广播的形式发送一个ARP请求数据包给以太网上的每一台主机,这个过程称为ARP广播。而在接收到ARP广播的所有计算机中,只有具有目的主机IP地址的主机B收到该广播报文后,才会向源主机A回送一个包含其MAC地址的应答,这样一次正常的地址解析过程就完成了。为了尽量减少网络中ARP广播请求的次数,每台主机都拥有一个ARP缓存,这个缓存存放了自主机启动以来所有的IP地址与MAC地址之间的映射记录。主机每隔一定时间或者每当收到ARP应答,都会用新的地址映射记录对ARP缓存进行更新,以保证自己拥有最新的地址解析缓存。


利用ARP协议的缓存更新不需要验证的特点,就可以冒用一个合法IP,对同网络的数据进行嗅探,而这正是ARP欺骗病毒所采用的手段。假设有3台主机分别为A、B、C,其中主机C已经感染了ARP地址欺骗病毒。正常情况下,主机A与主机B通信对于主机C是不可见的,但是,主机C利用ARP欺骗技术,实现了交换网络下的嗅探。其主要步骤如下:
(1)主机C向主机A发送一个非法ARP响应,将主机A的ARP缓存中B的MAC地址篡改为C的MAC地址;


(2)主机C向主机B发送一个非法ARP响应,将主机B的ARP缓存中A的MAC地址篡改为C的MAC地址;

(3)在主机C上启动IP Forward(IP转发)功能。

于是,主机A与主机B之间的通道由主机A到主机B变成主机A到主机C再到主机B,主机C作为“中介”,转发主机A与主机B通信产生的所有数据包。这样,在光天化日之下,主机C竟然劫持了所有主机A和主机B之间通信的数据,这就是ARP地址欺骗的过程。当主机C冒充网关的情形下,由于局域网中的电脑连接外网时,也就是登录互联网的时候,都要经过局域网中的网关转发一下,所有收发的数据都要先经过网关,再由网关发向互联网。这也就意味着电脑C能截获并篡改所有局域网到互联网、互联网到局域网的数据。


2
、ARP欺骗种类



(1)拒绝服务攻击:拒绝服务攻击就是使目标主机不能响应外界请求,从而不能对外提供服务的攻击方法。如果攻击者将目标主机ARP缓存中的MAC地址全部改为根本就不存在的地址,那么目标主机向外发送的所有以太网数据帧会丢失,使得上层应用忙于处理这种异常而无法响应外来请求,也就导致目标主机产生拒绝服务。



(2)中间人攻击:中间人攻击就是攻击者将自己的主机插入两个目标主机通信路径之间,使他的主机如同两个目标主机通信路径上的一个中继,这样攻击者就可以监听两个目标主机之间的通信。例如局域网内的三台机子A、S、D,现在A要监听S与D之间的通信。攻击过程如下:A侵染目标主机S与D的ARP缓存,使得S向D发送数据时,使用的是D的IP地址与A的MAC地址,并且D向S发送数据时,使用的是S的IP地址与A的MAC地址,因此所有S与D之间的数据都将经过A,再由A转发给他们。



如果攻击者对一个目标主机与它所在局域网的路由器实施中间人攻击,那么攻击者就可以截取Internet与这个目标主机的之间的全部通信[8]。



(3)多主机欺骗:篡改被攻击主机群中关于网络内某一台主机X的ARP记录,被攻击的主机群为网络中的多台主机而非一台主机。主机X为网关或网络内任何一台非网关的正在运行主机。被篡改后的MAC地址可以为网络内正在运行的主机MAC地址或随机伪造的不存在主机的MAC地址。



T
时刻,主机A关于主机X的ARP记录被篡改;



T+N
时刻,主机B关于主机X的ARP记录被篡改;



………



T+M
时刻,主机Z关于主机X的ARP记录被篡改;



例如当攻击主机要仿冒网关就会向局域网内的主机群发送ARP数据包,以自身MAC地址来冒充真正的网关,使受骗主机群的ARP缓冲区的MAC地址错误地更新为攻击源的MAC地址,导致受骗主机群向假网关发送通信信息,而不是通过路由器或交换途径寻找真正的网关并发送通信信息。这时攻击主机可以把自己设置成一台路由器负责对数据包转发,从而达到仿冒网关的目的。这是一种比较常见的欺骗形式,这种欺骗方式可以控制同一网关下的所有主机对网络的访问。网吧内经常发生游戏密码被盗现象就是因为遭受到仿冒网关的ARP攻击。



(4)全子网轮询欺骗:篡改被攻击主机X中关于网络内多台主机的ARP记录,这台被攻击的主机为网关或网络内任何一台非网关的主机,被篡改后的MAC地址可以为网络内正在运行的主机MAC地址或随机伪造的不存在主机的MAC地址。



T
时刻,主机X关于主机A的ARP记录被篡改;



T+N
时刻,主机X关于主机B的ARP记录被篡改;



………



T+M
时刻,主机X关于主机Z的ARP记录被篡改;



(5)网络监听:攻击主机利用上述多主机欺骗来仿冒网关,利用全子网轮询欺骗来篡改真正网关上关于局域网内所有主机的ARP缓存记录,从而实现对局域网内所有主机同外部网的通信进行监听。实现了在交换式网络环境中对网络通信的监听。


四、ARP扫描攻击


向局域网内的所有主机发送ARP请求,从而获得正在运行主机的ip和mac地址映射对。ARP扫描往往是为发动ARP攻击做准备。攻击源通过ARP扫描来获得所要攻击主机的ip和mac地址。从而为网络监听、盗取用户数据,实现隐蔽式攻击做准备。



五、虚拟主机攻击

通过在网络内虚拟构建网卡,将自己虚拟成网络内的一台主机,拥有虚拟的物理地址和ip地址。主要是通过在链路层捕获所有流经的ARP请求数据包进行分析,若是对虚拟主机的ARP请求就会发送对应虚拟物理地址的ARP响应,并且虚拟主机本身也会发送ARP请求。虚拟主机攻击会占用局域网内的IP地址资源,使得正常运行的主机发生ip地址冲突,并且局域网内的主机也无法正常获得ip地址。

ARP的攻击问题影响很大,局域网内一旦有ARP的攻击存在,会欺骗局域网内所有的主机和网关,让所有上网的流量必须经过ARP攻击者控制的主机。其它用户原来直接通过网关上网,现在却转由通过被控主机转发上网。由于被控主机性能和程序性能的影响,这种转发并不会非常流畅,因此就会导致用户上网的速度变慢甚至频繁断线。另外ARP欺骗需要不停地发送ARP应答包,会造成网络拥塞。而且网络节点间的连通也会出现异常。对于ARP欺骗攻击还会有其它表现,如出现网络内大面积账号丢失和数据失密等等。对于IP地址冲突攻击会使得主机不断弹出ip地址冲突的警告信息。

所以ARP的攻击已经成为现在网络中一个最为令人头痛的问题,由于ARP攻击利用的是ARP协议天生的缺陷,所以严格意义上来时ARP病毒不是一种病毒,故其没有病毒特征码,所以现在杀毒软件对其束手无策。

于是一个全新的软件ARP防火墙诞生了,ARP防火墙很好的解决了外部主机对安装ARP防火墙的主机的ARP欺骗攻击,同时可以阻止本机对外的ARP欺骗和泛洪攻击,现在绝大多数杀毒软件和防火墙都集成了ARP防火墙的功能。

看上去一个ARP防火墙解决了全部的问题,但是事实上并非如此,ARP防火墙要求网络内部的主机全部安装ARP防火墙,一旦一台主机未安装并且中有ARP攻击的病毒之后,麻烦就出现了:

首先,如果是ARP泛洪,全网上网速度变慢甚至无法上网。

其次,如果是ARP欺骗,虽然无法欺骗其他的主机,但是其欺骗网关可是绰绰有余的,有人说ARP防火墙可以在发现攻击后主动防御,使自己可以正常上网,但是,ARP防火墙的主动防御与其说其是防御,不如说其是ARP泛洪,大部分的ARP防火墙的主动防御都是使用的ARP泛洪技术,和ARP欺骗的病毒比速度,看看谁能使网关的ARP更新的更快,发慢了,不能正常上网,发快了网络内部出现ARP泛洪,网速会变慢或无法上网。

还有人提出一种解决方案,就是计算机和网关之间双向绑定其ARP信息,这种方案从根本上阻止住了ARP欺骗的发生,但是其可操作性差,计算机这边可以靠写一个脚本,发下去大家自己执行一下就可以了,但是网关呢?需要将下面每一台计算机的IP和MAC的对应关系收集上来,并且一条一条的在网关设备上绑定,如果几十台计算机,其还具备可操作性,如果几百台或上千台的时候,相信没有一个网络管理人员愿意去做这项工作,而且即使绑定好了,对于ARP泛洪来说这种方式毫无办法。

随着ARP病毒的泛滥,各大网络设备厂商纷纷提出了其在ARP病毒处理方面的技术解决方案,网络设备厂商提出的解决方案,好处是不用用户对自己的计算机进行任何更改,但是同样有很多不足之处,总结了一下分为以下几种:

对于ARP泛洪来说,主要是在接入交换机上使用ARP限速,从源头上阻止下面的PC过快的发送ARP报文到其他PC或网关,当发现下面的PC出现ARP泛洪时自动将计算机端口关闭(多台计算机接在一台端口下时可以关闭单台PC的数据转发),为了减轻网络管理员的负担可以设置恢复时间,关闭一定时间后端口(或单台PC的数据转发)再自动打开,可以设置信任IP和端口,对其ARP报文不做任何限制。这种方式很好的解决了ARP泛洪的问题,现在为止发现的唯一的一个问题就是在部分局域网联机对战时会出现掉线,应该是局域网对战游戏在寻找服务器时发送大量ARP报文查询网络内存在的主机导致的掉线。

针对ARP欺骗的防御,主要有以下几种:


1
.在接入交换机端口上限制发送某个特定IP的ARP报文,一般可以设置多个,可以同时设置网关和同网段的重要服务器。优点是阻止了ARP病毒发送针对其他PC的ARP欺骗,缺点是无法阻止ARP病毒发送针对网关的欺骗。也就是说其不能完全阻止ARP欺骗,只是阻止住了ARP欺骗中的一种。


2.在接入交换其端口上对下联PC的IP和MAC对应关系进行静态绑定,使其只能发送符合绑定关系的ARP报文。这种方式优点是可以完全阻止ARP欺骗的发生,缺点是可操作性很差和上面提到的计算机和网关双向绑定类似,再有就是计算机无法随意更换接入交换机的端口,一旦更换接入交换机的端口就需要对其进行重新绑定。

3.使用动态绑定关系绑定下联PC的IP和MAC对应关系,使其只能发送符合绑定关系的ARP报文。这种方式对上面的缺点进行了修正,使绑定关系动态化,无须人工绑定,交换机自行对下面的PC的ARP信息进行绑定,由于这个原因这种方式需要特定的环境才可以执行,就是用户的环境必须是DHCP,其ARP信息的绑定关系就在DHCP报文中提取出来的。



[ 本帖最后由 zhaogangc 于 2009-2-2 14:50 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2009-2-2 16:40:55 | 显示全部楼层
ARP攻击是转贴的,后面的防御技术有缺点是自己写的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表