一、TCP SYN 拒绝服务攻击 一般情况下,一个 TCP 连接的建立需要经过三次握手的过程,即: 1、建立发起者向目标计算机发送一个 TCP SYN 报文; 2、目标计算机收到这个 SYN 报文后,在内存中创建 TCP 连接控制块(TCB),然后向发起者回送一个 TCP ACK 报文,等待发起者的回应; 3、发起者收到 TCP ACK 报文后,再回应一个 ACK 报文,这样 TCP 连接就建立起来了
利用这个过程,一些恶意的攻击者可以进行所谓的 TCP SYN 拒绝服务攻击: 1、攻击者向目标计算机发送一个 TCP SYN 报文; 2、目标计算机收到这个报文后,建立 TCP 连接控制结构(TCB),并回应一个 ACK,等待发起者的回应; 3、而发起者则不向目标计算机回应 ACK 报文,这样导致目标计算机一致处于等待状态
可以看出,目标计算机如果接收到大量的 TCP SYN 报文,而没有收到发起者的第三次ACK 回应,会一直等待,处于这样尴尬状态的半连接如果很多,则会把目标计算机的资源(TCB 控制结构,TCB,一般情况下是有限的)耗尽,而不能响应正常的 TCP 连接请求
二、ICMP 洪水 正常情况下,为了对网络进行诊断,一些诊断程序,比如 PING 等,会发出 ICMP 响应请求报文(ICMP ECHO),接收计算机接收到 ICMP ECHO 后,会回应一个 ICMP ECHO Reply 报文
而这个过程是需要 CPU 处理的,有的情况下还可能消耗掉大量的资源,比如处理分片的时候
这样如果攻击者向目标计算机发送大量的 ICMP ECHO 报文(产生 ICMP洪水),则目标计算机会忙于处理这些 ECHO 报文,而无法继续处理其它的网络数据报文,这也是一种拒绝服务攻击(DOS)
三、UDP 洪水 原理与 ICMP 洪水类似,攻击者通过发送大量的 UDP 报文给目标