分析arp欺骗和icmp重定向带来的安全问题

上传人:枫** 文档编号:488815551 上传时间:2023-01-22 格式:DOCX 页数:3 大小:16.53KB
返回 下载 相关 举报
分析arp欺骗和icmp重定向带来的安全问题_第1页
第1页 / 共3页
分析arp欺骗和icmp重定向带来的安全问题_第2页
第2页 / 共3页
分析arp欺骗和icmp重定向带来的安全问题_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《分析arp欺骗和icmp重定向带来的安全问题》由会员分享,可在线阅读,更多相关《分析arp欺骗和icmp重定向带来的安全问题(3页珍藏版)》请在金锄头文库上搜索。

1、分析arp欺骗和icmp重定向带来的安全问题*磨钟海 唐天敏 严毅(广西大学计算机与电子信息学院,南宁530004)摘 要:文章详细的解释了 ARP欺骗及ARP结合ICMP重定向进行高级欺骗的原理,利用ARP和ICMP 协议不完善的地方,可以实现在不同类型的局域网中sniffer,盗取用户的信息;甚至可以实现简单的DOS 攻击手段。最后简单探讨了应对这两个问题的方法,并提供了一个基于linux的检测工具。关键字:欺骗、重定向、攻击ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保 证通信的顺利进行。ICMP协议的基本功能是用于在IP主机和路由器之间传递包括网络通 不

2、通、主机是否可以到达、路由是否可用等网络本身的控制消息。通过发送伪造的ARP包, 给目标计算机指定错误的MAC地址,实现欺骗的目的。但是如果要绕过网关实现ARP欺 骗,必须得结合ICMP重定向。因此,要防范ARP欺骗,必须将各个计算机的IP地址与 MAC地址联系起来,设置静态的MAC与IP对应表。1 ARP欺骗当子网内的一台计算机受到入侵时,其它计算机的安全也将受到ARP欺骗的威胁。现在来看以下的网络结构:IP地址10.0.0.110.0.0.210.0.0.310.0.0.4主机名catratdogbat主机硬件地址AA:AABB:BBCC:CCDD:DD所有的主机在以太网中以简单的方式进行

3、连接(没有交换机、智能HUB)。入侵机子为 cat,被侵入机子为dog。假设dog信任rat,所以伪装成rat是入侵的第一步。但一定不能把 cat的IP设成rat的IP,因为这种方法会造成竞争状态,而且IP冲突现象会立即被发现,并 记录下来。开始伪装前,最好使用-ifconfig eth0关掉pcHt的ARP协议。只要让dog相信cat, 就可以实现ARP欺骗。创造一个给dog的ARP应答,源地址是10.0.0.2,源硬件地址是 AA:AA,目标地址是10.0.0.3和目标硬件地址是CC:CC。当dog收到这个伪造的应答包, 就会完全相信rat的硬件地址是AA:AA。但是dog中缓存会过期,所

4、以需要不断的重新发送 ARP应答,以防止被入侵主机发觉。首先来设置网络接口别名(ifconfig eth0:1 10.0.0.2),添加rat的IP地址并且打开ARP 协议(ifconfig eth0 arp)。然后在正确的网络接口上设置到dog的路由。再设置dog的ARP 缓存。最后,关掉网络接口的ARP功能。当伪造的包持续不断的发送出去之后,dog就会 认为cat就是rat。这种简单的攻击方式只能在简单的局域网内使用,因为ARP包是不会被 路由的。不过在使用了交换机,同时使用了网关的情况下也可以实现ARP欺骗。例如下面这样 的情况:在局域网中192.168.0.24和192.168.0.2

5、9都是通过网关192.168.0.1上网的,假定攻 击者的计算机为192.168.0.24,被攻击者的计算机为192.168.0.29。首先告诉192.168.0.29, 网关 192.168.0.1 的 MAC地址是 192.168.0.24 ;其次告诉 192.168.0.1,192.168.0.29 的 MAC 地址是192.168.0.24。这样192.168.0.29和192.168.0.1之间的数据包,就会发给攻击者的计 算机192.168.0.24。但是仅仅这么做会出现问题,192.168.0.29将不能上网了,因为原来发给 192.168.0.1的数据包都被192.168.0.

6、24接收了,而并没有发给网关192.168.0.1。这时候需要 计算机192.168.0.24设置一个包转发,把从192.168.0.29收到的包转发给192.168.0.1,再把 从192.168.0.1收到的包发给192.168.0.29。这样192.168.0.29就不会发觉自己被监听。2 ICMP重定向以上所提到的是所有的机子在同一网段的情况下,设想一下,如果两台机子不在同一网 段,如以下三台机子:A: IP 地址 192.168.0.1 硬件地址 AA:AAB: IP 地址 192.168.1.2 硬件地址 BB:BBC: IP 地址 192.168.0.3 硬件地址 CC:CCA机

7、与C机之间即使使用上面的方法欺骗成功,主机B和主机A之间也无法建立telnet 会话,因为路由器不会把主机A发给主机B的包向外转发,路由器会发现地址在192.168.0. 这个网段之内。这种情况下就涉及到另外一种欺骗方式一一ICMP重定向。把ARP欺骗和 ICMP重定向结合在一起就可以基本实现跨网段欺骗的目的。这种重定向通常是由默认路由器发来的,通告到达某一网络的更近的路由。最初,既可 以通告网络重定向,也可以通告主机的重定向,但是现在,由于网络重定向被否决,仅剩下 了主机重定向。正确的制作一个经过完整检查的ICMP包(必须由默认路由器发来,发向重 定向机器,新的路由应该是一个网络的直接连接等

8、等),接收者会对系统的路由表进行更新。 这是ICMP的安全问题,除了路由器外RFC声明系统必须遵循这个重定向。ICMP重定向提 供了一个非常有力的DoS工具。不像ARP缓存更新,路由表不存在的过期问题。并且不需 要在本地网络,可以从任何地方发起攻击。所以当目标接受了 ICMP重定向之后,目标就不 会再和网络上的一些机器进行通讯。TCP/IP协议实现中关于主机接收ICMP重定向报文主要有下面几条限制:新路由必须 是直达的,重定向包必须来自去往目标的当前路由,重定向包不能通知主机用自己做路由, 被改变的路由必须是一条间接路由。由于有这些限制,所以ICMP欺骗实际上很难实现。但 是攻击者将可以主动的

9、根据上面的思维寻找一些其他的方法。3解决方案ARP是一个隐藏的底层协议,很难引起管理员的注意,因此当一个网络出现问题的时 候,应该考虑ARP是否出了问题。你可以用arp命令来检查ARP缓存,但是如果一个ARP 欺骗通过网关从另一个网络发起,单靠检查ARP缓存是不行的,只能在路由表中发现重定 向的路由信息。起初ARP攻击被设计来攻击10Base2以太网,如果网络使用一些比较先进 的方式进行连接,攻击就很容易被发现。但是,现在通过网关,arp欺骗得以在具有交换机, 智能HUB的局域网中实现,并有越来越多的软件利用这些简单的原理实现在局域网中 sniffer。因此可以考虑关闭系统上的ICMP重定向,

10、这样同时可以减少与RFC1122的冲突。事实上,高级ARP攻击可能可以通过另外的途径饶过以上提到的某些障碍,例如以下 三种高级ARP攻击的方式,及所带来的令大多数网络管理员头疼的问题:(1) 被虚拟ARP冲突攻击(如局域网网络终结者)如何发现攻击源?(2) 局域网网络连接被封,即有计算机发送大量的虚假ARP应答,导致无法查询局域网ARP查询?如何突破?(3) 虚拟ARP查询,如何发现查询源?第一种通过大范围的ARP查询检测是可以发现一定的异常情况,在一定程度上可以发 现攻击源,但是实际上局域网终结者并不ARP查询整个网段,就是说局域网终结者启动的 时候根本无法通过网络截包发现。第二种ARP攻击

11、就是正常的ARP通讯被干扰,很多时候 也很难确定攻击源,应为对方可以直接对你的IP发出的查询进行封锁。第三种技术就更难 发现了,因为ARP包和应答都是虚拟的。这些问题都有待于探讨。一般在防止ARP欺骗和ICMP重定向的最基础的做法就是不要把网络安全信任关系建 立在ip地址的基础上或硬件mac地址基础上,理想的关系应该建立在ip+mac基础上,设置 静态的mac-ip对应表。如果没有必要,应该停止使用ARP,将ARP做为永久条目保存在 对应表中。在linux下可以用ifconfig -arp可以使网卡驱动程序停止使用ARP。使用代理网 关发送外出的通讯。修改系统拒收ICMP重定向报文在linux

12、下可以通过在防火墙上拒绝 ICMP重定向报文或者是修改内核选项重新编译内核来拒绝接收ICMP重定向报文。在 win2000下可以通过防火墙和IP策略拒绝接收ICMP报文。在Linux这种提供源码的机器上,可以重新编译内核实现以上提到的防范措施。另外, 应该认识到并不是安装了防火墙就可以预防多数情况的发生。试想像这样一个环境,所有的 机器都直接与Internet相连,当与不信任的人共用内部网时,且路由器由别的机构控制时, 防火墙将不能起到应有的作用。在这里提供一个Perl脚本,设置它在系统启动时运行。原 理是在Linux机器中维持一个已知的IP地址与硬件地址的缓存,设置标志,以使其不会被 更新和

13、改变。配置文件非常简单一一就是以上所提到的最基本的做法IP地址 配MAC addr, 用空格键分割,以“#”作为注释。这个脚本仅仅在Linux机器上测试过在其它平台上的 人需要修改arp命令的格式(脚本需要运行在网络接口启动之后,服务和客户运行之前;另 外,一些人会在ARP被锁定时窃取连接)。#!/usr/bin/perl# Program: forcehwaddr# Program to run ARP to force certain tables.foreach () ( # For each input line.chomp; # Strip if CR/LFif (/人#/) ( n

14、ext; # If its a comment, skip it.if ($host, $hw) = /s*(.+?)s+(S+)s*/) = 2) &!(/A#/) printf(Setting IP %-15s to hardware address %sn, $host, $hw);system /usr/sbin/arp -s $host $hwn; 4小结应该指出的是,基于以上的解决方案还不能完全杜绝高级ARP攻击。其原因在于:首 先,归根结底ARP协议本身就不是一个完善的网络协议;其次,无论是在网络中还是在我 们的现实生活中,开放和安全本身就是一对矛盾的东西,若开放过多的功能,安全性就要随 之降低,若要求高安全性就放弃开放。本文用自己构造的ARP信息去更换ARP表,此时 ARP表是静态的(static),而非动态-静态条目不会响应伪造的ARP包,那么,受保护的 机器的ARP表就不会因为外界的错误信息而更新。所以可以说,采用本文的方法是可行的。参考资料 RFC826、RFC814、RFC1029、RFC 1122、RFC1166*本文得到广西大学科研基金和广西大学第二批创新学分实践项目的资助作者简介:磨钟海、唐天敏,本科生;严毅,工程师,指导教师

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号