攻防,畸形报文单包攻击检测防御原理

  • 作者:
  • 时间:2022-01-20 09:37:36
简介 攻防,畸形报文单包攻击检测防御原理

Ping of Death攻击

路由器对包的大小是有限制的,IP报文的长度字段为16位,即IP报文的最大长度为65535。如果遇到大小超过65535的报文,会出现内存分配错误,从而使接收方的计算机系统崩溃。攻击者只需不断的通过Ping命令向攻击目标发送超过65535的报文,就可以使目标计算机的TCP/IP堆栈崩溃,致使接收方系统崩溃。

防护办法:

Anti-DDoS设备检测数据包的大小是否大于65535字节,对于大于65535字节的数据包,则丢弃。

IP分片报文攻击

IP报文头中的不分段(DF)位和更多分段(MF)位用于分片控制,攻击者通过发送分片控制非法的报文,从而导致主机接收报文时产生故障,报文处理异常,甚至导致主机崩溃。

防护办法:

检测到报文控制位是下列情况之一时,则直接丢弃并记录攻击日志:

DF位为1(表示不能对数据包分段),而MF位也为1(表示还有更多的分段)。

DF位为1,而分段偏移(Offset) > 0。

DF位为0,而分片Offset + Length > 65535。

TCP报文标志位攻击

TCP报文标志位包括URG、ACK、PSH、RST、SYN、FIN六位,攻击者通过发送非法TCP flag组合的报文,对主机造成危害。

防护办法:

将检查TCP报文的各个标志位,若出现以下情况,则视为攻击,予以丢弃并记录攻击日志:

  • 6个标志位全为1。
  • 6个标志位全为0。
  • SYN和FIN位同时为1。
  • SYN和RST位同时为1。

FIN位为1,而ACK位为0。

Teardrop攻击

对于一些大的IP数据包,为了迎合链路层的MTU(Maximum Transmission Unit)的要求,需要传送过程中对其进行拆分,分成几个IP包。在每个IP报头中有一个偏移字段和一个拆分标志(MF),其中偏移字段指出了这个片段在整个IP包中的位置。如果攻击者截取IP数据包后,把偏移字段设置成不正确的值,接收端在收到这些分拆的数据包后,就不能按数据包中的偏移字段值正确组合出被拆分的数据包,这样,接收端会不停的尝试,以至操作系统因资源耗尽而崩溃。

防护办法:

对接收到的分片数据包进行分析,计算数据包的偏移量是否有误,如果有误则丢弃,并记录攻击日志。

WinNuke攻击

WinNuke攻击又称“带外传输攻击”,它的特征是攻击目标端口,被攻击的目标端口通常是139,而且URG位设为1,即紧急模式。WinNuke攻击是利用Windows操作系统的漏洞,向端口发送一些携带TCP带外(OOB)数据报文,但这些攻击报文与正常携带OOB数据报文不同,其指针字段与数据的实际位置不符,即存在重合,这样Windows操作系统在处理这些数据时,就会崩溃。

还有一种是IGMP(Internet Group Management Protocol)分片报文。一般情况下IGMP报文是不会分片的,很多系统对IGMP分片报文的处理也都存在问题。

防护办法:

首先判断数据包目标端口是否为139,并判断URG位是否为1,以及URG指针不为空,同时满足以上三个条件的报文将被丢弃,并记录攻击日志。

如果收到IGMP分片报文,则可能是受到了WinNuke攻击。Anti-DDoS设备可以对这种IGMP分片报文进行防御。

Smurf攻击

攻击者向网络中的广播地址发送源IP伪造为受害者的ICMP请求报文,使得网络中的所有主机向受害者回应ICMP应答报文,这样造成受害者系统繁忙,链路拥塞。

防护办法:

检查ICMP请求报文的目的地址是否为网络的A、B、C类广播地址,如果是则丢弃。

Land攻击

Land攻击是指攻击者向受害者发送TCP报文,此TCP报文的源地址和目的地址同为受害者的IP地址。这将导致受害者向它自己的地址发送回应报文,从而造成资源的消耗。

防护办法:

检查TCP报文的源地址和目的地址是否相同,或者TCP报文的源地址是否为环回地址,如果是则丢弃。

Fraggle攻击

当主机启用了端口7(ECHO)和19(Chargen)时,主机在收到目的端口为7(ECHO)或19(Chargen)的UDP报文后,就会产生回应。主机在收到目的端口为7的UDP报文后,会像ICMP Echo Reply一样回应收到的内容;而当主机收到目的端口为19的UDP报文后,会产生一串字符流。就像Smurf一样,这两个UDP端口都会产生大量的应答报文,占据网络带宽。

攻击者可以向攻击目标所在的网络发送UDP报文,报文的源地址为被攻击主机的地址,目的地址为被攻击主机所在子网的广播地址或子网网络地址,目的端口号为7或19。子网中启用了端口7(ECHO)和19(Chargen)的主机都会向被攻击主机发送回应报文,从而产生大量的流量,占满带宽,导致受害网络的阻塞或受害主机的崩溃。

即使子网上没有启用端口7(ECHO)和19(Chargen)的主机也将产生一个ICMP不可达消息,因而仍然消耗带宽。若攻击者将UDP报文的源端口改为19,目的端口为7,这样会不停地产生大量回应报文,其危害性更大。

防护办法:

对Fraggle攻击直接拒绝,并将攻击记录到日志。

IP欺骗攻击

IP欺骗攻击是一种常用的攻击方法,同时也是其他攻击方法的基础,这是由IP协议自身的特点决定的。IP协议依据IP头中的目的地址来发送IP报文,如果目的地址是本网络内的地址,则被直接发送到目的地址;如果目的地址不是本网络地址,则被发送到网关,而不对IP包中提供的源地址做任何检查,默认为IP包中的源地址就是发送IP包主机的地址。

攻击者通过向目标主机发送源IP地址伪造的报文,欺骗目标主机,从而获取更高的访问和控制权限。该攻击导致危害资源,信息泄漏。

防护办法:

对此类攻击还是按照DDOS攻击的方式处理。

关闭