DDOS知识总结

从DDoS的危害性和攻击行为来看,我们可以将DDoS攻击方式分为以下几类:

a)资源消耗类攻击

资源消耗类是比较典型的DDoS攻击,最具代表性的包括:Syn Flood、Ack Flood、UDP
Flood。这类攻击的目标很简单,就是通过大量请求消耗正常的带宽和协议栈处理资源的能力,从而达到服务端无法正常工作的目的。

1.UDP / ICMP洪水攻击

UDP小包攻击,占用网络设备的带宽资源

UDP大包攻击,当UDP的打包大小超过MTU值时,在底层传输就会有ip分片,迫使攻击目标在接到UDP数据包后进行IP分片重组,浪费

2.tcp连接洪水攻击

tcp在设计之初,专注于可用性,而忽视了对安全性的考虑,因此TCP协议存在很多安全缺陷和安全性问题。

建立大量恶意的tcp连接,建立tcp连接后并不发送数据,占满被攻击目标的tcp连接表,消耗其系统资源,使其无法接受新的tcp连接请求。

DDOS知识总结_第1张图片

3.syn洪水攻击

在建立tcp连接的过程中,如果在服务器返回SYN+ACK报文后,客户端由于原因没有发送ACK报文对其进行确认,服务器就需要重传SYN+ACK报文,并等待客户端的确认报文直到tcp连接超时。这种等待客户端确认的连接状态通常被称为半连接状态。

攻击者利用受控主机发送大量的TCP SYN报文,使服务器打开大量的半开连接,占满服务器的连接表,从而影响正常用户和服务器建立会话,造成拒绝服务。

4.push + ack洪水攻击

由于带有PSH标志位的TCP数据包会强制要求接收端将接收缓冲区清空并将数据提交给应用层处理,因此当攻击者向攻击目标发送大量的PSH+ACK时,被攻击目标就会消耗大量的系统资源来进行接收缓冲区的清空处理,导致无法正常处理数据。

5.RST洪水攻击

6.SSL DOS攻击

正常情况下,进行数据传输之前,进行一次SSL握手,协商加密算法交换加密密钥,进行身份确认。

SSL有个选项Renegotiation,通过它可以进行密钥的重新协商以建立新的密钥。

攻击方法:

在进行SSL连接并握手之后,攻击者反复不断的进行密钥重新协商过程,而密钥重新协商过程需要被攻击目标投入比客户端多15倍的cpu计算资源。如果有大量主机进行攻击,则会使服务器忙于协商密钥而完全停止正常的服务。

7.SSL洪水攻击

 

b)反射类攻击

反射攻击也叫放大攻击,该类攻击以UDP协议为主,一般请求回应的流量远远大于请求本身流量的大小。

攻击者通过流量被放大的特点以较小的流量带宽就可以制造出大规模的流量源,从而对目标发起攻击。

反射类攻击的原理:反射攻击的数据包与平常的数据包不同,反射数据包的目的地址指向路由器、服务器这些反射器,而源ip地址则被篡改成被攻击机器的ip,反射器(服务器或路由器)在收到数据包后,会以为是被攻击目标所发来的合法请求,然后将响应数据发送给被攻击机器。

1.ack反射攻击

DDOS知识总结_第2张图片

攻击者将SYN包的源ip地址伪造成被攻击目标的ip地址,服务器的应答将会直接发送给攻击目标,攻击者可通过受控主机向大量不同的服务器发送此伪造的SYN数据包,从而使服务器响应的大量SYN-ACK应答数据涌向被攻击目标,占用目标的网络带宽资源并造成拒绝服务。

ACK攻击的优点在于能够比较有效的隐藏攻击的来源。

2.DNS放大攻击

EDNS0中,扩展了DNS数据包的结构,增加了OPT RR的字段。

在一定程度上说,DNS放大攻击是反射攻击的一种,只是响应数据要多于请求数据。

DDOS知识总结_第3张图片

2.NTP放大攻击

利用的是NTP协议的monlist,monlist请求返回的数据量与一段时间内和NTP服务器交互的客户端数量有关。

由于NTP服务使用的是UDP单包通信,因此攻击者可以将伪造源ip地址的UDP请求包发送给NTP服务器,伪造客户端和NTP服务器的交互,增加和NTP服务器交互的客户端数量,一次来增加monlist请求的响应数据量并增大NTP放大器的放大倍数。

DDOS知识总结_第4张图片

与ACK反射攻击和DNS放大攻击类似,发送NTP放大攻击也需要先进行网络扫描,以获得大量的NTP服务器,并向这些NTP服务器发送伪造源地址的请求来进行放大攻击。

c)慢速攻击

1.sockstress

sockstress首先会完成tcp三次握手以建立tcp连接,但是在三次握手的最后一次ack应答中,攻击者将tcp窗口大小设置为0,随后进行一次数据传输,攻击目标在传输数据时,发现接收端的tcp窗口大小为0,就会停止传输数据,并发出tcp窗口探测包,询问攻击者其tcp窗口是否有更新,由于攻击者没有更改tcp窗口的大小,被攻击者会一直维持tcp连接并等待数据传输,并且不断的进行窗口更新的探测。

如果攻击者利用大量的受控主机进行sockstress攻击,被攻击目标会一直维持大量的tcp连接并尽心大量窗口更新探测,其tcp连接表会逐渐消耗殆尽,从而无法接受新的连接。

你可能感兴趣的:(玩转Linux编程,职场生涯)