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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

校园网中的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高速缓存中含有最近使用过的IP地址和物理地址的映射列表,ARP请求方和应答方都把对方的地址映射存储在ARP高速缓存中。

A.当发送IP数据报需要获取目的主机的物理地址时,首先检查它的ARP高速缓存,如果ARP高速缓存中已经存在对应的映射列表项,

那么就直接从ARP的高速缓存中获取目的主机的物理地址。

B.当主机收到一个ARP请求帧或响应帧时,都会检查它的ARP高速缓存,如果其中不存在对应的映射列表项,那么主机就会更新ARP高

速缓存。

C.由于IP地址和物理地址的映射关系可能因网络接口或IP地址的变化而变化,因此ARP高速缓存中的每一个表项都设置了一个超时值,

使得每一个地址映射表项都有一个生命期。

ARP欺骗就是基于A、B两点,通过发送伪造的ARP响应帧,达到更新主机ARP高速缓存中相应的表项。

三、如何发现及清除

局域网内一旦有ARP的攻击存在,会欺骗局域网内所有主机和网关,让所有上网的流量必须经过ARP攻击者控制的主机。其他用户原来直接通过网关上

相关文档
最新文档