局域网ARP攻击及防御策略的研究 联系客服

发布时间 : 星期日 文章局域网ARP攻击及防御策略的研究更新完毕开始阅读8de1f461561252d380eb6e16

局域网极易遭受ARP 病毒的攻击,一旦局域网内某台主机感染了ARP 病毒,该主机会不断向外发送数据包,造成网络堵塞。 在整个网络感染病毒的初期,由于网络中仅有几台电脑被 ARP 病毒侵袭,因此网络中偶尔出现网速缓慢的现象,但不时会有主机提示IP 地址冲突,起初这种现象并未引起大家的重视,仅当做一般的IP 地址冲突来处理。一段时间过后,该现象越发严重,大范围出现提示IP 地址冲突,并有很频繁的网络堵塞和信息发送不成功的情况。同时,中ARP 病毒的主机系统运行非常缓慢,主机的本地连接显示发送数据不断迅速增大,而接收数据却少之又少。而当ARP 欺骗停止时,该现象立即消失。

如果 ARP 病毒是对网关进行欺骗,它会伪造本网段内一系列IP 地址以及它们所对应的假的MAC 地址去刷新网关的ARP 缓存表,该行为会按照一定的频率不间断进行,使真实的地址信息无法保存在网关的ARP 缓存表中,因此网关所有的数据都只能发送给错误的MAC 地址,造成网络内部的主机因无法收到信息而不能上网,该类欺骗不会对网络用户造成其他的影响。如果ARP 病毒是对网络内的主机进行欺骗,它会刷新用户主机的ARP 缓存表,欺骗者将其自己伪造成假网关,原本网络中其他主机发送和接收的信息都经过交换机收发,现在转由先通过欺骗者的主机然后再通过网关连接到互联网。欺骗者可以利用一些嗅探工具或抓包工具,获得被欺骗主机的保密信息及其他的访问信息。因为所有被欺骗者的信息都是通过欺骗转给网关,再由网关连接到外网的,因此网关会理所当然的认为所有信息都是由欺骗者主机发出的。当网关回应时,它根本不会找被欺骗者主机,而是直接将回应的信息发送给欺骗者主机,这样的话被欺骗者与外部的一切通信完全在欺骗者的监视下,欺骗者可采用任何手段管理被欺骗者,包括流量的限制等,因此用户会明显感觉上网的速度变慢。当该方式的ARP 欺骗程序停止运行时,用户可恢复正常的网关通信。该方式ARP 病毒发作时,影响的范围仅限在同网段内上网的主机。

29

3.2 检测与分析

3.2.1 正常网络数据的捕获与分析

将IP 地址为202.199.246.23,MAC 地址为00-16-96-13-09-24 的主机A,IP地址为202.199.246.24,MAC地址为00-06-1B-D4-10-A6 的主机B 作为通信双方,主机A 从主机B 中下载文件使用抓包工具Iris 进行抓包,得到如图3.1 的正常情况下ARP 请求数据包和ARP 应答数据包。

图 3.1 正常情况下ARP 的请求数据包和应答数据包

根据ARP 协议的描述,在正常状态下,当两台主机要进行通信时,主机A必须知道主机B 的MAC 地址。源主机A 首先在自己的ARP 缓冲表中查找,是否存在目标主机B 的MAC 地址,如果在主机A 的ARP 缓存表中有目的主机B的MAC 地址,那么主机A 便可直接将信息发送给主机B;如果主机A 的ARP缓存表中没有主机B 的MAC 地址,主机A 先创建一个ARP 请求信息,将自己的MAC 地址00-16-96-13-09-24 作为发送方的MAC 地址,将自己的IP 地址202.199.246.23 作为发送方的IP 地址,将目标主机的IP 地址202.199.246.24 作为接收方的IP 地址,因为目标主机的MAC 地址是需要确定的信息,所以将其标记为FF-FF-FF-FF-FF-FF。创建好之后,源主机A 在它所处的局域网内广播ARP请求信息。因为此数据包是广播包,局域网内每台主机都会收到该ARP 广播包。除主机B 之外,其他所有主机收到该请求包之后都检查数据包中的目的IP 地址是否与自己的IP 地址相同,若不相同则将该信息丢弃。而主机B 收到该数据包后,发现该数据包中的目的IP 地址与自己的IP 地址相同,则

30

将主机A 的IP 地址与MAC 地址记录在自己的ARP 缓存表中,若主机B 的ARP 缓存表中已经存有主机A 的信息,则将其覆盖,同时创建一个ARP 应答信息,此时主机B 的身份已经从接收方转换为发送方,应答信息中包含从ARP 申请信息中获得的主机A 的MAC 地址和IP 地址,并将其作为应答包中的目标主机MAC 地址与IP 地址,然后将主机B 自己的MAC 地址与IP 地址作为发送方信息。那么在ARP 应答信息中,源IP 地址为主机B 的IP 地址202.199.246.24,源MAC 地址为主机B的MAC地址00-06-1B-D4-10-A6,目标IP 地址为主机A的IP 地址202.199.246.23,目标MAC 地址为主机A 的MAC 地址00-16-96-13-09-24。主机A 接收到主机B发送回来的应答数据包后,将主机B 的IP 地址与MAC 地址记录到自己的ARP缓冲表中,在之后的一段时间内,以此信息为依据与主机B 进行数据传输。

3.2.2 ARP 欺骗数据包的捕获与分析

将IP 地址为202.199.246.9,MAC 地址为00-CB-8C-54-60-27 的主机C 加入到通信环境中来作为进行ARP 欺骗的主机。由于ARP 欺骗的方式有很多种,我们以中间人攻击为例。

在正常情况下,局域网内的主机上网要通过网关将信息发送出去。中间人攻击发生后,原本通过网关上网的主机转为先通过欺骗者主机,再由欺骗者主机将信息转发到网关。欺骗者主机可在收到信息后利用一些嗅探工具或抓包工具捕获被欺骗主机的一系列信息,如明文密码或访问信息等。

图 3.2 ARP 欺骗数据包

在主机C 对主机A 进行ARP 欺骗的同时,用抓包工具对数据进行抓捕,收到如图3.2 的ARP 欺骗数据。

31

任何 ARP 响应都是合法的,ARP 应答无需认证。由于ARP 协议是无状态的,ARP 协议并未规定主机在未受到查询时就不能发送ARP 应答包,任何主机即使在没有收到请求的时候也可以做出应答,而且许多系统会接受未请求的ARP 响应,并用其信息篡改其缓存[11]。欺骗者利用ARP 协议的漏洞,欺骗主机C 在没收到主机A 发送的ARP 请求信息的情况下,伪造ARP 应答信息发送给主机A,信息中IP 地址为202.199.246.254(网关IP 地址),MAC 地址为00-CB-8C-54-60-27(主机C 的IP 地址)。主机A 收到欺骗主机C 发给它的ARP 应答数据包后,并不对其真实性进行验证,也就无法识别是否是伪造的ARP 应答数据包。另外,协议中并未规定必须提出请求之后才会产生响应,因此ARP 应答数据包是必须接

受的。因为欺骗主机C 不断发送伪造的ARP 应答信息,主机A 一直刷新本地ARP 缓存表,致使主机A 的数据包无法直接发送到网关,而是先发送给欺骗主机C,然后由主机C 进行下一步处理。从图3.2 中可以看到,源IP 地址为网关的IP 地址(202.199.246.254),源MAC 地址为欺骗主机C 的MAC 地址(00-CB-8C-54-60-27),目的IP 地址为主机A 的IP 地址(202.199.246.23),目的MAC 地址为主机A 的MAC 地址00-16-96-13-09-24。

除这种方式外,还有多种方法可以对 ARP 欺骗进行检测,如在本地电脑中安装其他工具软件,或分析路由器或交换机的ARP 缓存表等。在检测分析的过程中,ARP 欺骗体现出如下特点:用户在上网过程中时断时续;网关中会出现一个MAC 地址对应多个IP 地址的现象;用户密码容易丢失;用户的网卡处于混杂模式等。

3.3 ARP 欺骗的防御

ARP 欺骗的主要原理就是保持对ARP 缓冲表的刷新。因此,防御的重点应该是目标主机拒绝伪造ARP 应答包,从而保持本机ARP 缓存表的正确性。对ARP 欺骗的防御应视ARP 欺骗种类不同,采取相应的防御方法。

32