DDoS攻击全族谱:从1Gbps到1Tbps的进化史
一、问题
网站被打的三大困境:
- 带宽耗尽:服务器瞬间瘫痪
- 连接耗尽:防火墙状态表爆满
- 业务逻辑攻击:数据库被拖垮
核心疑问:DDoS攻击有哪些类型?如何防御?
二、方案
DDoS攻击三大分类:
1. 流量型攻击(L3/L4):打爆带宽
2. 协议型攻击(L4):打爆连接数
3. 应用层攻击(L7):打爆业务逻辑
生活比喻:
- 流量型:像洪水,淹没道路
- 协议型:像堵门,占满停车位
- 应用层:像恶意点餐,拖垮后厨
三、流量型攻击(L3/L4)
3.1 UDP Flood
原理:发送大量UDP包,耗尽带宽
攻击流程:
攻击者 → 伪造源IP → 发送UDP包 → 目标服务器
典型规模:
- 小型攻击:1-10 Gbps
- 中型攻击:10-100 Gbps
- 大型攻击:100+ Gbps
3.2 DNS放大攻击
原理:利用DNS服务器放大流量
放大倍数:
- 请求包:64字节
- 响应包:4096字节
- 放大倍数:64倍
案例:
- 2018年GitHub攻击:1.35 Tbps
- 攻击时长:10分钟
- 防御方式:Akamai CDN
3.3 ICMP Flood
原理:发送大量ICMP包(ping)
特点:
- 简单粗暴
- 容易被防火墙拦截
- 现代攻击较少使用
四、协议型攻击(L4)
4.1 SYN Flood
原理:利用TCP三次握手,耗尽连接数
攻击流程:
1. 攻击者发送SYN包
2. 服务器回复SYN-ACK
3. 攻击者不回复ACK
4. 服务器等待超时(默认60秒)
5. 连接表被占满
影响:
- 防火墙连接表满
- 负载均衡器瘫痪
- 正常用户无法连接
防御:
- SYN Cookie:不保存半连接状态
- 降低超时时间:从60秒降到3秒
- 增加连接表大小
4.2 ACK Flood
原理:发送大量ACK包,绕过SYN防御
特点:
- 伪造已建立连接的ACK包
- 服务器需要查表验证
- 消耗CPU资源
4.3 TLS握手攻击
原理:TLS握手消耗大量CPU
成本对比:
- 客户端:1次握手 = 0.1ms CPU
- 服务器:1次握手 = 10ms CPU
- 放大倍数:100倍
五、应用层攻击(L7)
5.1 HTTP Flood
原理:发送大量HTTP请求,耗尽Web线程
攻击方式:
# 简单HTTP Flood
while true; do
curl https://example.com/search?q=expensive_query
done
特点:
- 请求看起来正常
- 难以区分真实用户
- 消耗数据库资源
5.2 Slowloris
原理:慢速发送HTTP请求,占住连接
攻击流程:
1. 建立HTTP连接
2. 发送部分HTTP头
3. 每10秒发送1字节
4. 保持连接不断开
5. 占满Web服务器连接数
影响:
- Apache默认150个连接
- 150个Slowloris连接即可打垮
- Nginx不受影响(异步IO)
5.3 HTTP/2 Rapid Reset
原理:快速创建和重置HTTP/2流
攻击规模:
- 2023年Google遭受:3.98亿 RPS
- 传统HTTP Flood:1000万 RPS
- 放大倍数:40倍
防御:
- 限制RST_STREAM速率
- 升级HTTP/2实现
- 使用CDN防护
六、压测工具 ≠ DDoS
6.1 合法压测工具
常用工具:
- wrk:HTTP压测
- k6:现代化压测
- ab:Apache Bench
特点:
- 真实IP
- 完整TCP握手
- 遵守HTTP协议
6.2 DDoS攻击
特点:
- 伪造源IP
- 跳过握手
- 分布式僵尸网络
法律风险:
- 压测自己的服务器:合法
- 压测别人的服务器:违法(未授权)
- 使用僵尸网络:严重违法
七、现代DDoS趋势
7.1 混合攻击
组合拳:
L3 UDP Flood(打爆带宽)
↓
L4 SYN Flood(打爆连接)
↓
L7 HTTP Flood(打爆业务)
7.2 新协议攻击
QUIC/HTTP3攻击:
- 基于UDP
- 绕过传统防火墙
- 防御难度更高
7.3 经济型DDoS(EDoS)
原理:攻击云服务,让受害者付巨额账单
案例:
- 攻击AWS Lambda
- 触发百万次调用
- 账单从$100飙升到$10万
八、小结
核心要点:
1. DDoS三大类:流量型(L3/L4)、协议型(L4)、应用层(L7)
2. 历史最大攻击:1.35 Tbps(GitHub 2018)
3. 现代趋势:混合攻击、新协议、经济型DDoS
4. 压测工具≠DDoS:合法压测需授权
防御策略:
- L3/L4:CDN + 清洗中心
- L4:SYN Cookie + 连接限速
- L7:WAF + 行为分析 + 验证码
成本对比:
- 发起DDoS:$50/小时(租僵尸网络)
- 防御DDoS:$5000/月(企业级CDN)
- 攻击成本远低于防御成本
参考资料:
- Cloudflare DDoS报告
- Akamai安全白皮书
- OWASP DDoS防御指南