1、 本科毕业论文 (科研训练、毕业设计 ) 题 目: ARP 抗攻击模型和防御 姓 名: 学 院:软件学院 系: 专 业:软件工程 年 级: 学 号: 指导教师(校内): 职称: 指导教师(校外): 职称: 年 月 厦门大学软件学院毕业论文 - 1 - 摘 要 ARP( Address Resolution Protocol,地址解析协议)是一个位于 TCP/IP 协议栈中的低层协议,负责将某个 IP 地址解析成对应的 MAC 地址。在每台机 器上有一个 ARP 缓存表,记录IP 和 MAC 的映射,可以动态更新。同时在 ARP 协议中,定义了绝对相信 ARP 回复中所提供的信息,这就给了攻击者
2、可乘之机。通过伪造的数据,刷新目的机器的 ARP 缓存表来达到攻击目的。从影响网络连接通畅的方式来看,主要有 ARP 欺骗和 ARP 的泛洪。 ARP 欺骗分为二种,一种是对网关 ARP 表的欺骗;另一种是对内网主机的网关欺骗。第一种 ARP 欺骗截获网关数据。它通知网关一系列错误的内网 MAC 地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在网关中,结果网关的所有数据只能发送给错误 的 MAC地址,造成正常主机无法收到信息。第二种 ARP 欺骗是伪造网关。它的原理是建立假网关,让被它欺骗的主机向假网关发数据,而不是通过正常的路由器途径上网。在主机看来,就是上不了网了,“网络
3、掉线了”。 ARP 泛洪利用硬件的自然限制,对交换机不停的发送大量的假MAC 地址,使交换机 FDB 地址表快速填满并溢出,交换机自动降级变成 HUB,对到来的数据广播到所有端口,造成网络拥塞,甚至瘫痪。 ARP 攻击对局域网造成的严重的影响。 本文的目的就是在网络中出现 ARP 攻击时,提出一些基本的防御方法,通常有主动防御 和被动防御。主 动防御是定期在网络发送正确的 ARP 信息,被动防御是在攻击出现时采取的一些措施。 关键词 : ARP ARP 欺骗 ARP 病毒 ARP 防御 ARP 泛洪 厦门大学软件学院毕业论文 - 2 - Abstract ARP (Address Resolu
4、tion Protocol, ARP) is a TCP/IP Stack lower the agreement, will be responsible for a particular IP address resolution into the corresponding MAC address. In each machine ARP cache is a table that records the IP and MAC mapping dynamically updated. At the same time ARP, absolutely believe that the de
5、finition of ARP reply of the information provided, This gives the person an opportunity to attack. Through falsification of data, setting a new purpose machines ARP cache Table attacks aim to achieve. From the impact of network connections open manner, mainly ARP deception and flood-ARP. ARP decepti
6、on divided into two species, a gateway to the ARP table to deceive; Another internal network is the gateway to the mainframe deception. First ARP deception intercepted Gateway data. It informs the gateway to a series of mistakes within the network MAC address, and in accordance with the frequency of
7、 certain ongoing. so true address information can not be kept updated through the gateway, Gateway results of all data can only be sent to the wrong MAC address, causing the normal mainframe unable to receive information. The second deception is forged ARP Gateway. Its principle is based at Gateway,
8、 so that it cheated at the gateway to mainframe data fat, and not through the normal channels of Internet routers. It seems the mainframe is not on the network, “the network dropping.“ ARP flood-use hardware and restrictions on the operation of the switch sent a large number of fake MAC addresses, S
9、witch to enable FDB address tables fill up fast and spills, switches automatically into HUB demotion, The arrival of data broadcasting to all ports, resulting in network congestion, or even paralysis. LAN ARP attacks on the serious impact. The purpose of this paper is to appear in the network ARP at
10、tack, put in some basic defense, usually active defense and passive defense. Active defense is a regular network ARP correct information, passive defense is the attack appeared to take some measures. Key words: ARP; ARP deception; ARP virus; ARP defense; ARP flood. 厦门大学软件学院毕业论文 - 3 - 目录 第一章 地址解析协议 .
11、5 1.1 ARP( Address Resolution Protocol,地址解析协议)的概念 .5 1.2 ARP 的工作原理 .5 1.2.1 ARP 报文头格式 . 6 1.2.2 sniffer 抓取 ARP 报文 . 7 第二章 ARP 攻击 .8 2.1 ARP 攻击的原理 .8 2.2 ARP 对主机和网关的 攻击 .8 2.2.1 对目标主机和网关进行 ARP 欺骗 .8 2.2.2 中间人攻击 .9 2.2.3 网络执法官 . 11 2.2.4 ARP 欺骗的防御 .12 2.3ARP 对交换机的攻击 .13 2.3.1 以太网的工作方式 .13 2.3.2 对 Swit
12、ch 的 MAC 欺骗 .14 2.3.3 对 Switch 进行 Flood .14 2.3.4 交换机对 ARP 攻击的防御 .15 第三章 ARP 病毒 .17 3.1 ARP 病毒攻击原理 .17 3.2 故障现象 .17 3.3 查找病毒主机 .17 3.4 ARP 病毒基本防御 .18 3.5 ARP 病毒进阶防御 .19 3.6 ARP 攻击展望 .20 第四章 总结 .22 致谢 .23 参考文献 .24 附 录 .25 厦门大学软件学院毕业论文 - 4 - Contents Chapter 1 Address Resolution Protocol .5 1.1 The Co
13、ncept of Arp( Address Resolution Protocol) .5 1.2 The Working Principle of Arp .5 1.2.1 The Format of The Head of Arp Packet . 6 1.2.2 Sniffer Capture Arp Packet . 7 Chapter 2 The Attack of ARP .8 2.1 The Principle of Attack of ARP .8 2.2 Attack to Gateway and Host .8 2.2.1 Deceiving Gateway and Hos
14、t.8 2.2.2 Man-In-The-Middle .9 2.2.3 The Lawman of Network . 11 2.2.4 The Defense of Deceiving.12 2.3Attack to Switch.13 2.3.1 The Working of Ethernet.13 2.3.2 The Deceiving to Switch.14 2.3.3 The Flooding .14 2.3.4 The Defense of Switch .15 Chapter 3 ARP Virus .17 3.1 The Principle of Attack of Arp
15、 Virus .17 3.2 The Phenomena of Malfunction .17 3.3 Looking for Virus Host .17 3.4 The Basic Defense .18 3.5 The Advanced Defense .19 3.6 The Future of Attack .20 Chapter 4 Summary .22 Acknowledgement .23 References .24 Supplement.25 第一章 地址解析 协议 1.1 ARP( Address Resolution Protocol, 地址解析协议) 的概念 ARP
16、工作在数据链路层,主要负责将局域网中的 32 为 IP 地址转换为对应的 48 位物理地址, IP 地址是为大家所熟知的逻辑地址, MAC 地址是一个烧录在网卡内的物理硬件地址,该地址在网卡出厂时就由网卡生产厂家唯一确定了的,真正全球唯一(恶意修改或伪造的除外)。 IP 地址提供了网络上路由选择的依据,而 MAC 地址则提供以太网内主机的定位。 在局域网中,网络中实际传输的是帧, 帧里面是有目标主机的 MAC 地址的 。 一个主机要和另一个主机进行直接通信,必须要知道目标主机的 MAC 地址。但这个目标 MAC 地址 是如何获得的呢? 正是通过地址解析协议获得的。 所谓 地址解析 就是主机在发
17、送帧前 , 将目标 IP 地址转换成目标 MAC 地址的过程。 ARP 协议的基本功能就是通过目标设备的 IP 地址,查询目标设备的 MAC 地址,以保证通信的顺利进行。 1.2 ARP 的工作原理 在每台安装有 TCP/IP 协议的电脑里都有一个 ARP 缓存表,表里的 IP 地址与 MAC 地址是一一对应的 。 我们以主机 A( 192.168.1.5)向主机 B( 192.168.1.37)发送数据为例。当发送数据时,主机 A 会在自己的 ARP 缓存表中寻找是否有目标 IP 地址。如果 找到了,也就知道了目标MAC 地址,直接把目标 MAC 地址写入 数据 帧里面发送就可以了;如果在
18、ARP 缓存表中没有找到相对应的 IP 地址,主机 A 就会在网络上发送一个广播,目标 MAC 地址是FF.FF.FF.FF.FF.FF,这表示向同一网段内的所有主机发出这样的询问: 192.168.1.37 的 MAC地址是什么? 网络上其他主机并不响应 ARP 询问,只有主机 B 接收到这个帧时,才向主机A 做出这样的回应: 192.168.1.37 的 MAC 地址是 00-aa-00-62-c6-09。这样,主机 A 就知道了主机 B 的 MAC 地址, 它就可以向主机 B 发送信息了。同时它还更新了自己的 ARP 缓存表,下次再向主机 B 发送信息时,直接从 ARP 缓存表里查找就可
19、以了。 ARP 缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少 ARP 缓存表的长度,加快查询速度 。 ARP 缓存表是可以查看的,也可以添加和修改。在命令提示符下,输入 arp -a就可以查看 ARP 缓存表中的内容 , 用 arp -d命令可以删除 ARP 表中某一行的内容 , 用 arp -s可以手动在 ARP 表中指定 IP 地址与 MAC 地址的对应。 厦门大学软件学院毕业论文 - 6 - 1.2.1 ARP报文头 格式 ARP 报文被封装在以太网帧头部中传输,如图 1-1 所示,是 ARP 请求协议报文头部格式。 图 1-1 ARP 请求协
20、议报文头部格式 图 1 中黄色的部分是以太网(这里是 Ethernet II 类型)的帧头部。其中,第一个字段是广播类型的 MAC 地址: 0XFF-FF-FF-FF-FF-FF,其目标是网络上的所有主机。第二个字段是源 MAC 地址,即请求地址解析的主机 MAC 地址。第三个字段是协议类型,这里用 0X0806代表封装的上层协议是 ARP 协议。 接下来是 ARP 协议报文部分。其中 各个字段的含义如下: 硬件类型:表明 ARP 实现在何种类型的网络上。 协议类型:代表解析协议(上层协议)。这里,一般是 0800,即 IP。 硬件地址长度: MAC 地址长度,此处为 6 个字节。 协议地址长
21、度: IP 地址长度,此处为 4 个字节。 操作类型:代表 ARP 数据包类型。 1 表示 ARP 请求数据包, 2 表示 ARP 应答数据包。 源 MAC 地址:发送端 MAC 地址。 源 IP 地址:代表发送端协议地址( IP 地址)。 目标 MAC 地址:目的端 MAC 地址(待填充)。 目标 IP 地址:代表目的端协议地址( IP 地址)。 ARP 应答协议报文和 ARP 请求协议报文类似。不同的是,此时,以太网帧头部的目标MAC 地址为发送 ARP 地址解析请求的主机的 MAC 地址,而源 MAC 地址为被解析的主机的厦门大学软件学院毕业论文 - 7 - MAC 地址。同时,操作类型
22、字段为 2,表示 ARP 应答数据包,目标 MAC 地址字段被填充以目标 MAC 地址。 1.2.2 sniffer抓取 ARP报文 用 sniffer 软件在以太网网中抓一个 ARP 数据包如图 1-2 和图 1-3 所示: 图 1-2 ARP 请求 图 1-3 ARP 应答 厦门大学软件学院毕业论文 - 8 - 第 二章 ARP 攻击 2.1 ARP 攻击 的原理 从原理分析发觉 ARP 本身是无类协议,本身不能携带任何状态信息。因此 ARP 协议不能进行任何认证,这样就导致协议本身具有安全威胁性。造成这种安全威胁的历史原因在于:早先的网络创造者们是在一个平和自由的环境中设计 ARP 协议
23、,因而安全问题在当时几乎是琐碎的事情。然而网络集聚膨胀,破坏性攻击和入侵事件的增加,使得 ARP 协议脆弱不堪 。从上面也可以看出, ARP 协议的基础就是信任局域网内的所有人,那么就很容易实现 ARP攻击。 其实所谓 ARP 攻击就是利用了 ARP 协议的漏洞,通 过伪造的数据,刷新目的机器的ARP 缓存表来达到攻击目的的。在 ARP 协议中,定义了绝对相信 ARP 回复中所提供的信息。这就给了攻击者可乘之机。前文说过, ARP 回复中包括了回复者的 IP 地址, MAC 地址,目的主机的 IP 地址, MAC 地址。而收到 ARP 回复的机 器 不会检测该 ARP 回复是否为真的主机回复,
24、且不在乎之前自己是否发送过 ARP 请求。一旦主机收到 ARP 回复,就提取其中的回复者的 IP 地址和 MAC 地址加入自己的 ARP 缓存,如果缓存中已有关于该 IP 的记录,就用新的 ARP 回复中提供的 MAC 地址刷新原来的 MAC 地址。于是,攻 击产生了。我们可以用特定的软件来产生 ARP 回复,发送向欲攻击的机 器 ,来刷新它的 ARP 缓存,导致原本该发向真正主机的数据却发向了攻击者精心定义的伪造 MAC 地址。如果攻击者持续不断的发送这种伪造的 ARP 回复,会导致被攻击机器的 ARP 缓存表中的 IP 与 MAC 的对应一直是错误的。 利用 ARP 协议漏洞,可以不停发送
25、错误的信息,可以导致局域网内用户不能上网,或者频频掉线,各有不法分子伪造假网管盗取别人机密信息, ARP 攻击在 局域 网内越来越泛滥,包括中病毒者,蓄意攻击者,无论哪种情况,都会造成网络中断的情况。 现在利用 ARP 主 要是对主机,交换机和网关(路由器)等进行攻击,对网络造成严重的影响。 2.2 ARP 对主机和网关的 攻击 2.2.1 对目标 主机和网关 进行 ARP欺骗 假如我们的机器要访问某个校园网, 所有数据先要通过网关。于是在我访问 某个 主页时,先有一个 ARP 请求网关地址的过程 ,当获得网管的 MAC 地址 后 , 将网关的 MAC 缓存到 ARP厦门大学软件学院毕业论文
26、- 9 - 缓存表中,方便以后的通讯。完成这一步后,主机就将数据发送到先前通过 ARP 请求得到的网关 MAC 上。当 要 攻击时, 可以 伪造了一个 ARP 回复,告诉被攻击主机, 172.19.5.1(即网关 IP 地址 )的 MAC 地址为 xx.xx.xx.xx.xx.xx(只要不是网关的真正 MAC,随意伪造成什么都行)。被攻击机器收到这个伪造的 ARP 回复后,将自己的 ARP 缓存刷新成伪造的网关 MAC,之后所有的数据都会发向伪造的 MAC 而不是网关 ,这样数据根本到不了网关, 因此造成了网页访问的失败 , 这是对主机的攻击 。这 只是一种无聊的行为,是骇客的行为。其目的是导
27、致大面积网络瘫痪,或者自己独享带宽上网。 同理还有就是对网关的 ARP 缓存表的攻击使网关无法正确获得主机的 MAC 地址,数据就无法到达目的主机。 2.2.2 中间人攻击 下 面我 重点 介绍一种比较隐蔽的,但危害更大的一种攻击 中间人攻击 : 针对交换机根据目的 MAC 地址来决定数据包转发端口的特点, ARP 欺骗的实现如下:假设主机 C 为实施 ARP 欺骗的攻击者 ,其目的是截获主机 B和主机 A间的通信数据 ,且主机 C 在实施 ARP 欺骗前已经预先知道 A 和 B 的 IP 地址。这时 C 先发送 ARP 包获得主机 B 的MAC 地址 ,然后向 B 发送 ARP Reply
28、数据包 ,其中源 IP 地址为 A 的 IP 地址 ,但是源 MAC 地址却是主机 C 的 MAC 地址。主机 B 收到该 ARP Reply 后 ,将根据新的 IP 与 MAC 映射对 更新 ARP 缓存。这以后当给发送数据包时 ,目标 MAC 地址将使用 C 的 MAC 地址,因此交换机根据 C 的 MAC 地址就将数据包转发到攻击者 C 所在的端口。同理攻击者发送 ARP Reply 使主机确信主机 B 的 MAC 地址为的 MAC 地址。再 间歇的发送虚假 ARP Reply 的同时,攻击者 C 打开本地主机的路由功能 ,将被劫持的数据包转发到正确的目地主机,这时攻击者对主机 A 和 B 来说是完全透明的 ,通信不会出现异常 ,但实际上数据包却被 C 非法截获,攻击者 C 成为了“中间人”, 然后我在自己机器上打开嗅探器 (sniffer), 就能监听到被攻击机器所发送的数据包的内容了 。这种欺骗比较隐蔽,被攻击者不容易察觉。 假定同一个局域网内,有 3 台主机通过交换机相连: 3 台 主机 IP 和 MAC 地址如图 2-1 所示 : A 主机: IP 地址为 192.168.0.1 , MAC 地址为 01:01:01:01:01:01 ;