第1 页 共9 页 SYN Flood攻击防范技术 1 概述 1
1 产生背景 SYN Flo o d 攻击是一种通过向目标服务器发送SYN 报文,消耗其系统资源,削弱目标服务器的服务提供能力的行为
一般情况下,SYN Flo o d 攻击是在采用 IP 源地址欺骗行为的基础上,利用 TCP 连接建立时的三次握手过程形成的
众所周知,一个 TCP 连接的建立需要双方进行三次握手,只有当三次握手都顺利完成之后,一个 TCP 连接才能成功建立
当一个系统(称为客户端)请求与另一个提供服务的系统(称为服务器)建立一个 TCP 连接时,双方要进行以下消息交互: (1) 客户端向服务器发送一个 SYN 消息; (2) 如果服务器同意建立连接,则响应客户端一个对 SYN 消息的回应消息(SYN/ACK); (3) 客户端收到服务器的SYN/ACK 以后,再向服务器发送一个 ACK 消息进行确认
当服务器收到客户端的ACK 消息以后,一个 TCP 的连接成功完成
连接的建立过程如图 1 所示: 图 1 TCP 连接的建立 在上述过程中,当服务器收到 SYN 报文后,在发送SYN/ACK 回应客户端之前,需要分配一个数据区记录这个未完成的TCP 连接,这个数据区通常称为TCB 资源,此时的TCP 连接也称为半开连接
这种半开连接仅在收到客户端响应报文或连接超时后才断开,而客户端在收到 SYN/ACK 报文之后才会分配 TCB 资源,因此这种不对称的资源分配模式会被攻击者所利用形成 SYN Flo o d 攻击
图 2 SYN Flo o d 攻击原理图 如图 2 所示,攻击者使用一个并不存在的源IP 地址向目标服务器发起连接,该服务器回应 SYN/ACK 消息作 第 2 页 共 9 页 为响应,由于应答消息的目的地址并不是攻击者的实际地址,所以这个地址将无法对服务器进行响应