目录
终端访问Web服务器之前需要和服务器之间建立TCP连接。Web服务器在会话表中为每一个TCP连接创建一项连接项,连接项将记录TCP连接从开始建立到释放所经历的各种状态。一旦TCP连接释放,会话表也将释放为该TCP连接分配的连接项。
会话表中的连接项是有限的。SYN泛洪攻击就是通过快速消耗掉Web服务器TCP会话表中的连接项,使得正常的TCP连接建立过程因为会话表中的连接项消耗尽而无法正常进行的攻击行为。
攻击者发送TCP SYN,SYN是TCP三次握手中的第一个数据包,而当服务器返回ACK后,该攻击者就不对其进行再确认,那这个TCP连接就处于挂起状态,也就是所谓的半连接状态,服务器收不到再确认的话,还会重复发送ACK给攻击者。这样更加会浪费服务器的资源。攻击者就对服务器发送非常大量的这种TCP连接,由于每一个都没法完成三次握手,所以在服务器上,这些TCP连接会因为挂起状态而消耗CPU和内存,最后服务器可能死机,就无法为正常用户提供服务了。
黑客终端伪造多个不存在的IP地址,向服务器发起连接请求。服务器接收到SYN=1的请求连接的报文后,为请求建立的TCP连接在会话表中分配一项连接项,并发送SYN=1,ACK=1的响应报文给发送方。但由于黑客终端的IP地址是伪造的,服务器就无法再次接收到来自客户端的确认报文,TCP连接处于半连接状态,分配的连接项被闲置。当连接项被耗尽,服务器就无法正常工作。
黑客终端随机选择一个IP地址作为目的IP地址,向IP地址为IP P的普通终端发送ICMP ECHO请求报文,但该请求报文被封装成以攻击目标的IP地址IP D为源IP地址,以IP P为目的地址的IP分组。当IP地址为IP P的终端接收到ICMP ECHO请求报文后,会给IP D攻击目标发送ICMP ECHO响应报文,整个过程,黑客终端对于攻击目标是透明的。
黑客终端在所处网络广播一个以攻击目标的IP地址为源IP地址,以广播地址为目标地址的ICMP ECHO请求报文,n个普通终端接收到后,会向攻击目标发送ICMP ECHO响应报文,与间接攻击相比,黑客终端的攻击报文被访达了n倍。
使网络具有阻止伪造源IP地址的IP分组继续传输的功能
路由器阻止以直接广播地址为目标IP地址的IP分组转发
主机系统拒绝响应ICMP ECHO请求报文(但是这样无法用ping检测两个终端的连通性)
分布式拒绝服务分直接和间接两种,它们都是通过控制已经攻陷的主机系统(俗称肉鸡)发起针对攻击目标的攻击行为,都是通过消耗攻击目标的资源(如处理器处理能力和连接网络链路的带宽)使攻击目标丧失正常服务能力。
不同点在于直接攻击由肉鸡直接向攻击目标发送大量无用IP分组使其丧失服务能力。
间接攻击由肉鸡向其他正常主机系统发送大量无用IP分组,这些IP分组经正常主机系统反射后送往攻击目标,使其丧失服务能力。
显然,追踪间接DDoS攻击源的难度更大。
攻击者通过其他攻击手段攻陷大量主机系统并植入攻击程序,然后激活这些攻击程序。
肉鸡向攻击目标发送大量无用IP分组,由于大量IP分组涌向攻击目标,使攻击目标连接网络的链路发生过载,使其处理器资源耗尽,无法正常与其他终端通信。
攻击者通过其他攻击手段攻陷大量主机系统并植入攻击程序,然后激活这些攻击程序,攻击程序产生大量随机IP,并以这些IP地址为目的IP地址,以攻击目标的IP地址为源IP地址构建ICMP ECHO请求报文。
这些请求报文到达目的端后,由目的端,也就是大量正常主机系统向攻击目标发生ICMP ECHO响应报文,使攻击目标连接网络的链路发生过载,使其处理器资源耗尽,无法正常与其他终端通信。