齐新杰 姬月梅
摘要:本篇文章针对企业用户、校园用户和网吧等,对局域网中频繁发生的ARP欺骗基本原理进行分析介绍,并通过实例加以解释,同时介绍常见的ARP欺骗和攻击方式,并且从IP与MAC绑定、网关等多个方面提出几点关于如何防御ARP攻击的方法,加强安全防范措施,以达到维护局域网络安全的目的。
关键词:地址解析协议;介质访问控制;网络安全
引言
由于近期单位的局域网运行不稳定,联网计算机出现频繁掉线的现象。严重影响了用户网络化办公。经过对硬件检测后,断定是ARP病毒在捣鬼!这种病毒是一种利用计算机病毒使计算机网络无法正常运行的计算机攻击手段,有效的防范ARP形式的网络攻击已成为确保网络畅通的必要条件。
感染此木马的计算机试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,因此造成网内其它计算机的通信故障。ARP欺骗木马的中毒现象表现为有时候无法正常上网,有时候又好了,包括访问网上邻居也是如此,拷贝文件无法完成,出现错误;局域网内的ARP包爆增,使用ARP查询的时候会发现不正常的MAC地址,或者是错误的MAC地址对应,还有就是一个MAC地址对应多个IP的情况,也会出现注销或重新启动计算机又可恢复上网的情况。这种木马危害也很大。各公司网、校园网和网吧等局域网都出现了不同程度的灾情。ARP欺骗木马只需成功感染一台电脑,就可能导致整个局域网无法上网,严重的可能带来整个网络的瘫痪,对网络管理带来潜在的危害。此外,也以窃取病毒机器和同一子网内其它机器上的用户帐号和密码(如QQ和网络游戏等的帐号和密码)为目的,而且它发的是ARP报文,具有一定的隐秘性。给用户造成了很大的不便和巨大的经济损失。
1ARP欺骗的原理
首先给大家说说什么是ARP,ARP(Ad-dress Resolution Protocol)是地址解析协议,是一种将IP地址转化成物理地址的协议。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。
ARP原理:假设这样一个网络,一个Hub接了3台机器:HostA、HostB、HostC,其中:
HostA的地址为:IP:192.168.10.1,MAC:AA-AA-AA-AA-AA-AA
HostB的地址为:IP:192.168.10.2.MAC:BB-BB-BB-BB-BB-BB
HostC的地址为:IP:192,168,10,3,MAC:CC-CC-CC-CC-CC-CC
正常情况下,HostC:arp-a
Interface:192.168.10.1onInterface0x1000003
Internet Address Physical Address Type,192.168.10.3CC-CC-CC-CC-CC-CCdynamic
现在假设HostB开始了罪恶的ARP欺骗:
HostB向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.10.3(C的IP地址),MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A可不知道被伪造了)。而且A不知道其实是从B发送过来的,A这里只有192.168.10.3(C的IP地址)和无效的DD-DD-DD-DD-DD-DD MAC地址,没有和犯罪分子B相关的证据,哈哈。这样犯罪分子岂不乐死了。
现在A机器的ARP缓存更新了:
C:>arp-a
Interface:192.168.10.1onInterface 0×1000003
Internet Address Physical Address Type192.168.10.3 DD-DD-DD-DD-DD-DD dynamic
这样局域网的网络流通可不是根据IP地址进行,而是按照MAC地址进行传输。现在192.168.10.3的MAC地址在A上被改变成一个本不存在的MAC地址。现在A开始Ping 192.168.10.3,网卡递交的MAC地址是DD-DD-DD-DD-DD-DD,结果是什么呢?网络不通,A根本不能Ping通C!
所以,局域网中一台机器反复向其他机器,特别是向网关,发送这样无效假冒的ARP应答信息包,严重的网络堵塞就开始了!
2ARP欺骗和攻击的方式
ARP攻击,是指攻击者利用地址解析协议本身的运行机制而发动的攻击行为。包括进行对主机发动IP冲突攻击、数据包轰炸,切断局域网上任何一台主机的网络连接等。主要有以盗取数据为主要目的的ARP欺骗攻击,还有以捣乱破坏为目的的ARP泛洪攻击两种。针对这两种主要攻击方式,本文作者又细分为以下几种ARP攻击类型:
2.1ARP欺骗攻击
2.1.1DoS(Denial of Service)中文为拒绝服务攻击。拒绝服务攻击就是使目标主机不能响应外界请求,从而不能对外提供服务的攻击方法。如果攻击者将目标主机ARP缓存中的MAC地址全部改为根本就不存在的地址,那么目标主机向外发送的所有以太网数据帧会丢失,使得上层应用忙于处理这种异常而无法响应的外来请求,也就导致目标主机产生拒绝服务。
2.1.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与这个目标主机之间的全部通信。
2.1.3多主机欺骗:篡改被攻击主机群中关于网络内某一台主机×的ARP记录,被攻击的主机群为网络中的多台主机而非一台主机。主机X为网关或网络内任何一台非网关的正在运行主机。被篡改后的MAC地址可以为网络内正在运行的主机MAC地址或随机伪造的不存在主机的MAC地址。
T时刻,主机A关于主机×的ARP记京
被篡改;
T+N时刻,主机B关于主机×的ARF记录被篡改;
……
T+M时刻,主机Z关于主机×的ARP记录被篡改。
例如:当攻击主机要仿冒网关就会向局域网内的主机群发送ARP数据包,以自身MAC地址来冒充真正的网关,使受骗主机群的ARP缓冲区的MAC地址错误地更新为攻击源的MAC地址,导致受骗主机群向假网关发送通信信息,而不是通过路由器或交换途径寻找真正的网关并发送通信信息。这时攻击主机可以把自己设置成一台路由器负责对数据包转发,从而达到仿冒网关的目的。这是一种比较常见的欺骗形式,这种欺骗方式可以控制同一网关下的所有主机对网络的访问。网吧内经常发生游戏密码被盗现象就是因为遭受到仿冒网关的ARP攻击。
2.1.4全子网轮询欺骗:篡改被攻击主机X中关于网络内多台主机的ARP记录,这台被攻击的主机为网关或网络内任何一台非网关的主机。被篡改后的MAC地址可以为网络内正在运行的主机MAC地址或随机伪造的不存在主机的MAC地址。
T时刻,主机×关于主机A的ARP记录被篡改;
T+N时刻,主机×关于主机B的ARP记录被篡改;
……
T+M时刻,主机×关于主机Z的ARP记录被篡改。
2.1.5网络监听:攻击主机利用上述多主机欺骗来仿冒网关,利用全子网轮询欺骗来篡改真正网关上关于局域网内所有主机的ARP缓存记录,从而实现对局域网内所有主机同外部网的通信进行监听。实现了在交换式网络环境中对网络通信的监听。
2.2IP地址冲突攻击
制造出局域网上有另一台主机与受害主机共享一个IP的假象。由于违反了唯一性要求,受害主机会自动向用户弹出警告对话框。大量的攻击数据包能令受害主机耗费大量的系统资源。对于windows操作系统,只要接收到一个ARP数据包,不管该ARP数据包符不符合要求,只要该ARP数据包所记录的源IP地址同本地主机相同但MAC地址不同,windows系统就会弹出IP地址冲突的警告对话框。根据IP地址冲突的攻击特征描述,这种类型的ARP攻击主要有以下几种:
2.2.1单播型的IP地址冲突:链路层所记录的目的物理地址为被攻击主机的物理地址,这样使得该ARP数据包只能被受攻击主机所接收而不被局域网内的其它主机所接收,实现隐蔽式攻击。
2.2.2广播型的IP地址冲突:链路层所记录的目的物理地址为广播地址,这样使得局域网内的所有主机都会接收到该ARP数据包,虽然该ARP数据包所记录的目的IP地址不是受攻击主机的IP地址,但是由于该ARP数据包为广播数据包,这样受攻击主机也会接收到从而弹出IP地址冲突的警告对话框。
2.3ARP泛洪攻击
攻击主机持续把伪造的MAC-iP映射对发给受害主机,对于局域网内的所有主机和网关进行广播,抢占网络带宽和干扰正常通信。这种攻击方式的主要攻击特征包含:
2.3.1通过不断发送伪造的ARP广播数据包使得交换机忙于处理广播数据包耗尽网络带宽。
2.3.2令局域网内部的主机或网关找不到正确的通信对象,使得正常通信被阻断。
2.3.3用虚假的地址信息占满主机的ARP高速缓存空间,造成主机无法创建缓存表项,无法正常通信,这种攻击特征作者将其命名为ARP溢出攻击。ARP泛洪攻击不是以盗取用户数据为目的,它是以破坏网络为目的。属于损人不利己的行为。
2.4ARP溢出攻击
ARP溢出攻击的特征主要有:
2.4.1所发送的伪造MAC-IP映射对的IP地址是非本地网的虚拟不存在的IP地址,但MAC地址是固定的,当操作系统接收到一个源IP地址在ARP高速缓存表中不存在的ARP数据包时,就会在缓存表中创建一个对应MAC-IP的入口项。
2.4.2所发送的伪造MAC-IP映射对的lP地址是非本地网的虚拟不存在的IP地址,而且MAC地址也是虚拟变化的。发送这种类型的攻击数据包会引起交换机的CAM表溢出。由于交换机是通过学习进入各端口数据帧的源MAC地址来构建CAM表,将各端口和端口所连接主机的MAC地址的对应关系进行记录,因而可根据CAM表来决定数据帧发往哪个端口。如果攻击源持续向交换机发送大量有错误的MAC地址ARP数据包,就会破坏端口与MAC的对应关系,并导致CAM表溢出。在这种情形之下,缺少防范措施的交换机就会以广播的模式处理报文,形成泛洪向所有接口转发通信信息流。最终使得交换机变成HUB,将交换式的网络变成广播式的网络,使得网络带宽急剧下降。
2.5ARP扫描攻击
向局域网内的所有主机发送ARP请求,从而获得正在运行主机的IP和MAC地址映射对。ARP扫描往往是为发动ARP攻击做准备。攻击源通过ARP扫描来获得所要攻击主机的IP和MAC地址。从而为网络监听、盗取用户数据、实现隐蔽式攻击做准备。
2.6虚拟主机攻击
通过在网络内虚拟构建网卡,将自己虚拟成网络内的一台主机,拥有虚拟的物理地址和IP地址。主要是通过在链路层捕获所有流经的ARP请求数据包进行分析,若是对虚拟主机的ARP请求就会发送对应虚拟物理地址的ARP响应,并且虚拟主机本身也会发送ARP请求。虚拟主机攻击会占用局域网内的IP地址资源,使得正常运行的主机发生IP地址冲突,并且局域网内的主机也无法正常获得IP地址。
3ARP欺骗和攻击的防范措施
3.1建立DHCP服务器(建议建在网关上,因为DHCP不占用多少CPU,而且ARP欺骗攻击一般总是先攻击网关,我们就是要让他先攻击网关,因为网关这里有监控程序的,网关地址建议选择X.X.X.2,把X.X.X.1留空,如果犯罪程序愚蠢的话,让他去攻击空地址吧),另外所有客户机的IP地址及其相关主机信息,只能由网关这里取得,网关这里开通DHCP服务,一定要保持网内的机器IP/MAC一一对应的关系。这样客户机虽然是DHCP取地址,但每次开机的lP地址都是一样的。
3.2建立IP、MAC数据库,把局域网内所有网卡的MAC地址记录下来,每个MAC和IP、地理位置统统装入数据库,以便及时查询备案。
3.3网关机器关闭ARP动态刷新的过程,使用静态路由,这样的话,即使犯罪嫌疑人使用ARP欺骗攻击网关的话,这样对网关也是没有用的,确保主机安全。
3.4网关监听网络安全
网关上面使用TCPDUMP程序截取每个ARP程序包,弄一个脚本分析软件分析这些ARP协议。ARP欺骗攻击的包一般有以下