syn/ack 攻击 TCP 握手协议 SYN 攻击原理 SYN 攻击工具 检测SYN 攻击 SYN 攻击防范技术 有黑客攻击事件中,SYN 攻击是最常见又最容易被利用的一种攻击手法
相信很多人还记得2000 年YAHOO 网站遭受的攻击事例,当时黑客利用的就是简单而有效的SYN 攻击,有些网络蠕虫病毒配合SYN 攻击造成更大的破坏
本文介绍SYN 攻击的基本原理、工具及检测方法,并全面探讨 SYN 攻击防范技术
一、TCP 握手协议 在 TCP/IP 协议中,TCP 协议提供可靠的连接服务,采用三次握手建立一个连接
第一次握手:建立连接时,客户端发送 syn 包(syn=j)到服务器,并进入 SYN_SEND 状态,等待服务器确认; 第二次握手:服务器收到 syn 包,必须确认客户的SYN(ack=j+1),同时自己也发送一个 SYN 包(syn=k),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态; 第三次握手:客户端收到服务器的SYN+ACK 包,向服务器发送确认包 ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED 状态,完成三次握手
完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念: 未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN 包(syn=j)开设一个条目,该条目表明服务器已收到 SYN 包,并向客户发出确认,正在等待客户的确认包
这些条目所标识的连接在服务器处于 Syn_RECV 状态,当服务器收到客户的确认包时,删除该条目,服务器进入 ESTABLISHED 状态
Backlog 参数:表示未连接队列的最大容纳数目
SYN-ACK 重传次数 服务器发送完SYN-ACK 包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户