如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
6-3ICMP协议ICMP:InternetControlMessageProtocol,网络控制报文协议。对于TCP/IP协议,我们都非常熟悉,是对于ICMP协议,可能了解的就很有限了。ICMP协议是一个非常重要的协议,它对于网络安全具有极其重要的意义。它是TCP/IP协议族中的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。我们可以通过Ping命令发送ICMP回应请求消息并记录收到ICMP回应回复消息。通过这些消息来对网络或主机的故障提供参考依据。我们在网络中经常会使用到ICMP协议,只不过我们觉察不到而已。比如我们经常使用的用于检查网络通不通的Ping命令(Linux和Windows中均有),这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令,如:跟踪路由的“tracert”命令也是基于ICMP协议的。ICMP协定内容及功能:从技术角度来说,ICMP就是一个“错误侦测与回报机制”,其目的就是让我们能够检测网路的连线状况﹐也能确保连线的准确性﹐其功能主要有:1.侦测远端主机是否存在。2.建立及维护路由资料。3.重导资料传送路径。4.资料流量控制。ICMP在沟通之中,主要是透过不同的类别(Type)与代码(Code)让机器来识别不同的连线状况。下面让我们看看常用的ICMP实例,以更好了解ICMP的功能与作用。ICMP的重要性:ICMP协议对于网络安全具有极其重要的意义。ICMP协议本身的特点决定了它非常容易被用于攻击网络上的路由器和主机。1999年8月海信集团“悬赏”50万元人民币测试防火墙的过程中,其防火墙遭受到的来自ICMP攻击的达334050次之多,占整个攻击总数的90%以上!可见,ICMP的重要性绝不可以忽视!比如,可以利用操作系统规定的ICMP数据包最大尺寸不超过64KB这一规定,向主机发起“PingofDeath”(死亡之Ping)攻击。“PingofDeath”攻击的原理是:如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。(现在的操作系统已经限制了发送ICMP数据包的大小,解决了这个漏洞)此外,向目标主机长时间、连续、大量地发送ICMP数据包,也会最终使系统瘫痪。大量的ICMP数据包会形成“ICMP风暴”,使得目标主机耗费大量的CPU资源处理,疲于奔命。如何应对ICMP攻击:虽然ICMP协议给黑客以可乘之机,但是ICMP攻击也并非无药可医。只要在日常网络管理中未雨绸缪,提前做好准备,就可以有效地避免ICMP攻击造成的损失。对于“PingofDeath”攻击,可以采取两种方法进行防范:第一种方法是在路由器上对ICMP数据包进行带宽限制,将ICMP占用的带宽控制在一定的范围内,这样即使有ICMP攻击,它所占用的带宽也是非常有限的,对整个网络的影响非常少;第二种方法就是在主机上设置ICMP数据包的处理规则,最好是设定拒绝所有的ICMP数据包。设置ICMP数据包处理规则的方法也有两种,一种是在操作系统上设置包过滤,另一种是在主机上安装防火墙。IP层的差错控制的特点:ICMP协议设计的最初目的主要是用于IP层的差错报告,由路由器或信宿机以一对一的模式向信源机报告发生传输错误的原因。ICMP与IP协议位于同一个层次(IP层),但ICMP报文是封装在IP数据报的数据部分进行传输的。它并不作为一个独立的层次,而只是作为IP层的一部分。ICMP协议是对IP协议的补充。用于IP层的差错报告、拥塞控制、路径控制以及路由器或主机信息获取。1、IP层解决的主要是信宿不可达的问题。由于信宿机本身不可达,使得信宿机无法直接参与控制,所以要想通过端到端的方式来解决不太现实;2、IP层仅仅涉及与路径和可达相关的差错问题,而不解决数据本身的差错问题;3、IP层的差错与控制有一个独立的协议ICMP完成,IP协议不负责完成差错与控制功能。4、控制是建立在对信息了解的基础上的,在ICMP中控制方可以通过主动与被动两种方式了解信息:主动方式向对象发出询问,被动方式则是被动接收对象所报告的信息。ICMP报文可以分为三大类:差错报告、控制报文、请求应答报文。ICMP差错报告部分弥补了IP协议的不可靠问题。特点如下