1. 引言
分布式拒绝服务攻击(DDoS)是网络安全领域最常见的威胁之一,其中 TCP 洪水(TCP Flood)与 UDP 反射攻击(UDP Reflection Attack)是两类典型的攻击手法。两者虽然都以耗尽目标资源为目的,但在流量放大机制、攻击路径和检测逻辑上存在显著差异。本文将从原理层面剖析这两种攻击方式,并给出对应的检测与防御思路。
2. TCP 洪水攻击原理
TCP 洪水攻击的核心思路是向目标主机发送大量看似合法但无法完成握手的 TCP 连接请求,从而耗尽目标的连接表、内存或 CPU 资源。常见的变体包括 SYN Flood、ACK Flood 和连接耗尽攻击。
2.1 SYN Flood 攻击
攻击者向目标发送大量 SYN 报文,但不完成三次握手的最后一步。目标主机会为每个 SYN 分配一个半开连接(Half-Open Connection),并等待 ACK 确认。当半开连接数量超过系统限制时,新的合法连接将无法建立。
text
攻击者 --SYN--> 目标(分配半开连接)
攻击者 --SYN--> 目标(分配半开连接)
攻击者 --SYN--> 目标(分配半开连接)
...
目标:半开连接表溢出,拒绝新连接
2.2 ACK Flood 攻击
攻击者发送大量 ACK 报文,目标主机需要为每个 ACK 查找对应的连接状态。如果连接不存在,系统会返回 RST 报文,这一过程消耗 CPU 资源。大量无效 ACK 会导致目标主机忙于处理无效连接查询,从而降低正常服务的响应能力。
2.3 流量放大特性
TCP 洪水攻击的流量放大比通常较低,攻击流量与目标收到的流量基本呈 1:1 关系。攻击者需要持续发送大量报文才能维持攻击效果,因此更依赖僵尸网络的规模,而非协议本身的放大特性。
3. UDP 反射 DDoS 攻击原理
UDP 反射攻击利用 UDP 协议无连接、不验证源地址的特性,通过伪造源 IP 向大量第三方服务器发送请求,使这些服务器将响应报文发送到受害者地址。攻击者本身不需要直接向目标发送大量流量,而是借助反射器实现流量放大。
3.1 反射与放大机制
反射攻击的关键在于放大比(Amplification Factor)。攻击者发送一个较小的请求报文,反射器返回一个较大的响应报文,从而实现流量放大。常见的放大服务包括 DNS、NTP、Memcached 和 SSDP 等。
| 协议 | 端口 | 放大比 |
|---|---|---|
| DNS | 53 | 约 28-54 倍 |
| NTP | 123 | 约 556 倍 |
| Memcached | 11211 | 约 10000 倍 |
| SSDP | 1900 | 约 30 倍 |
3.2 攻击路径
UDP 反射攻击的流量路径为:攻击者发送伪造源地址的请求到反射器,反射器将响应发送到受害者。攻击者与受害者之间没有直接流量交互,这使得溯源更加困难。
text
攻击者 --伪造源IP的请求--> 反射器
反射器 --响应报文--> 受害者(目标)
4. 两种攻击方式的对比
| 维度 | TCP 洪水 | UDP 反射 DDoS |
|---|---|---|
| 协议类型 | TCP(面向连接) | UDP(无连接) |
| 流量放大比 | 低(约 1:1) | 高(可达数千倍) |
| 攻击路径 | 攻击者直接发送到目标 | 攻击者借助反射器间接攻击 |
| 资源消耗点 | 连接表、内存、CPU | 带宽、网络链路 |
| 源地址伪造 | 可伪造,但需完成握手 | 必须伪造,利用无连接特性 |
| 检测难度 | 中等 | 较高 |
5. 检测逻辑详解
5.1 TCP 洪水的检测逻辑
TCP 洪水的检测主要关注连接状态和报文特征。常见的检测指标包括:
- 半开连接数量:短时间内 SYN 报文数量远高于正常基线,且大量连接停留在 SYN_RECV 状态。
- SYN 与 ACK 比例:正常流量中 SYN 与 ACK 比例接近 1:1,攻击时 SYN 数量会显著高于 ACK。
- 源 IP 分布:大量 SYN 报文来自少数或伪造的源 IP,且源 IP 的 TTL 值异常。
- 连接速率:单位时间内新建连接数超过阈值,且失败率上升。
5.2 UDP 反射攻击的检测逻辑
UDP 反射攻击的检测更关注流量特征和协议行为。常见检测手段包括:
- 流量突增:目标端口收到大量来自不同源 IP 的 UDP 报文,且报文大小异常均匀。
- 协议特征匹配:检测特定端口(如 53、123、11211)的响应报文是否符合对应协议的响应格式。
- 源端口与目标端口关系:反射攻击中,源端口通常是反射服务的固定端口(如 DNS 的 53),而目标端口是受害者的随机端口。
- 响应报文大小:反射响应报文通常远大于请求报文,可通过报文大小分布识别异常。
5.3 检测逻辑对比
| 检测维度 | TCP 洪水 | UDP 反射 DDoS |
|---|---|---|
| 核心指标 | 半开连接数、SYN/ACK 比例 | 流量突增、协议特征 |
| 检测位置 | 目标主机或入口网关 | 网络边界或上游链路 |
| 误报风险 | 高并发正常访问可能误报 | 正常大流量响应可能误报 |
| 响应速度 | 需实时监控连接状态 | 需结合流量基线分析 |
6. 防御策略建议
6.1 TCP 洪水防御
- 启用 SYN Cookie 机制,避免半开连接耗尽连接表。
- 限制单位时间内的 SYN 接收速率,并设置合理的超时时间。
- 部署专业抗 DDoS 设备,对异常 SYN 流量进行清洗。
6.2 UDP 反射攻击防御
- 在网络边界过滤源 IP 为内网地址的 UDP 报文,防止源地址伪造。
- 对特定反射端口(如 53、123、11211)实施速率限制。
- 与上游 ISP 协作,在骨干网层面实施流量清洗。
7. 总结
TCP 洪水与 UDP 反射 DDoS 攻击在原理上存在本质区别:前者依赖大量连接请求耗尽目标资源,放大比低但实施简单;后者借助协议放大特性实现高倍率流量冲击,攻击路径更隐蔽。理解两者的差异有助于制定针对性的检测与防御策略。在实际防护中,建议结合流量基线、协议特征和连接状态等多维度指标,构建分层防御体系。