拒绝服务攻击原理总结

1、ping of death (死亡之ping)

ping命令主要用ICMP传输,通常,大部分系统所规定的ICMP数据包大小为64KB,TCP/IP协议栈根据该大小分配内存空间。这就构成了本方式拒绝服务的攻击原理:

攻击者通过构造超过64KB的ICMP包,使得没有受保护的网络系统出现内存分配错误,TCP/IP栈协议栈崩溃,导致系统系统拒绝服务。

2、Teardrop(泪滴)

数据包传输过程中,因为不同网络环境的原因,数据包可能需要被分段传输。数据包分段有两个重要的参数:偏移量和长度

如果我们构造这样两个数据包:第一个:偏移量为0,长度为N;第二个:偏移量小于N,长度m(任意);

当这两个包发送到被攻击系统上时,系统认为在长度0到N之间还有很多有无数个长度为m数据包未送达,接收系统为了合并这些包,会自动为这些未收到的数据包建立内存空间(当然这些数据包实际是不存在,只是系统这样认为),当这几个参数足够大时,接收系统的资源会因为分配而严重匮乏,有时可能导致重启,导致系统拒绝服务。

3、UDP flood(UDP洪水)

该攻击方式通常用户类UNIX系统

UDP是一种面向无连接传输的协议。攻击者C可以伪造一台开着echo服务的主机A向另外一台B的chargen服务发起连接(将该伪造的数据包回复地址设置为A),当数据包传送到B时,B会将回执发送给A。攻击者可以在这过程中反复伪造,在AB之间发送大量垃圾数据,占用大量带宽,导致网络系统无法正常工作,拒绝服务

4、SYN flood(SYN 洪水)

这种攻击其实是用了TCP协议连接时三次握手的缺陷造成的。

TCP连接三次握手的过程是:A向B发送带有SYN标志位的连接请求。B收到该请求后需要向A反馈带有ACK,SYN标志位的回复。A收到B的回复后发送带有ACK标志位的连接确认后,A、B之间正式建立连接

攻击者A可以在最后一步时,不向B返回ACK标志位的确认信息,这个时候B就要等待A,知道超时。当攻击者发出持续大量SYN标志位连接请求到同一台主机,并且均不作回应。任何主机系统的TCP连接数都是有限制的,这就导致了大量无效的连接处于等待状态,占用了连接数,而其他正常的连接无法建立,导致拒绝服务。

5、IP欺骗攻击

这个原理相对简单,我们知道TCP协议中有一种带有RST(复位)标志的数据包,用于在连接错误时进行反馈

如果A与B已经建立连接,我们至于要伪造A的IP,发送带有RST标志位的数据包到B,B就会认为与A的连接出现错误,从而将A从会话缓冲区中清除已经与A建立好的连接,导致A与B连接失效,造成拒绝服务。

上述任何一种攻击都可以被运用于DDOS攻击,即分布式拒绝服务攻击,从多个平台发起。

这里就产生了集中DDOS特有的拒绝服务攻击类型

1、TCP全连接攻击

现在部分防火墙可以识别SYN flood攻击,并给予有效阻隔,但是不会阻断合法的TCP连接(需要保证服务正常)。攻击者通过控制大量肉鸡与被攻击者建立大量正常的连接,导致系统资源匮乏,产生拒绝服务。

2、基于脚本语言的DDOS攻击

现在在web上普遍采用后台脚本语言+数据的模式构建系统,用户发起get,post等查询对于用户来说,消耗的资源微乎其微。但是后台系统却要在数据库中做大量查询操作,这些查询操作往往比较消耗系统资源。如果从多个平台发起正常的查询操作,会导致后台系统数据库占用大量系统资源来进行查找,造成拒绝服务攻击。

原文地址:https://www.cnblogs.com/zlgxzswjy/p/6445367.html