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攻击原理 攻击者(Bot) 伪造SYN(随机源IP) 目标服务器 半连接队列 (Backlog) ❌ 已满 合法用户 合法SYN ❌ 连接队列满,丢弃 攻击者(Bot) 伪造SYN(不同源IP)
危害等级: 极高。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仍能饱和链路带宽。

ICMP Flood攻击流程 僵尸网络 (数千台Bot) 每台发送大量ICMP ICMP Echo Request 目标服务器 CPU 100% 带宽饱和 ICMP Echo Reply 出站带宽 被ICMP Reply耗尽 ❌ 合法响应无法发出

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