1.1 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连接请求。
1.2 icmp洪水
正常情况下,为了对网络进行诊断,一些诊断程序,比如ping等,会发出icmp响应请求报文(icmp echo),接收计算机接收到icmp echo后,会回应一个icmp echo reply报文。而这个过程是需要cpu处理的,有的情况下还可能消耗掉大量的资源,比如处理分片的时候。这样如果攻击者向目标计算机发送大量的icmp echo报文(产生icmp洪水),则目标计算机会忙于处理这些echo报文,而无法继续处理其它的网络数据报文,这也是一种拒绝服务攻击(dos)。
1.3 udp洪水
原理与icmp洪水类似,攻击者通过发送大量的udp报文给目标计算机,导致目标计算机忙于处理这些udp报文而无法继续处理正常的报文。