1. DDoS攻击概述
分布式拒绝服务(Distributed Denial of Service,DDoS)攻击是当前互联网面临的最严峻安全威胁之一。攻击者通过控制大量僵尸主机(Botnet),向目标服务器、服务或网络基础设施发送远超其处理能力的恶意流量,导致合法用户无法正常访问资源。DDoS攻击的本质是资源耗尽——耗尽目标的带宽、CPU、内存、连接表或应用层处理能力。
核心要点: DDoS攻击不是单一技术,而是一类攻击手法的统称。理解不同攻击类型的原理,是设计高效防御方案(如XDP/eBPF)的前提。
1.1 DDoS攻击定义与特征
| 维度 | 说明 |
|---|---|
| 分布式 | 攻击源来自大量分散的IP地址,难以通过简单IP封禁防御 |
| 拒绝服务 | 目标系统无法响应合法请求,服务可用性归零 |
| 流量放大 | 许多攻击利用协议特性放大流量(如DNS放大、NTP放大) |
| 攻击隐蔽性 | 攻击流量常伪装成正常流量,绕过传统防火墙规则 |
为什么XDP/eBPF适合防御DDoS? XDP在网卡驱动层直接处理数据包,绕过内核协议栈,能以纳秒级延迟丢弃恶意流量,且不消耗系统CPU资源用于协议栈处理。
1.2 常见攻击类型与原理
1.2.1 SYN Flood攻击
SYN Flood是最经典的传输层DDoS攻击。攻击者发送大量伪造源IP的TCP SYN握手请求,目标服务器为每个SYN分配连接控制块(TCB)并回复SYN-ACK,但永远收不到最终的ACK应答。服务器半连接队列(Backlog Queue)迅速填满,后续合法SYN请求被丢弃。
危害等级: 极高。SYN Flood可耗尽服务器内存和CPU,单台服务器在10万pps的SYN Flood下几秒内即失去响应。传统iptables规则因经过完整协议栈,防御效率低下。
1.2.2 UDP Flood攻击
攻击者向目标主机的随机端口发送大量UDP数据包。目标主机检查端口无对应服务时,回复ICMP Port Unreachable报文。大量ICMP响应消耗出站带宽和CPU,同时UDP包本身也消耗入站带宽。
| 攻击变种 | 特点 | 防御难点 |
|---|---|---|
| 随机端口UDP Flood | 目标端口随机,触发大量ICMP回包 | ICMP响应消耗出站带宽 |
| 固定端口UDP Flood | 针对特定服务端口(如DNS 53) | 流量看似合法,难以区分 |
| UDP反射放大 | 伪造源IP,利用放大因子(如NTP monlist可达556倍) | 攻击流量巨大,源IP为无辜第三方 |
1.2.3 ICMP Flood攻击
攻击者发送大量ICMP Echo Request(Ping)报文。目标主机需为每个请求生成ICMP Echo Reply,消耗CPU和带宽。虽然现代系统对ICMP有速率限制,但大规模ICMP Flood仍能饱和链路带宽。
1.2.4 HTTP Flood攻击
HTTP Flood属于应用层DDoS攻击。攻击者模拟正常浏览器行为,发送大量看似合法的HTTP GET/POST请求。由于请求内容与正常流量高度相似,传统网络层防御难以识别。攻击目标通常是消耗应用服务器CPU、数据库连接池和会话资源。
攻击特征对比:
- 低速率HTTP Flood: 每个Bot每秒只发1-2个请求,总量巨大但单源流量低,绕过速率限制
- HTTP GET Flood: 请求静态资源(如图片、CSS),消耗Web服务器连接和I/O
- HTTP POST Flood: 提交大表单数据,消耗应用逻辑处理能力和数据库
- 慢速攻击(Slowloris): 发送不完整的HTTP请求头,保持连接长期占用
1.3 DDoS攻击的危害
| 危害维度 | 具体影响 | 量化指标 |
|---|---|---|
| 服务中断 | 网站/API无法访问,业务完全停摆 | 可用性从99.9%降至0% |
| 经济损失 | 电商、游戏、金融行业每分钟损失数万至数百万 | 平均每小时损失$20,000-$100,000 |
| 信誉损害 | 用户信任度下降,品牌形象受损 | 客户流失率可达30% |
| 基础设施过载 | 路由器、防火墙、负载均衡器CPU过载 | 网络设备宕机,影响其他服务 |
| 安全漏洞暴露 | DDoS常作为声东击西手段,掩护数据窃取 | 攻击期间入侵检测系统被流量淹没 |
1.4 攻击趋势与防御挑战
根据最新安全报告,DDoS攻击呈现以下趋势:
- 攻击规模持续增长: 峰值带宽已超过3Tbps,包速率超过1亿pps
- 攻击手段混合化: 一次攻击同时使用多种类型(如SYN Flood + HTTP Flood)
- 攻击源更加分散: IoT设备成为新的僵尸网络主力,数量级达百万级
- 攻击时长缩短: 从持续数天变为10-30分钟的脉冲式攻击,传统人工响应来不及
传统防御的局限性: 基于iptables的防御规则需要经过完整内核协议栈,在百万pps级别攻击下,CPU被协议栈处理耗尽,防御本身成为瓶颈。XDP在网卡驱动层直接丢弃攻击包,CPU消耗降低90%以上,是应对当前攻击规模的必然选择。
1.5 攻击类型总结矩阵
| 攻击类型 | 协议层 | 消耗资源 | XDP防御可行性 | 防御优先级 |
|---|---|---|---|---|
| SYN Flood | 传输层(TCP) | 连接表、CPU | ✅ 极高(直接丢弃SYN包) | P0 |
| UDP Flood | 传输层(UDP) | 带宽、CPU | ✅ 高(基于源IP/端口过滤) | P0 |
| ICMP Flood | 网络层(ICMP) | 带宽、CPU | ✅ 高(直接丢弃ICMP) | P1 |
| HTTP Flood | 应用层(HTTP) | CPU、数据库连接 | ⚠️ 部分可行(需eBPF解析应用层) | P1 |
| DNS放大 | 应用层(DNS) | 带宽(放大因子高) | ✅ 高(基于UDP源端口过滤) | P0 |