SYN洪水攻击是攻击高防服务器最经典的一种拒绝服务攻击方法。这种攻击方法在2000年以前就涌现过,直到现在依然被攻击者大规模地广泛应用。近年来,SYN洪水攻击仍然盘踞全部散布式拒绝服务攻击的三分之ー以上。
TCP半开连接
在建立TCP连接的过程中,如果在服务器返回SYN+ACK报文后,客户端由于菜种原因没有对其进行确认,这时服务器端就需要重传SYN+ACK报文,并等候客户端的确认报文直到TCP连接超时。这种等候客户端确认的连接状态通常被称为半开连接,如图1所示。
在连接超时之前,半开连接会一直保存在服务器的连接表中。
由于连接表的大小是有限的,如果在短时间内产生大批的半开连接而这些连接又无法很快地结束,连接表就会迅速被占满,导致新的TCP连接无法建立。
SYN洪水攻击就是攻击者利用受控主机发送大批的 TCP SYN报文,使服务器打开大批的半开连接,占满服务器的连接表,从而影响正常用户与服务器建立会话,造成拒绝服务。
攻击者在发送 TCP SYN报文时,可以在收到服务器端返回的SYNACK报文后,跳过最后的ACK报文发送,使连接处于半开状态。但是这样会很明显地裸露出进行SYN洪水攻击的攻击者的IP地址,同时响应报文会作为反射流量占用攻击者的带宽资源。所以更好的方法是攻击者将SYN报文的源IP地址随机捏造成其他主机的IP地址或不存在的P地址,这样攻击目标会将应答发送给被捏造的IP地址,从而占用连接资源并暗藏攻击起源。
SYN洪水攻击的原理如图2所示。
SYN洪水攻击发动简略,效果明显,有大批的攻击工具都能够发动这种攻击,至今依然是攻击者最爱好的攻击方法之一。