ARP欺骗攻击技术分析与防御论文.docx
- 文档编号:773494
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:13
- 大小:156.29KB
ARP欺骗攻击技术分析与防御论文.docx
《ARP欺骗攻击技术分析与防御论文.docx》由会员分享,可在线阅读,更多相关《ARP欺骗攻击技术分析与防御论文.docx(13页珍藏版)》请在冰豆网上搜索。
ARP欺骗攻击技术分析与防御论文
ARP欺骗攻击技术分析与防御
AddressResolutionProtocolDeceitAttackTechnologyAnalysisAndDefense
姜志坤
摘要:
世界上没有绝对安全的网络。
用户即使想尽一切办法升级自己的系统,并且及时地为它补上各种补丁,也不能保证自己的系统就是绝对的安全。
Internet和TCP/IP从出现开始,在安全问题上就存在着难以克服的缺陷。
TCP/IP很容易相信别人,即使对方是不怀好意的入侵者。
TCP/IP的欺骗技术有很多种,包括ARP欺骗、序列号欺骗、路由攻击、源地址欺骗和授权欺骗等。
本文针对ARP欺骗的工作原理以及攻击过程,提出了一系列的解决方法。
关键字:
入侵者ARP欺骗工作原理攻击过程
所谓ARP即地址解析协议(AddressResolutionProtocol),是在仅知道主机的IP地址时确定其物理地址的一种协议。
因IPv4和以太网的广泛应用,其主要用作将IP地址翻译为以太网的MAC地址,但其也能在ATM和FDDIIP网络中使用。
从IP地址到物理地址的映射有两种方式:
表格方式和非表格方式。
ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。
1.ARP欺骗原理
1.1ARP欺骗机制分析
ARP(AddressResolutionProtocol,地址解析协议)是一个位于TCP/IP协议栈中的低层协议,负责将某个IP地址解析成对应的MAC地址。
从影响网络连接通畅的方式来看,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。
第一种ARP欺骗的原理是——截获网关数据。
它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。
第二种ARP欺骗的原理是——伪造网关。
它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。
在PC看来,就是上不了网了,“网络掉线了”。
一般来说,ARP欺骗攻击的后果非常严重,大多数情况下会造成大面积掉线。
有些网络管理员对此不甚了解,出现故障时,认为PC没有问题,交换机没掉线的“本事”,电信也不承认宽带故障。
而且如果第一种ARP欺骗发生时,只要重启路由器,网络就能全面恢复,那问题一定是在路由器了。
为此,宽带路由器背了不少“黑锅”。
另外,为对抗假冒网关的ARP欺骗,路由器设计了网关的ARP广播机制,它以一个可选定的频次,向内网宣布正确的网关地址,维护网关的正当权益。
在暂时无法及时清除ARP病毒,网络管理员还没有做PC上的IP-MAC绑定时,它能在一定程度上维持网络的运行,避免灾难性后果,赢取系统修复的时间。
这就是ARP主动防范机制。
不过,如果不在PC上绑定IP-MAC,虽然有主动防范机制,但网络依然在带病运行。
因为这种ARP是内网的事情,是不通过路由器的。
让路由器插手只能做到对抗,不能根绝。
ARP太猖獗时,就会发生时断时续的故障,那是主动防范机制在与ARP欺骗进行拉锯式的斗争。
1.2ARP欺骗攻击分析
要想了解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地址的主机或者网络设备,它们分别是:
主机A192.168.1.2
主机B192.168.1.3
网关C192.168.1.1
主机D10.1.1.2
网关E10.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协议来完成IP地址转换为第二层物理地址(即MAC地址)。
ARP协议对网络安全具有重要的意义。
通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞或者实现“maninthemiddle”进行ARP重定向和嗅探攻击。
用伪造源MAC地址发送ARP响应包,对ARP高速缓存机制的攻击。
每个主机都用一个ARP高速缓存存放最近IP地址到MAC硬件地址之间的映射记录。
MSWindows高速缓存中的每一条记录(条目)的生存时间一般为60秒,起始时间从被创建时开始算起。
默认情况下,ARP从缓存中读取IP-MAC条目,缓存中的IP-MAC条目是根据ARP响应包动态变化的。
因此,只要网络上有ARP响应包发送到本机,即会更新ARP高速缓存中的IP-MAC条目。
攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。
ARP协议并不只在发送了ARP请求才接收ARP应答。
当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。
因此,B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.1.3(C的IP地址),MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。
当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A可不知道被伪造了)。
当攻击源大量向局域网中发送虚假的ARP信息后,就会造成局域网中的机器ARP缓存的崩溃。
Switch上同样维护着一个动态的MAC缓存,它一般是这样,首先,交换机内部有一个对应的列表,交换机的端口对应MAC地址表Portn<->Mac记录着每一个端口下面存在哪些MAC地址,这个表开始是空的,Switch从来往数据帧中学习。
因为MAC-PORT缓存表是动态更新的,那么让整个Switch的端口表都改变,对Switch进行MAC地址欺骗的Flood,不断发送大量假MAC地址的数据包,Switch就更新MAC-PORT缓存,如果能通过这样的办法把以前正常的MAC和Port对应的关系破坏了,那么Switch就会进行泛洪发送给每一个端口,让Switch基本变成一个HUB,向所有的端口发送数据包,要进行嗅探攻击的目的一样能够达到。
也将造成SwitchMAC-PORT缓存的崩溃,如下下面交换机中日志所示:
Internet172.20.156.10000b.cd85.a193
ARPAVlan256Internet172.20.156.50000b.cd
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARP 欺骗 攻击 技术 分析 防御 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)