• /  39
  • 下载费用: 29.9积分  

局域网arp攻击及防御策略的研究毕业论文

'局域网arp攻击及防御策略的研究毕业论文'
辽宁科技大学继续教育学院毕毕业业设设计计 ( (论论文文 ) )题 目: 局域网 ARP 攻击及防御策略的研究 毕业设计(论文)原创性声明和使用授权说明毕业设计(论文)原创性声明和使用授权说明原创性声明原创性声明本人郑重承诺:所呈交的毕业设计(论文) ,是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名:       日  期:        指导教师签名:        日  期:        使用授权说明使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:        日  期:        学位论文原创性声明学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日 局域网局域网 ARPARP 攻击及防御策略的研究攻击及防御策略的研究摘要摘要当今的信息社会是建立在计算机网络的基础之上的,网络信息安全形势十分严峻。网络协议安全是网络安全的重要环节,对网络协议的分析、利用越来越受到人们的关注。ARP协议是网络协议中的基础协议,虽然ARP协议使用起来非常方便快捷,但其中却隐藏着很多漏洞。本文首先对ARP 协议进行了详细的分析,深入了解了ARP 协议的工作原理,并对ARP 欺骗发生的条件和欺骗原理做了深入的介绍,同时总结了ARP 欺骗攻击的检测方法,细致的分析了对各种不同的ARP 欺骗方式相对应的防御手段。其次针对局域网中出现的 ARP 欺骗的攻击方式进行有针对性的分析,使用抓包工具截获攻击包后进行相关研究,并制定出防御局域网中出现的ARP欺骗的方法,同时对该方法进行适当改进以提高防御效率。ARP欺骗病毒一直是网络中爆发范围较广且很难根除的顽疾,最近几年针对ARP欺骗病毒的防御研究在不断进行,但由于互联网布局的复杂性特征,很难在防御该病毒方面获得统一的管理和部署,本文提出的检测和防御方法经小范围应用取得了较好的效果,希望在以后的继续学习与研究过程中能够将该方法完善并推广。关键词:键词:ARPARP 欺骗,欺骗,ARPARP 协议,协议,802.1x802.1x 协议,认证扩展,病毒防御协议,认证扩展,病毒防御 目 录摘 要.....................................................2目 录...................................................3-4第第1 1 章章 绪 论..............................................71.1 课题背景和意义........................................71.2 国内外研究现状........................................91.3 论文的研究内容及组织结构.............................121.3.1 论文的研究内容.....................................131.3.2 论文的组织结构.....................................13第第2 2 章章 ARP 协议 ..................................142.1 ARP 协议介绍.........................................142.1.1 地址解析的作用.....................................142.1.2 直接映射法.........................................152.1.3 动态地址解析法.....................................172.1.4 动态地址解析的缓冲区与高效率.......................182.2 ARP 协议的应用.......................................182.2.1 ARP 的标准与历史...................................182.2.2 ARP 地址详述与基本操作.............................192.2.3 ARP 信息的格式.....................................212.2.4 ARP 缓存...........................................222.2.5 代理ARP ...........................................242.3 ARP 欺骗.............................................25 2.3.1 ARP 欺骗原理.......................................252.3.2 ARP 欺骗的攻击方式.................................272.3.3 ARP 攻击的检测.....................................292.3.4 ARP 病毒的防御.....................................302.4 本章小结.............................................30第第3 3 章章 局域网ARP 病毒检测与防御..........................313.1 局域网遭受ARP 病毒攻击的症状及危害...................573.2 检测与分析...........................................583.2.1 正常网络数据的捕获与分析...........................583.2.2 ARP 欺骗数据包的捕获与分析.........................593.3 ARP 欺骗的防御.......................................603.3.1 针对网关ARP 欺骗的防御.............................613.3.2 针对网内主机ARP 欺骗的防御.........................623.4 ARP 欺骗防御方法的改进...............................623.5 本章小结.............................................63总结......... ...........................................35参考文献 ...........................................35 第第1 1 章章 绪绪 论论1.11.1 课题背景和意义课题背景和意义随着互连网的发展,网络的安全问题随之浮出水面,并一直是计算机网络安全体系的重要方面。网络作为信息的共享平台,其开放性与跨地域性令网络攻击难以循迹,一旦重要的网络信息系统陷入瘫痪,对社会是一种毁灭性的打击。最近几年,网络安全问题日益严重,关于网络安全的报道层出不穷,造成的经济损失越来越大。黑客往往通过网络入侵的手段达到窃取敏感信息的目的,也有人通过网络攻击达到不可告人的目的。ARP 协议是一个位于TCP/IP 协议栈中网络层的协议,负责将IP 地址解析成对应的MAC 地址。由于网络通信是按照MAC 地址进行传输的,因此,对于局域网而言,ARP 协议是网络正常通信的基础。但基于历史原因,ARP 协议在设计之初,考虑到传输效率的问题,缺乏必要的身份认证和鉴别机制,导致安全性能弱不禁风。ARP 欺骗攻击是一种利用TCP/IP 协议中ARP 协议本身漏洞[3]( 即为了提高效率,不对发送来的ARP 应答包进行验证,直接更新ARP 地址缓存表)进行攻击的。它通过发送ARP 应答包给目标主机,让目标主机更新自己的ARP地址缓存表,使本应该发送给被冒充机器的数据包发送给了自己,达到了欺骗信息的作用。因此,制定出一套高效的 ARP 欺骗攻击防御策略具有很大的现实意义。1.21.2 国内外研究现状国内外研究现状ARP 欺骗攻击的核心思想就是向目标主机发送伪造ARP 应答, 并使目标主机接收应答中伪造的IP 地址与MAC 地址之间的映射对, 以此来更新目标主机的ARP 缓存。ARP 欺骗的原理已经十分明了,但对ARP 欺骗的防范措施却并不十分有效。目前国内外还没有功能 很强的软件能够很好的防御网络中的ARP欺骗。因此,如何防御ARP 欺骗攻击及怎样降低这种攻击所带来的后果引起了全社会网络专家们的广泛关注,并成为目前网络安全界研究的热点问题。ARP 欺骗攻击主要是利用了ARP 协议的安全缺陷,体现在如下几点:(1)ARP请求均以广播方式进行:当源主机要和目的主机通信而没有目的主机的MAC 地址时, 便会向整个局域网广播ARP请求数据包。这使得攻击者可以伪装ARP应答, 与真正的目的主机展开竞争, 并由此确定子网内机器什么时候刷新ARP缓存, 以实现最大限度的假冒和欺骗。(2)ARP 地址转换表自我动态更新:这种机制的动态更新方式较为灵活,但同时也带来了安全隐患。由于正常的ARP 地址转换表都是有时间限制的,这使得假冒者如果在下次交换之前成功修改了源主机的地址,就可以毫无阻拦的进行ARP 欺骗行为。(3)ARP 响应无控制且无认证:ARP 协议设计之初,为了获得较高的传输效率,在数据链路层没有做安全上的防范,在使用ARP 协议时无需认证,使用ARP协议的局域网假设通信双方是相互信任和相互独立的。ARP 欺骗的攻击方法主要有以下几种:(1)中间人攻击:中间人攻击就是攻击者将自己插入两个目标主机通信路径之间,使它如同两个目标主机通信路径上的一个中继,这样攻击者就可以监听两个目标主机之间的通信。(2)IP 地址冲突:主机发送更改的ARP 报文,将伪装的MAC 地址映射到目标主机的IP 地址,系统检测到两个不同的MAC 地址对应同一个IP 地址,因此表现为IP 地址冲突。(3)拒绝服务攻击:拒绝服务攻击就是使目标主机不能正常响应外部请求,从而不能对外提供服务的攻击方式。(4)克隆攻击:通过修改网络接口的MAC 地址,攻击者首先对目标主机实施拒绝服务攻击,使其不能对外部做出任何反应。然后攻 击者就可以将自己的IP地址与MAC 地址分别改为目标主机的IP 地址与MAC 地址,这样攻击者就可以对目标主机进一步实施各种非法攻击,窃取各种通信数据。(5)ARP 应答畸形包攻击:正常的ARP 报文至少是46 个字节,但是如果我们自己精心构造一个只有30 个字节长的ARP 应答报文,由于目前的网络交换设备没有充分考虑到这种情况的出现,当网络上连续出现这种畸形报文达到一定数量的时候,交换机的MAC 缓存表就无法正常刷新,其严重后果就是整个局域网瘫痪。针对以上的 ARP 欺骗攻击手段,已经制定出如下的防御措施[6,7,8]:(1)制定静态ARP 缓存表:ARP 协议攻击最根本的原理就是改变IP 地址与MAC 地址的正确对应关系。因此可以在目标主机的ARP 缓存中设置静态地址映射记录来防止ARP 欺骗攻击。但该方法的缺点是如果网络上节点较多或者节点经常发生变化则不易进行管理。(2)设置ARP 服务器:为了解决静态ARP 缓存表中维护静态记录的工作分散的缺点,可以采用在局域网内部指定一台机器作为ARP 服务器来集中保存和维护一个相对可信的局域网环境下所有主机的IP-MAC 地址映射记录。但该方法首先要保证ARP 服务器的网络安全,如果一旦该主机瘫痪,ARP 缓存表将无法维护,整个网络系统会受到影响。(3)数据加密传输:例如采用SSH 替代telnet,采用sftp 替代传统的ftp,即使连接被截获,也不可能被轻易伪造数据。该方法的缺点是加密和解密过程相对来说比较消耗系统资源。(4)交换机绑定端口和MAC 地址:设置交换机的每个端口与唯一的MAC 地址相对应,一旦来自该端口的MAC 地址发生变动,就自动封锁该端口,使主机无法连接到局域网。攻击者就无法发送伪造ARP 数据帧,从而阻止了ARP 欺骗的发生。这种方法的缺点是不灵活。(5)引入硬件设备:目前, 基于IP 地址变换进行路由的第三层交 换机逐渐被采用,第三层交换技术采用的是P 路由交换协议,以往的数据链路层的MAC 地址和ARP 协议已经不起作用。但第三层交换机的价格普遍比较昂贵,而且普及率不高。1.31.3 论文的研究内容及组织结构论文的研究内容及组织结构1.3.11.3.1 论文的研究内容论文的研究内容计算机网络体系包含两大方面,终端体系与网络通信体系。而各自的安全要求则衍生了可信计算平台以及可信网络连接的规范。保护整个终端体系和网络通信体系的完整性与安全性就需要综合考虑两方面的需求。构建可信网络平台,采用802.1x 在宽带及无线接入方面的优势是显而易见的。同时也被众多互联网服务提供商所广泛采纳。本文的主要工作是针对ARP 病毒的特点,详细论述了ARP 协议的原理,发展过程以及ARP 协议的应用。对ARP 协议的实现及漏洞进行了详细的分析,并针对ARP 欺骗攻击的特征,对其攻击方法进行了详细的介绍。同时,根据ARP欺骗的攻击方法总结出ARP 欺骗的各种检测方法,并有针对性的制订了ARP 欺骗的防御措施。由于 ARP 欺骗经常在局域网中爆发,局域网是ARP 欺骗病毒肆虐的典型网络。本文结合局域网中ARP 欺骗攻击的实际现象,使用抓包软件对其进行检测并加以分析,再根据常见网络设备的特点逐步制定出防御局域网中ARP欺骗的措施,并加以改进。1.3.21.3.2 论文的组织结构论文的组织结构本文共分为3 个章节,各章节主要内容如下:第 1 章,绪论。介绍了ARP 欺骗的攻击行为与对其进行防御的研究背景和现状,分析了现有防御方法的不足。描述本文的研究内容,给出了本论文的组织结构。第 2 章,ARP 协议。详细的介绍了ARP 协议,ARP 协议的工作原理以及ARP 协议的应用。同时也对ARP 协议本身存在的漏洞, ARP欺骗攻击的原理,以及对现有的ARP 欺骗攻击既定检测与防御方法进行了细致介绍,并分析了他们各自的优缺点。第 3 章,局域网ARP 病毒检测与防御。该章节针对局域网中频繁出现的ARP 欺骗攻击现象,进行抓包采样,经分析后逐步制定出应对方案,并对其进行适当改进。第第2 2 章章 ARPARP 协议协议2.12.1 ARPARP 协议介绍协议介绍ARP(Address Resolution Protocol)即地址解析协议,就是用来进行地址解析的协议。网络中的通信是通过使用网络层(OSI 网络结构中的第三层)地址发送数据完成的。但实际上,网络中数据的传输是通过使用数据链路层(OSI 网络结构中的第二层)地址实现的。这就意味着网络中的每一个设备都要拥有网络层地址和数据链路层地址。这就需要定义某种方式将网络层地址与数据链路层地址有效联系起来。那么,这种将网络层地址与数据链路层地址一一映射的过程就被称为地址解析。2.1.12.1.1 地址解析的作用地址解析的作用当我们研究OSI 网络参考模型时,分别有两层携带地址:网络层与数据链路层。处于网络层以上的各层均通过网络层地址进行信息传输。而网络层地址与数据链路层地址是两种截然不同的地址类型并且具有不同的功能,数据链路层地址用于局域网内两个硬件设备间的信息直传,它们多用于执行基本的LAN,WLAN 与WAN 的网络通信,而网络层地址则用于网际间的等价传输。通俗地说就是数据链路层用于处理直接连接的网络设备间的信息传输,而网络层地址则用于非直连的网络设备间的数据传输。网络层地址与数据链路层地址的关系:事实上,当我们通过网络层连接两个设备时,这仅仅是概念上的 连接,当你使用IP 发送一个请求,每一跳都发生在数据链路层。当你的请求传送到本地路由器的网络层时,实际的请求已经被封装在一个桢中,并使用路由器的数据链路层地址传送出去。传送的每一步都是基于第三层的网络地址,但实际的传输执行是使用数据链路层地址进行路由的。地址解析——将网络层地址转换为数据链路层地址。IP 地址(网络层地址)对于网络硬件来说是一个处于 OSI 网络模型较上层的地址,当你要访问一个网站,输入网址后路由器得到的信息是该网站的 IP 地址,但实际上信息是向网络服务器的 MAC 地址(数据链路层地址)传送的。在 LAN 网络中同样使用这样的传输原理,即使网络服务器就摆设在发送请求电脑的旁边,也一定要通过数据链路层完成这一过程。所以我们需要一种解析这两种地址的方法,这个过程就叫做地址解析。地址解析的方法:地址解析的功能固然重要,但地址解析的效率也不容忽视,耗费大量网络资源的地址解析方法是不可取的。现如今有两种地址解析的方法:(1)直接映射:有一个公式可以将高层地址转化为底层地址,这是比较简单有效的方法,但当数据链路层地址长度大于网络层地址时会受到一些限制。(2)动态解析:一个特殊的协议用来通过网络设备的IP 地址就可知道其相应的数据链路层地址,即一个数据链路层地址对应一个给定的 IP 地址。这种方法虽然比直接映射法复杂,但具有更大的灵活性。 2.1.22.1.2 直接映射法直接映射法当每一个数据报在网络中传输的过程中,网络层地址被无数次解析成数据链路层地址。因此我们希望这个过程能够尽可能的简单快捷,完成这一过程最简单的方法就是将两类地址直接映射。直接映射法的基本思想就是将对应的网络地址与数据链路层地址存放在一个表中,我们可以通过非常简单的算法通过其中之一找到对应项。无论何时都可以通过网络层地址找到对应的数据链路层地址。数据链路层地址和网络层地址具有同样的结构和语义是不切实际的,因为这两类地址基于不同的工作目的和完全不相容的执行标准。但如果我们创建的网络层地址足够大,可将数据链路层地址编码入其中的话,我们便可以将两类地址做直接映射。这样,数据链路层地址就成为网络层地址的一部分。当 MAC 地址的长度小于IP 地址时,可以用直接映射的方法从IP 地址中得到硬件地址。这使地址解析变得非常简单,但大大降低了地址编排的弹性。在硬件地址较大的情况下,直接映射已成为不可能:不幸的是,只有在 MAC 地址作为 IP 地址一部分时才能使用直接映射的方法。但在以太网中,MAC 地址直接嵌入硬件,更重要的是 MAC 地址长度大于 IP 地址,因此这种情况下无法使用直接映射的方法。在现如今,使用最广泛的以太网的数据链路层地址是 48 位,而 IP 地址仅有 32 位,这就是为什么直接映射法无法应用在以 太网环境中。直接映射的缺点:在下一代网络 IPv6 中,由于IPv6 支持128 位的大地址空间,远远大于MAC地址的长度,理论上可以在IPv6 网络环境中使用直接映射进行地址解析。然而在IPv6 网络中人们决定使用动态地址解析,因为在IPv4 网络中已经使用动态地址解析,更重要的原因是因为直接映射的非弹性化缺点,因为动态地址解析允许IP 地址与MAC 地址相对独立。2.1.32.1.3 动态地址解析法动态地址解析法直接映射法是一种简单且高效的将网络地址解析为数据链路层地址的方法,但这种方法不能应用在如今的主题网络结构中,当数据链路层地址长度大于网络层地址时直接映射法就行不通了。动态地址解析方法可以很好的弥补直接映射法的缺陷。当设备 A 向要向设备B 发送信息时,设备A 只知道设备B 的IP 地址,而不知道设备B 的MAC 地址,设备A 首先向网络中每个设备发送一个包含设备B 的IP 地址的数据报,除设备B 之外的所有设备都忽略这个数据报,因为数据报中含有设备B 的IP 地址,设备B 接收到数据报后向设备A 恢复一个直接应答数据报,告知设备A 究竟设备B 的MAC 地址是什么,这就是动态地址解析的整个过程。在动态地址解析方法中,网络层地址与数据链路层地址可以有完全不同的结构与长度,他们之间不用有任何关系。2.1.42.1.4 动态地址解析的缓冲区与高效率动态地址解析的缓冲区与高效率动态地址解析剔除了直接映射法的约束,并且可以很容易的将IP 地址与MAC 地址建立关联,但是不是每次进行地址解析都要发送额外的信息来确认对方的MAC 地址呢?发送单个额外的信息看起 来并不耗费资源,但如果每一步都进行这样的操作,网络的负载就会急剧增加。因此,仅有动态地址解析是不够的,为了降低该操作带来的影响,我们引入了地址缓冲区。在一个设备将网络层地址解析为数据链路层地址后,两者之间的对应关系会被存放在缓存中一段时间。当下次需要用到书数据路层地址时,设备在其缓存中快速进行查询。也就是说每次发送数据包之前,我们只需要在缓存表中查询一下,而不需要发送广播请求。ARP 缓存在增强动态地址解析能力方面扮演很重要的角色,但如果其他设备的地址信息变更了,存储在缓存表中的信息就会失效,因此缓存表中的数据都会有一个生存周期,过期则信息作废。两个在网络中通讯的设备会互相添加彼此的地址到自己的缓存表中。有了ARP 缓存表,我们只需要做一次地址解析,而不用多次做重复的操作。2.22.2 ARPARP 协议的应用协议的应用目前,世界上应用范围最广的网络协议就是TCP/IP 网络协议。而最重要的地址解析协议就是与YCP/IP 协议齐名的ARP 协议了。2.2.12.2.1 ARPARP 的标准与历史的标准与历史OSI 网络参考模型的第一层是物理层,第二层是数据链路层,物理层和数据链路层使用数据链路层地址实现物理功能。可是网络协议的功能应用在第三层,也就是网络层,将这些由物理硬件组成的网络连接起来形成一个大的因特网,相 互之间使用网络层地址传输信息。地址解析是将网络层地址解析为数据链路层地址的过程,数据传输一次经过一个设备。在 TCP/IP 协议开发的初期,地址解析所设计的问题就很突出。最初的IP 协议是在以太网的雏形技术上运行的,即便以太网以IEEE802.3 作为其官方标准,也很有必要定义一种方法使IP 地址与MAC 地址实现映射以便在网际之间实现信息传输。有两种基本方法用来实现地址解析功能:直接映射与动态地址解析。可是MAC 地址长度是48 位,而IP 地址仅有32 位,这已完全不符合直接映射法,动态地址解析的模型应运而生,这就是TCP/IP 协议的地址解析协议(ARP)。ARP 协议主要是为了用某种方法改进网络传输的执行效率。最开始的每发一次数据包都进行一次广播,效率很低而且很繁琐。后来使用 ARP 缓冲区,使得本地 IP 地址与 MAC 地址有效关联起来保存在缓冲表中。现在,各种各样的技术已经逐渐被研发出来,用于改进并维护 ARP 地址缓冲表。支持跨区域信息传输的代理 ARP 技术也早已经问世,并被列入基本 ARP 特征库中。2.2.22.2.2 ARPARP 地址详述与基本操作地址详述与基本操作地址解析协议的执行是在一台源主机要发送IP 数据包开始的。首先需要确定目标主机是否与它处于同一网络中,如果两者在同一网络中,它向目标主机直接发送信息即可;如果不在同一网络中,源主机需要向与它处于同一网络的路由器发送数据包,之后通过ARP 软件进行地址解析。 ARP 协议最基本的操作就是在本地网络上发送请求或进行应答,源主机发送广播请求得到目标主机的地址,目标主机接收到请求后单播回应,告之源主机它的MAC 地址是什么。从源主机发向目的主机的信息包和从目的主机发向源主机的数据包是不同的,主机作为发送方与接收方的身份是来回互换的。通信双方都各自有自己的IP地址与MAC 地址,四个地址表达各自的信息:发送方 MAC 地址:ARP 数据包中发送方的数据链路层地址。发送方 IP 地址:ARP 数据包中发送方的网络层地址。接收方 MAC 地址:ARP 数据包中接收方的数据链路层地址。接收方 IP 地址:ARP 数据包中接收方的网络层地址。这四个地址在 ARP 信息包中都有各自固定的位置。而ARP 请求与应答也分为如下几步:(1)源主机首先在ARP 缓冲表中查找目标主机的硬件地址:源主机首先在自己的ARP 缓冲表中查找其中是否对目标主机进行过地址解析。如果做过,它便可以直接跳到最后一步。(2)源主机创建ARP 申请报文:源主机创建一个ARP 申请信息,它将其自己的MAC 地址作为发送方的MAC 地址,将其自己的IP 地址作为发送方的IP 地址。而它将目标主机的IP 地址作为接收方的IP 地址,目标主机的MAC 地址是需要确定的信息,将其留作空白。(3)源主机广播ARP 请求信息:源主机在它所处的局域网内广播ARP 请求信息。(4)本地局域网设备对ARP 请求信息进行处理:ARP 广播信息被本地局域网中所有主机接收到,所有主机都进行匹配对照,不匹配的将该信息丢弃,如果匹配则进行下一步处理。(5)目标主机创建ARP 应答信息:自身IP 地址与ARP 申请信息中IP 地址匹配的目标主机创建一个ARP 应答信息,此时该目标主机的身份已经从接收方转换为发送方,信息中包含从ARP 申请信息 中获得的发送方的MAC 地址和发送方IP 地址,并将其作为目标主机的MAC 地址与IP 地址,并将它自己的MAC地址与IP 地址作为发送方信息。(6)目标主机刷新自己的ARP 缓存:作为一种最优化的方法,目标主机将会向自己的ARP 缓存中添加源主机的MAC 地址与IP 地址,这是为目标主机为后续操做做准备。(7)目标主机发送ARP 应答信息:目标主机发送的ARP 应答信息是专门向源主机单播发送的,因为已经没有必要再发送广播信息了。(8)源主机处理ARP 应答信息:源主机对接收到的ARP 应答信息进行处理,将发送端(目的主机)的MAC 地址作为目标主机的数据链路层地址,并发送IP 数据包。(9) 源主机刷新自己的ARP 缓存:源主机用接收到的ARP 应答信息刷新自己的ARP 缓存,以便以后再与该目标主机通信。ARP 协议是一种相对简单的请求/应答协议。源主机通过目标主机的IP 地址发送ARP 请求,目标主机向源主机回送ARP 应答信息告知目标主机的MAC 地址。ARP 缓存的使用和自动更新缓存信息的应用大大增强了地址解析的效率,这也是为什么将其列入ARP 协议特征的重要原因。2.2.32.2.3 ARPARP 信息的格式信息的格式用 ARP 协议进行地址解析是通过在源主机与目的主机之间互换信息来完成的。在其他协议中,地址解析的每一步所涉及的信息都包含在其他协议的信息格式中。ARP 信息的格式相对较简单,其中有用于描述信息类型的信息,还有关于通信双方IP 地址与MAC 地址的信息,为方便不同长度地址的存放,特意为IP地址与MAC 地址划分了不同长度的地址空间。ARP 的信息格式如下: 硬件类型协议类型硬件地址长度协议长度操作字段发送方硬件地址(字节0-3)发送方硬件地址(字节4-5)发送方IP 地址(字节0-1)发送方 IP 地址(字节 2-3)目的硬件地址(字节 0-1)目的方硬件地址(字节2-5)目的方IP 地址(字节0-3)图2.1 ARP 信息格式下面用一个图表来说明ARP 信息中各部分所代表的内容:表 2.1 ARP 信息说明字段 名大小属 性硬件类型2字节发送方想知道的硬件接口类型,以太网的值为 1。协议类型2字节协议类型是硬件类型的补充,描述了 IP 地址的类型,并指明发送方提供的高层协议类型。对于IPv4 网络来说,IP 值为0800(16 进制)。硬件地址长度1字节定义硬件地址的长度,对以太网或其他以 IEEE802 作为标准的网络的MAC 地址来说,值为6。协议长度1字节指明高层协议地址的长度,对于 IPv4 地址来说值为4。操作字段2字节定义 ARP 信息的属性,ARP 请求为1,ARP 应答为2,RARP 请求为3,RARP 应答为4。发送方硬件地址变长发送方的硬件地址发送方 IP 地址变长发送方的 IP 地址 目的硬件地址变长目的主机的硬件地址目的 IP 地址变长目的主机的 IP 地址当 ARP 数据包构造完成后,将其向下传递到数据链路层,然后发送出去。整个 ARP 数据包作为有效载荷在网络中传输。由于地址字段的信息是变长的,因此整个 ARP 数据包的大小是可变的。但其实一个完整的 ARP 数据包是非常小的。2.2.42.2.4 ARPARP 缓存缓存ARP 协议是一种动态地址解析协议,也就是说每进行一次地址解析都要求在网络上互换地址信息。虽说ARP 信息包并不大,但如果每一个IP 数据包在网络上的每一跳都这样做,网络上的压力将会达到无法预料的大。那么,相对于简单的直接映射来说,这种方法既耗费资源又浪费时间。总的来说,ARP 请求信息包发送出去后,网络上的每台主机都要把接收到的信息与自己比较一下,看是否与之匹配。动态地址解析方法效率问题的总体解决方案就是引入地址缓存。另外,为了降低网络交通的压力,地址缓存也保证了地址解析所耗费的时间非常少。这也是地址缓存功能从一开始就被写入ARP 协议的重要原因。ARP 缓存以表的形式保存映射的IP 地址与MAC 地址对,网络中的每个设备管理其自己的ARP 缓存表。有两种方式向ARP 缓存表中写入数据:(1)静态ARP 缓存:在进行动态解析时人工向ARP 缓存表中添加记录信息,并在缓存中永久保存。静态记录一般由ARP 管理软件进行管理。(2)动态ARP 缓存:该方式在经过ARP 地址解析后,IP 地址与 MAC 地址对由软件自动填写入ARP 地址缓存中。他们在ARP 地址缓存中仅保存一段时间,之后便从中删除。一个设备的 ARP 缓存中包括动态和静态的记录,每种记录方式都有其优点与缺点。但在大多数情况下使用动态ARP 缓存记录,因为它是自动添加,而且不会牵涉管理员的经历。在规范网络中,静态 ARP 缓存记录得到很好的应用,但这种方法的缺点就是需要人工添加记录,并且一旦MAC 地址或IP 地址有变更需要人工修改。每条静态记录都会占据缓存表的空间,因此,缓存表中静态记录数量有限,不能使用太多静态记录。动态记录是自动添加进缓存的,不需要人工添加和人工服务。但动态记录不可能永远保存在缓存中,因为随着网络情况的变化,保存在缓存中的静态记录会因无效而失去作用。假设主机 A 的ARP 缓存中保存着另一网络主机B 的动态映射,如果动态记录永远保存在缓存表中,下列情况就会发生:(1)主机的硬件发生改变:若主机B 更换了网卡,由于记录中的MAC 地址不会再出现,主机A 的ARP 缓存中保存的动态映射信息变为无效。(2)主机的IP 地址发生改变:如果设备B 的IP 地址发生了改变,保存在设备A 中的映射记录也会变为无效。(3)设备被移除:如果设备B 从网络中移除,设备A 不需要再向它发送信息,但映射记录仍旧保存在设备A 的地址缓存中,这样不仅浪费缓存空间,而且还会在设备A 查询缓存表时耗费时间。为了避免这些问题的出现,将动态地址记录设置一定的生存周期,一般为10 分钟或20 分钟。规定时间过后,记录自动从缓存中删除,下次再通信就需要刷新缓存。相对于静态记录,这种方法在效率上仅存在微乎其微的差距,每10分钟或20 分钟发送两个28 字节的信息对网络几乎没有任何影响。如果主机 A 初次开始地址解析时发送一个标准的ARP 申请,在网络中每个接收到申请信息的主机都需要刷新自己的ARP 缓存记录。 然而,第三方设备不必为设备A 创建新的缓存记录。从对主机 A 进行地址解析的角度来说,为主机A 创建新的缓存记录可以为以后的通信提供方便,但这意味着网络中所有设备的ARP 缓存表会很快被其他主机的地址解析信息填满。有些主机可能会创建这样的缓存记录,但一定会把这些记录设置好有效期,以避免缓存表被填满。2.2.52.2.5 代理代理 ARPARP在同一网络中连接的设备通过ARP 协议进行通信。网络中的每台主机都可以向其他主机发送单播或广播信息。通常情况下,如果主机A 和主机B 被路由器分开,主机A 就不能与主机B 直接通信。他们会通过数据链路层先向路由器传输信息,根据IP 地址经过两跳到达主机B。与一般情况不同的是,有些网络是由两个网络通过路由器连接组成的,两个网络具有相同的 IP 地址段和子网掩码。也就是说,主机A 和主机 B 在数据链路层分别处于不同的局域网,但却具有相同的IP 地址段。因此,当发送 IP 数据包时,主机 A 与主机 B 都认为对方和自己处于同一个局域网。如果主机 A 要向主机 B 发送数据包,可它的地址缓存中并没有主机 B 的 MAC 地址,则主机 A 只好进行地址解析。但实际上主机 B 与主机 A 并不在同一个局域网中,连接两个网络的路由器并不会自动将主机 A 的广播发给主机 B 所在的网络,主机 B 也不回接收到来自主机 A 的请求,因此主机A 不会接到包含主机 B 的 MAC 地址的回复。对这种情况所作的 ARP 的改进称作ARP 代理。架在两个局域网之间的路由器用来代表主机B 回复主机A 的广播,它告之主机A 的并不是主机B 的MAC地址,即主机A 不可能直接与主机B 通信。而路由器告诉主机A 的是路由器本身的MAC 地址。如果主机A 想与主机B 通信,主机A 先向路由器发送信息。反过来的过程也是一样的。路由器并不自动转发ARP 广播,它只作为一个ARP代理设备。 ARP 代理的优势就是允许通信双方可以处于不同的局域网。当它也有缺点,首先,它增加了复杂度。其次,如果两个有相同IP 地址段的网络中间出现多个路由器,那么问题就会升级。ARP 代理同样会带来潜在的安全问题。因此,ARP代理应该被重新规划设计,并尽可能在两个局域网中架设一个路由器。2.32.3 ARPARP 欺骗欺骗2.3.12.3.1 ARPARP 欺骗原理欺骗原理当IP 数据报准备发送时,由数据链路层将它封装入以太网数据帧,然后才能在以太网中传送。然而在封装过程中,数据链路层并不知道以太网数据帧头中目的主机的MAC 地址。唯一的信息是IP 数据报头中的目的主机的IP 地址。为了找到与目的主机IP 地址相对应的MAC 地址,根据地址解析协议(ARP),源主机会以广播的形式发送一个ARP 请求以太网数据帧给以太网上的每一个主机。ARP 请求数据帧中包含目的主机的IP 地址,只有具有此IP 地址的主机收到这份广播报文后,才会向源主机回送一个包含其MAC 地址的ARP 应答。并且为了尽量减少广播ARP 请求的次数,每个主机都有一个ARP 缓存,这个缓存存放了最近的IP 地址与MAC 地址之间的映射记录。主机每隔一定时间或者当收到ARP应答,就会用新的地址映射对更新ARP 缓存。因为ARP 是一个无状态协议,所以对于大多数操作系统来说,如果收到一个ARP 应答,它们不管自己是否在此之前曾经发出ARP 请求,都会更新自己的ARP 缓存。这就为系统安全留下了很大的隐患。ARP 欺骗的核心思想就是向目标主机发送伪造的ARP 应答,并使目标主机根据应答中伪造的IP 地址与MAC 地址之间的映射对,更新目标主机ARP 缓存。假设S 代表源主机,即将要被欺骗的主机;D 代表目的主机,源主机S 本来是向它发送数据的;A 代表攻击者主机,进行ARP 欺骗。假设主机A 已知主机D 的IP 地址,于是它暂时将自己的IP 地址改为主机 D 的IP 地址。当源主机S 想要向主机D 发送数据时,假设目前其ARP 缓存中没有关于目的主机D 的记录,那么它首先在局域网中广播包含主机D 的IP 地址的ARP 请求。但此时攻击者主机A 具有与目的主机D 相同的IP 地址,于是分别来自攻击者主机A 与目的主机D的ARP 响应报文将相继到达源主机S。此时,攻击者主机A 是否能够欺骗成功就取决于源主机S 的操作系统处理重复ARP 响应报文的机制。不妨假设该机制总是用后到达的ARP 响应中的地址对刷新缓存中的内容。那么如果攻击者主机A 控制自己的ARP 响应晚于目的主机D 的ARP 响应到达源主机S,源主机S 就会将如下伪造映射:将目的主机D 的IP 地址对应攻击者主机A 的MAC 地址,保存在自己的ARP 缓存中。在这个记录过期之前,凡是源主机S 发送给目的主机D 的数据实际上都将发送给攻击者主机A,而源主机S 却毫不察觉。或者攻击者主机A 在上述过程中,利用其它方法直接抑制来自目的主机D 的ARP 应答将是一个更有效的方法而不用依赖于不同操作系统的处理机制。进一步分析,攻击者主机A 可不依赖于上述过程,直接在底层伪造ARP 响应报文来达到同样的欺骗目的。2.3.22.3.2 ARPARP 欺骗的攻击方式欺骗的攻击方式ARP 攻击发生时,攻击者利用地址解析协议本身的运行机制发动攻击行为。包括进行对主机发动IP 冲突攻击、数据包轰炸,切断局域网上任何一台主机的网络连接等[9]。ARP 欺骗的攻击方式有如下几种:(1)中间人攻击:中间人攻击就是攻击者将自己插入两个目标主机通信路径之间,使它如同两个目标主机通信路径上的一个中继,这样攻击者就可以监听两个目标主机之间的通信。其过程如下:C 侵染目标主机A 与B 的ARP 缓存,使得当A 向B 发送数据时,使用的是B 的IP 地址与C 的MAC 地址,并且当B 向A 发送数据时,使用的是A 的IP 地址与C 的MAC 地址。因此,所有A 与B 之间的通信数据都将经过C,再由C 转发给它们。如果攻击者对一个目 标主机与它所在的局域网的路由器实施中间人攻击,那么攻击者就可以窃取网络上与这个目标主机之间的全部通信数据,并且可以对数据进行窜改和伪造。但动态映射对存在过期的问题,而且主机A 与B 之间也会进行正常的ARP 数据包交互。要解决这个问题,主机C 可以选择比较小的时间间隔持续发送伪造的数据包,这样就可以使主机A 与B 之间的通信一直中断。(2)IP 地址冲突[9]:主机发送更改的ARP 报文,将伪装的MAC 地址映射到目标主机的IP 地址,制造出局域网上有另一台主机与受害主机共享一个IP 地址的假象,系统会检测到两个不同的MAC 地址对应同一个IP 地址,由于违反了唯一性要求,出现了IP 地址冲突,受害主机会自动向用户弹出警告对话框。最终导致被攻击主机无法正常上网。(3)拒绝服务攻击[8]:拒绝服务攻击就是使目标主机不能正常响应外部请求,从而不能对外提供服务的攻击方式。如果攻击者将目标主机ARP 缓存中的MAC地址全部改为根本就不存在的物理地址,那么目标主机向外发送的所有以太网数据帧会丢失,使得上层应用忙于处理这种异常而无法响应的外来请求,也就导致目标主机产生拒绝服务。还有其他方式的拒绝服务攻击。拒绝服务攻击还会对本子网内所有的 ARP请求信息进行响应,应答的MAC 地址全部填写为本子网网关的MAC 地址,由于网关自身是具有IP 转发功能的,因此导致本子网内部的任何数据通信都需要通过网关进行一次转发,加重网关负荷,会造成网关超负荷而崩溃或者等待队列过长,进而子网内部主机之间、子网内部与外部主机之间的通信连接全部失败或者收发数据超时。如果某一子网内存在很多具有IP 转发功能的主机(如该子网内存在很多路由器或者提供NAT 服务的服务器),利用篡改ARP 缓冲的技术就可以实现多种形式的讯息洪泛(Message Flood)。例如某子网存在具有IP 转发功能的主机A、B 和C, 将主机 A 本地ARP 缓冲 中默认网关对应的MAC 地址篡改为B 的MAC 地址,再将B 本地ARP 缓冲中默认网关对应的MAC 地址篡改为C 的MAC 地址,这样A 与网关的数据通道就变成了A 先到B,然后再经过C,最后到达网关,如果A 的数据流量很大,则B 与C 也会有较高的负荷,并且在本子网内将会产生较之原来3 倍的数据流量,也就是说主机越多,随之产生的流量也成倍增加,从而形成讯息洪泛,导致整个子网的性能急剧降低。一般交换网络采用的二层交换机自身维护的一个 ARP 缓冲,用于映射MAC地址对应的交换机端口号,这个缓冲中可容纳的映射条目数是有限的,如果不足够大,我们向其发送大量MAC 地址不重复的ARP 数据包,就有可能造成交换机拒绝服务,不能正常转发数据包。(4)克隆攻击:通过修改网络接口的MAC 地址,攻击者首先对目标主机实施拒绝服务攻击,使其不能对外部做出任何反应。然后攻击者就可以将自己的IP地址与MAC 地址分别改为目标主机的IP 地址与MAC 地址,这样攻击者的主机就变成了与目标主机一样的副本。攻击者就可以对目标主机进一步实施各种非法攻击,窃取各种通信数据。(5)ARP 应答畸形包攻击:如果我们自己精心构造一个小于正常ARP 报文大小的ARP 应答报文,由于目前的网络交换设备没有充分考虑到这种情况的出现,当网络上连续出现这种畸形报文达到一定数量的时候,交换机的MAC 缓存表就无法正常刷新,常用的操作系统对这种畸形报文暂时没有很好的处理方法,其严重后果就是导致整个局域网瘫痪。(6) ARP 缓冲区溢出攻击:进行攻击的主机持续把伪造的MAC-IP 地址映射对发给受害主机,受害主机会耗费大量的系统资源去维护ARP 高速缓存。如果进一步采用分布式攻击,可以由一台进攻主机控制远端几台中间主机发动进攻,这样攻击可以取得更好的效果。 2.3.32.3.3 ARPARP 攻击的检测攻击的检测当局域网内有某些用户遭受了ARP 欺骗攻击时,由于攻击端不断向被攻击者发送ARP 欺骗数据包,被攻击的主机会出现网络时断时续的现象。同时,被感染主机感染ARP 病毒后,也会向本网段内所有其他主机发送ARP 欺骗报文,谎称自己是这个网段的网关设备,让原本流向网关的数据流改道流向染毒主机,致使受害者虽然能构正常进行网络通讯,但信息却被窃取了。要定位感染ARP 病毒的电脑,有如下几种方法[10]:(1)可以查看三层交换机网段里面的ARP 信息,如果发现里面存在有多个不同IP 地址对应相同的MAC 地址列表的情况,就可以肯定该网段内有ARP 欺骗,这个MAC 地址就是感染了ARP 病毒的电脑MAC 地址。(2)用户端可以通过在命令窗口输入命令的方式,输入arp -a 命令即可显示在该局域网内,与该电脑曾进行过通信的主机MAC 地址,这样就会发现电脑网关所对应的MAC 地址是否被修改,如果被修改,即可判定该电脑感染了ARP病毒。(3)还可以通过安装网络检测软件来检测电脑是否遭受ARP 病毒的侵袭,如果在网段中有ARP 攻击,检测软件会有报警,一般情况下ARP 病毒软件会自动弹出攻击者的MAC 地址,或者显示一个与MAC 地址对应的两个IP 地址,其中一个IP 地址必然为网关,那么该MAC 地址对应的电脑就是发起ARP 欺骗的攻击者。(4) 另外,ARP 欺骗需要不停地向外发送ARP 应答包,因此容易造成网络拥塞。一旦怀疑有ARP 攻击,我们可以使用抓包工具来抓包,如果发现网内存在大量ARP 应答包,并且将所有的MAC 地址都指向同一个IP 地址,那么就说明存在ARP 欺骗攻击,这个MAC 地址就是用来进行ARP 欺骗攻击的主机MAC地址,这样就可以采取相应的控制措施。此外,利用三层交换机设备可检查其三层交换机设备上的ARP 表。如果发现有多个IP 地址对应同一MAC 地址,则说明此地址对应的计算机很可能中了此病毒。可通过下连的二层交换机的转发表查到此对应的交换机端口,从而定位出有问题的计算机,进而采取进一步的行动。还可以扫描本网段内的全部IP 地址,然后查看ARP 缓存表。如果有一3 个IP 地址对应的MAC 地址与网关的MAC地址相同,那么这个IP 地址和MAC 地址就是中了ARP 病毒计算机的IP 地址和MAC 地址。2.3.42.3.4 ARPARP 病毒的防御病毒的防御根据ARP 欺骗原理,在防御过程中主要关注点就是ARP 缓存表。因此,重点应放在目标主机拒绝伪造ARP 应答上。在不同的情况下,对ARP 欺骗的防御应该视ARP 欺骗的种类不同,采取不同的防御方法[6]。(1)设置静态ARP 缓存表:ARP 协议攻击最根本的原理就是改变IP 地址与MAC 地址的正确对应关系。所以可以采取静态ARP 表来防范,就是在目标主机的ARP 缓存中设置静态地址映射记录。这样,当主机A 向主机B 发送数据前,就不需要通过向所在的局域网广播ARP 请求来获得B 的MAC 地址,它会直接查询ARP 静态记录表来获得B 的MAC地址。攻击者也就没有机会向A发送ARP应答。但是,攻击者在未接收到ARP 请求的情况下仍会凭空伪造ARP 应答发送给主机A,主机A 将拒绝用伪造的数据更新ARP 缓存中的静态记录。但这种方法有很明显的缺点,就是在经常更换IP 地址的局域网环境里,由于每个主机都采用ARP 静态记录,其手工维护会十分繁琐,工作量非常大,因此这种方法在实际上应用中很少采用。(2)设置ARP 服务器:为了解决上述方法中维护静态记录工作分散的缺点,可以采用在局域网内部指定一台机器作为ARP 服务器来集中管理,专门保存和维护一个相对可信的局域网环境下所有主机的IP-MAC 地址映射记录。该服务器 通过查阅自己的ARP 缓存静态记录并以被查询主机的名义来响应局域网内部的ARP 请求。按照一定的时间间隔广播网段内所有正确的IP-MAC 地址表,同时可以设置局域网内部的其它主机只使用来自该ARP 服务器的ARP 响应。现在的问题是,如何将一台主机配置成只相信来自ARP 服务器的ARP 响应,目前还是很困难的。(3)交换机上绑定端口和MAC 地址:设置交换机的每个端口与唯一的MAC地址相对应,一旦来自该端口的MAC 地址发生变动,就自动封锁该端口,使主机无法连接到局域网。这样,攻击者就无法发送伪造ARP 数据帧,从而阻止了ARP 欺骗的发生。但该方法的缺点是不够灵活。(4)禁用网络接口做ARP 解析:在操作系统中禁止某个网络接口做ARP 解析协议以对抗ARP 欺骗的攻击,可以做静态ARP 协议设置(因为对方不会响应ARP请求报文)。例如手工输入“arp -s IP 地址 MAC 地址”。绝大多数操作系统如Unix、BSD、Windows NT 等,都可以结合“禁用网络接口做ARP 解析”和“使用静态ARP 缓存表”的设置来对抗ARP 欺骗攻击。对于Linux 操作系统,其静态ARP缓存表不会被动态刷新,在Linux 下使用ifconfig –arp,可以使网卡驱动程序停止使用ARP 协议,因此不需要“禁用网络接口做ARP 解析”即可对抗ARP 欺骗的攻击。(5)数据加密传输:通常情况下, ARP 欺骗攻击导致数据包从源主机流向攻击方,使得网络通信被非法截取和监听。因此可以使用数据加密传输方法,即使攻击方得到发送的通信数据包,也不能解密获得有价值的信息。当前常用的加密传输有:1)针对特定的单一应用的加密方法,这些加密协议工作在应用层,针对特定的应用进行加密。如应用于远程登录的SSH(Secure Shell),用于E-mail 保密的PGP(Pretty Good Privacy) 和S/MIME(Secure MIME) , 用于WWW 服务的SSL(Secure Sockets Layer)等。2)针对网络传输的虚拟专用网(VPN),VPN 工作在网络层,对所有的应用提供加密服务。它采用隧道技术,将内部专网的数据加密封装后,透过虚拟的公网隧道进 行传输,从而防止敏感数据被窃。3)针对认证机制的加密方法。比如用于增强Telnet 和FTP 安全性的Stanford SRP(Secure RemotePassword) 。(6)第三层交换方式:目前,基于IP 地址变换进行路由的第三层交换机逐渐被采用,第三层交换技术采用的是P 路由交换协议,以往的数据链路层的MAC地址和ARP 协议已经不起作用。但第三层交换机的价格比较昂贵。(7)安全ARP的应用:安全ARP是ARP功能的一种扩展,使用非对称加密技术。SARP协议是建立在ARP协议基础之上的,为保证SARP协议对ARP协议的兼容性,于是在标准ARP协议的信息头部插入额外的认证信息。通过这种方式,即使有些主机并不执行SARP协议,它仍可以处理SARP的数据信息。但在安全ARP协议网络中,网络中的所有主机都应该执行SARP协议。执行SARP协议的主机并不接受未经认证的信息,除非发送信息的主机被列在已知主机列表中,但执行ARP协议的主机可以接收认证信息。一般不推荐建立混合传统ARP与SARP协议的网络环境,因为在这样的网络环境中,执行传统ARP协议的主机仍旧会受到ARP病毒的感染。在执行SARP协议的机器中都有一份执行传统ARP协议主机的名单,这样才能保证必要的通信协同工作能力。通信的每台主机都有一个公钥/私钥对,用一个简单的验证提供了主机身份与其公钥的对应关系。所有的应答信息都有发送者的数字签名,接收方从AKD(Authoritative Key Distributor)中获得发送方的公钥,进而与信息发送方进行安全通信。SARP 采用数字签名算法作为其签名技术。(8)IPV6 的应用:在IPV6 环境下,定义了邻居发现协议(NDP)。邻居发现协议使用特殊的安全要求来控制对网络的访问,访问者需要有权限才能把主机接入网络,并且控制一些消息的认证,避免把数据发送到错误的地址,检验从一个经审定的路由发出的宣告信息,从一个授权主机发出的邻居宣告消息和从原始包发送的路由发出的 重定向消息。路由宣告消息发送到广播组的所有节点。可配置这个组的SA(Security Association,安全关联),邻居宣告消息发送给地址配送中心,邻居与地址配送中心先连接,后建立SA,主机和群之间也没有SA,由于有些SA 算法只保护组不受外界攻击,而密钥在组内是公开的,节点可能伪装成组内的任何一台路由器,不过这个问题可由SA 算法本身来解决。2.82.8 本章小结本章小结本章主要对该论文的理论知识背景进行了详尽的介绍。首先详细介绍了ARP 协议的原理、工作机制以及ARP 协议的详细应用,在对ARP 欺骗进行了详细的介绍之后,又分析了对ARP 欺骗攻击的具体检测方法,并总结出了对ARP欺骗攻击的各种防御措施。第第3 3 章章 局域网局域网ARPARP 病毒检测与防御病毒检测与防御3.13.1 局域网遭受局域网遭受ARPARP 病毒攻击的症状及危害病毒攻击的症状及危害局域网极易遭受ARP 病毒的攻击,一旦局域网内某台主机感染了ARP 病毒,该主机会不断向外发送数据包,造成网络堵塞。在整个网络感染病毒的初期,由于网络中仅有几台电脑被 ARP 病毒侵袭,因此网络中偶尔出现网速缓慢的现象,但不时会有主机提示IP 地址冲突,起初这种现象并未引起大家的重视,仅当做一般的IP 地址冲突来处理。一段时间过后,该现象越发严重,大范围出现提示IP 地址冲突,并有很频繁的网络堵塞和信息发送不成功的情况。同时,中ARP 病毒的主机系统运行非常缓慢,主机的本地连接显示发送数据不断迅速增大,而接收数据却少之又少。而当ARP 欺骗停止时,该现象立即消失。如果 ARP 病毒是对网关进行欺骗,它会伪造本网段内一系列IP 地址以及它们所对应的假的MAC 地址去刷新网关的ARP 缓存表,该行为会按照一定的频率不间断进行,使真实的地址信息无法保存在网关的ARP 缓存表中,因此网关所有的数据都只能发送给错误的 MAC 地址,造成网络内部的主机因无法收到信息而不能上网,该类欺骗不会对网络用户造成其他的影响。如果ARP 病毒是对网络内的主机进行欺骗,它会刷新用户主机的ARP 缓存表,欺骗者将其自己伪造成假网关,原本网络中其他主机发送和接收的信息都经过交换机收发,现在转由先通过欺骗者的主机然后再通过网关连接到互联网。欺骗者可以利用一些嗅探工具或抓包工具,获得被欺骗主机的保密信息及其他的访问信息。因为所有被欺骗者的信息都是通过欺骗转给网关,再由网关连接到外网的,因此网关会理所当然的认为所有信息都是由欺骗者主机发出的。当网关回应时,它根本不会找被欺骗者主机,而是直接将回应的信息发送给欺骗者主机,这样的话被欺骗者与外部的一切通信完全在欺骗者的监视下,欺骗者可采用任何手段管理被欺骗者,包括流量的限制等,因此用户会明显感觉上网的速度变慢。当该方式的ARP 欺骗程序停止运行时,用户可恢复正常的网关通信。该方式ARP 病毒发作时,影响的范围仅限在同网段内上网的主机。3.23.2 检测与分析检测与分析3.2.13.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 地址相同,则将主机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.23.2.2 ARPARP 欺骗数据包的捕获与分析欺骗数据包的捕获与分析将IP 地址为202.199.246.9,MAC 地址为00-CB-8C-54-60-27 的主机C 加入到通信环境中来作为进行ARP 欺骗的主机。由于ARP 欺骗的方式有很多种,我们以中间人攻击为例。在正常情况下,局域网内的主机上网要通过网关将信息发送出去。中间人攻击发生后,原本通过网关上网的主机转为先通过欺骗者主机,再由欺骗者主机将信息转发到网关。欺骗者主机可在收到信息后利用一些嗅探工具或抓包工具捕获被欺骗主机的一系列信息,如明文密码或访问信息等。图 3.2 ARP 欺骗数据包在主机C 对主机A 进行ARP 欺骗的同时,用抓包工具对数据进行抓捕,收到如图3.2 的ARP 欺骗数据。任何 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.33.3 ARPARP 欺骗的防御欺骗的防御ARP 欺骗的主要原理就是保持对ARP 缓冲表的刷新。因此,防御的重点应该是目标主机拒绝伪造ARP 应答包,从而保持本机ARP 缓存表的正确性。对ARP 欺骗的防御应视ARP 欺骗种类不同,采取相应的防御方法。3.3.13.3.1 针对网关针对网关 ARPARP 欺骗的防御欺骗的防御局域网用户很多,但相对集中,一般以建筑物为中心,每个建筑物中存在一至两个号段的IP 地址,所以我们按照建筑物将交换机的端口进行VLAN 划分,该划分方法属于基于IP 地址的VLAN 划分。然后再将几个VLAN 接到一个汇聚交换机上,同时在汇聚交换机上做IP 地址与MAC 地址的静态绑定。因为不同公司生产的交换机品牌不同,不同品牌的交换机有各自的命令,我们以Huawei-3COM 公司的Quidway S5516 交换机为例,为每个主机都添加IP 地址与MAC 地址对应关系的静态地址表项。在命令提示符窗口中进行的配置命令如下:dhcp-security static IP 地址 MAC 地址 DHCP 本身是一种为主机动态分配IP 地址的协议[12],我们通过对DHCP 协议加载安全功能,使其只为主机分配静态IP 地址以及绑定相应的MAC 地址。DHCP SECURITY 的绑定功能加载到某个VLAN 中,通过对DHCP 分配的IP 地址和相应的MAC地址一对一绑定,能够实现网关可以静态认定主机IP 与其MAC地址的对应关系,可通过此方法杜绝攻击主机对网关进行的ARP 欺骗。如果在网络中存在 ARP 欺骗,若欺骗主机使用的是自己真实的MAC 地址,在Huawei-3COM 公司的Quidway S3026C 交换机上可以实现对欺骗者主机进行封锁。因为在华为交换机中,对二层信息进行相应处理的访问控制列表(ACL)序号取值范围为4000~4999,且对主机的ARP 协议具有非常好的访问控制功能。当出现ARP 攻击时,网关上多个主机的IP 地址会被攻击主机占用,因此对二层访问控制列表的控制,可以很好的阻止攻击主机发出攻击包,禁止攻击主机的ARP 协议功能,达到杜绝攻击主机发出的数据包进入网络的目的。其命令如下:acl number 4000rule 12 deny arp ingress 欺骗者主机的MAC 地址 egress anypacket-filter link-group 4000 rule 12通过以上的方法,我们对刚开始出现并不十分频繁的ARP 欺骗进行简单的人工防御。3.3.23.3.2 针对网内主机针对网内主机 ARPARP 欺骗的防御欺骗的防御ARP 欺骗的方法千变万化,在局域网中经常出现的ARP 欺骗攻击除了对网关的欺骗外,还有对网内主机的欺骗。因此,我们要建立强烈的安全意识,不能仅把网络安全的信任关系建立在单一的IP 地址基础上或单纯的MAC 地址基础上,最理想的网络安全信任关系应该建立在IP 地址与MAC 地址综合基础之上。该防御方法的关键是在网络内的每台主机中建立一个静态的ARP 缓存表,将网关的 IP 地址与MAC 地址写入ARP 缓存表中,该记录不随ARP 缓存表的刷新而更改。以Windows 操作系统为例,在进行此操作前一定要确保自己的主机是安全的,即本机没有被ARP 欺骗病毒攻击过,然后打开命令提示符窗口,输入命令:arp -a,通过该命令可获得本机所在网络的网关MAC 地址。arp -d,通过该命令可以清空本机的 ARP 列表。arp -s 网关的IP 地址网关的 MAC 地址,该命令将网关的IP 地址与MAC地址绑定,并写入本机的ARP 缓存表中。当局域内出现较多 ARP 欺骗的情况时,我们采用该方法进行防御,并将其做成批处理文件放入开始菜单的启动文件夹中,以便开机即可运行,从而对ARP欺骗进行防御。3.43.4 ARPARP 欺骗防御方法的改进欺骗防御方法的改进由于ARP 病毒感染范围的不断扩大,仅使用人工维护进行ARP 欺骗的防御已经非常吃力。若使用上述方法,由于局域网用户计算机水平参差不齐,而且并不是每一位局域网用户都会执行上述方法,即开机后自行绑定网关IP 地址与MAC 地址。因此为了防止ARP 病毒进步一扩大对局域网的危害,我们对人工防御的方法进行了适当的改进。用户上网前须进行 IP 地址申请,然后将自己主机的MAC 地址上报到系统,系统自动将用户通过申请得到的IP 地址与上报的MAC 地址形成一个地址对,将其存放在一个表项中。系统每5 分钟自动搜索是否在表项中存在新分配下去的IP 地址,若存在新分配下去的IP 地址,则根据新分配的IP 地址,在表中读取出相应新上报的MAC 地址,形成新的地址对进行绑定,由系统使用如下命令进行批处理:dhcp-security static IP 地址 MAC 地址通过该方法不仅节省了大量的人力,而且方便快捷,能够及时且 快速的绑定新加入到局域网的客户端主机,为局域网提供了安全洁净的环境。3.53.5 本章小结本章小结本章根据局域网中出现ARP 病毒的情况,由浅入深,由简到繁的针对ARP病毒发作的不同阶段进行相应的处理。其中将ARP 欺骗按照针对网关与针对客户端主机制定了两种防御方案。同时,为防止ARP 病毒进一步大规模爆发,采取系统自动批量绑定IP 地址与MAC 地址的方法进行ARP 病毒防御。总结总结本文通过对ARP 协议的学习,以以太网的信息安全和管理作为切入点,围绕ARP 欺骗攻击防御相关技术进行了深入研究。论文主要完成以下几个方面的工作:(1)论文中阐述了当今国内外预防ARP 欺骗攻击技术的发展。在深入学习ARP 协议的原理以及相关应用之后,详细分析了ARP 欺骗攻击的主要特点。(2)针对现有的ARP 欺骗攻击方式,总结出相应的ARP 欺骗攻击检测方式与防御方法。(3)根据局域网发生ARP 欺骗攻击的实际情况,总结了局域网遭受ARP 欺骗攻击时的具体现象,详细分析了局域网中发生ARP 欺骗的原因,并针对ARP欺骗攻击的现象制定出一套检测与防御的方法,有效的制止了ARP 欺骗病毒在局域网中的蔓延,同时对该检测防御方法进行了改进。 本文在对局域网内部客户端主机进行 ARP 欺骗检测与防御方面做出了一定的工作,但对新加入网络的客户端主机在检测是否带有ARP 病毒方面还存在缺陷,因此这方面将作为本人今后的研究重点。参考文献[1] 唐德权.浅谈图书馆网络ARP攻击与防御[J].哈尔滨商业大学,2010(09):83-8[2] 昊慧敏.局域网ARP欺骗攻击及防御方案[J].同络矗讯及安,2008(05):869-871. [3] 陈博超.关于对局域网IP 冲突的研究[J].软件导刊,2010(02):111-112. [4] 孙新英.论局域网的安全管理策略[J].电脑知识与技术,2009(05):5363-5364. [5] 马鸿雁,宋海歌. 浅析ARP病毒原理及防范措施[J].电脑学习报,2009(06):143-145. [6] 郑先伟.ARP 欺骗网页劫持攻击分析[J].清华大学信息网络工程研究中,2007(11). [7] 项宁,管群ARP 漏洞及其ARP 攻击防范[J]. 软件导刊,2009(11):175-177. [8] 胡道元.网络设计师教程[M].北京:清华大学出版社,2004. [9] 郑纪蛟.计算机网络[M].北京:中央广播电视大学出版社,2000.
关 键 词:
局域网 arp 攻击 防御 策略 研究 毕业论文
 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:局域网arp攻击及防御策略的研究毕业论文
链接地址: https://www.wenku365.com/p-18760106.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给天天文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

1290478887@qq.com 2017-2027 https://www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开