资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第 4 期 辽宁省电子信息产品监督检验院年度论文 2008 年 1月- 1 -ARP 欺 骗 攻 击 技 术 分 析 与 防 御Address Resolution Protocol Deceit Attack Technology Analysis And Defense姜 志 坤摘 要:世界上没有绝对安全的网络。用户即使想尽一切办法升级自己的系统,并且及时地为它补上各种补丁,也不能保证自己的系统就是绝对的安全。Internet 和 TCP/IP 从出现开始,在安全问题上就存在着难以克服的缺陷。TCP/IP 很容易相信别人,即使对方是不怀好意的入侵者。TCP/IP 的欺骗技术有很多种,包括 ARP 欺骗、序列号欺骗、路由攻击、源地址欺骗和授权欺骗等。本文针对 ARP 欺骗的工作原理以及攻击过程,提出了一系列的解决方法。关键字:入侵者 ARP 欺骗 工作原理 攻击过程所谓 ARP 即地址解析协议(Address Resolution Protocol) ,是在仅知道主机的 IP 地址时确定其物理地址的一种协议。因 IPv4 和以太网的广泛应用,其主要用作将 IP 地址翻译为以太网的 MAC 地址,但其也能在 ATM 和 FDDIIP 网络中使用。从 IP 地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP 具体说来就是将网络层(IP 层,也就是相当于 OSI 的第三层)地址解析为数据连接层(MAC 层,也就是相当于 OSI 的第二层)的 MAC地址。1. ARP 欺骗原理1. 1 ARP 欺骗机制分析ARP(Address Resolution Protocol,地址解析协议)是一个位于 TCP/IP 协议栈中的低层协议,负责将某个 IP 地址解析成对应的 MAC 地址。从影响网络连接通畅的方式来看,ARP 欺骗分为二种,一种是对路由器 ARP 表的欺骗;另一种是对内网 PC 的网关欺骗。第一种 ARP 欺骗的原理是截获网关数据。它通知路由器一系列错误的内网 MAC 地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的 MAC 地址,造成正常 PC 无法收到信息。第 4 期 辽宁省电子信息产品监督检验院年度论文 2008 年 1月- 2 -第二种 ARP 欺骗的原理是伪造网关。它的原理是建立假网关,让被它欺骗的 PC 向假网关发数据,而不是通过正常的路由器途径上网。在 PC 看来,就是上不了网了, “网络掉线了” 。一般来说,ARP 欺骗攻击的后果非常严重,大多数情况下会造成大面积掉线。有些网络管理员对此不甚了解,出现故障时,认为 PC 没有问题,交换机没掉线的“本事” ,电信也不承认宽带故障。而且如果第一种 ARP 欺骗发生时,只要重启路由器,网络就能全面恢复,那问题一定是在路由器了。为此,宽带路由器背了不少“黑锅” 。另外,为对抗假冒网关的 ARP 欺骗,路由器设计了网关的 ARP 广播机制,它以一个可选定的频次,向内网宣布正确的网关地址,维护网关的正当权益。在暂时无法及时清除 ARP病毒,网络管理员还没有做 PC 上的 IP-MAC 绑定时,它能在一定程度上维持网络的运行,避免灾难性后果,赢取系统修复的时间。这就是 ARP 主动防范机制。不过,如果不在 PC 上绑定 IP-MAC,虽然有主动防范机制,但网络依然在带病运行。因为这种 ARP 是内网的事情,是不通过路由器的。让路由器插手只能做到对抗,不能根绝。ARP 太猖獗时,就会发生时断时续的故障,那是主动防范机制在与 ARP 欺骗进行拉锯式的斗争。 1. 2 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 第 4 期 辽宁省电子信息产品监督检验院年度论文 2008 年 1月- 3 -主机 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 也没有去验证这个包的真第 4 期 辽宁省电子信息产品监督检验院年度论文 2008 年 1月- 4 -实性就把自己 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 通信量使网络阻塞或者实现“man in the middle” 进行 ARP 重定向和嗅探攻击。用伪造源 MAC 地址发送 ARP 响应包,对 ARP 高速缓存机制的攻击。每个主机都用一个ARP 高速缓存存放最近 IP 地址到 MAC 硬件地址之间的映射记录。MS Windows 高速缓存中的每一条记录(条目)的生存时间一般为 60 秒,起始时间从被创建时开始算起。默认情况下,ARP 从缓存中读取 IP-MAC 条目,缓存中的 IP-MAC 条目是根据 ARP 响应包动态变化的。因此,只要网络上有 ARP 响应包发送到本机,即会更新 ARP 高速缓存中的 IP-第 4 期 辽宁省电子信息产品监督检验院年度论文 2008 年 1月- 5 -MAC 条目。攻击者只要持续不断的发出伪造的 ARP 响应包就能更改目标主机 ARP 缓存中的 IP-M
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号