SYN Flood 攻击是一种常见的 DDoS(分布式拒绝服务)攻击,主要针对基于 TCP 协议的网络服务(如网站、服务器)。其核心原理是利用 **TCP 三次握手(Three-Way Handshake)**的机制漏洞,通过消耗服务器资源,导致正常用户无法建立连接。
攻击原理
-
TCP 三次握手流程(正常情况):
- 客户端 → 服务器:发送
SYN
(同步)包,请求建立连接。 - 服务器 → 客户端:回复
SYN-ACK
(同步-确认)包,并分配资源等待客户端响应。 - 客户端 → 服务器:发送
ACK
(确认)包,完成连接建立。
- 客户端 → 服务器:发送
-
SYN Flood 攻击过程:
- 攻击者伪造大量虚假的客户端 IP 地址,向目标服务器发送海量
SYN
包。 - 服务器为每个
SYN
包分配资源(内存、端口等),并回复SYN-ACK
包。 - 由于客户端 IP 是伪造的,服务器收不到合法的
ACK
响应,导致大量连接处于“半开状态”(SYN_RECEIVED
状态)。 - 服务器资源(如连接队列)被迅速耗尽,无法处理合法用户的请求,导致服务瘫痪。
- 攻击者伪造大量虚假的客户端 IP 地址,向目标服务器发送海量
攻击特点
- 资源耗尽型攻击:通过占满服务器的连接队列,阻止新连接。
- IP 欺骗(Spoofing):攻击者隐藏真实 IP,增加追踪难度。
- 低成本高破坏:攻击工具易获取,对服务器造成严重负担。
防御手段
-
SYN Cookie:
- 服务器不立即分配资源,而是通过加密算法生成一个
SYN-ACK
序列号(Cookie)。只有在收到合法ACK
后,才分配资源。 - 有效抵御伪造 IP 的攻击。
- 服务器不立即分配资源,而是通过加密算法生成一个
-
增加积压队列(Backlog Queue):
- 扩大服务器可处理的半开连接数量,但治标不治本。
-
缩短 SYN-ACK 超时时间:
- 减少服务器等待
ACK
的时间,加速释放半开连接资源。
- 减少服务器等待
-
流量过滤与黑名单:
- 防火墙或入侵检测系统(IDS)识别异常
SYN
流量,拦截可疑 IP。
- 防火墙或入侵检测系统(IDS)识别异常
-
负载均衡与云防护:
- 使用 CDN 或云服务商的 DDoS 防护系统,分散攻击流量。
影响
- 服务不可用:网站、API 或在线服务瘫痪。
- 服务器过载:CPU、内存资源被耗尽,可能导致系统崩溃。
总结
SYN Flood 是一种通过滥用 TCP 协议漏洞发起的资源耗尽攻击,防御需结合协议优化(如 SYN Cookie)和基础设施防护(如流量清洗)。对于企业,部署专业的抗 DDoS 解决方案是关键。