1. 什么是流量攻击?
流量攻击(Traffic Attack),通常指网络攻击者通过向目标系统(如网站、服务器、网络设备)发送大量数据包或请求,意图耗尽目标的关键资源,从而导致服务不可用或性能严重下降的攻击行为。这类攻击是分布式拒绝服务(DDoS)攻击的核心组成部分,其根本目的是破坏服务的可用性。
2. 流量攻击的两大核心类型
根据攻击所消耗的目标资源类型,流量攻击主要可分为两大类:带宽耗尽型攻击 和资源耗尽型攻击。理解两者的区别是制定有效防御策略的关键。
2.1 带宽耗尽型攻击
攻击原理: 攻击者利用大量受控主机(如僵尸网络)向目标网络链路发送海量数据包,旨在填满目标服务器或上游网络设备的入口带宽。当带宽被完全占用时,合法用户的正常流量将无法到达目标,导致服务中断。
攻击特点:
- 目标: 网络带宽(Network Bandwidth)。
- 表现形式: 网络拥堵、丢包严重、延迟激增。
- 典型攻击:
- UDP Flood: 发送大量UDP数据包到目标随机端口。
- ICMP Flood(Ping Flood): 发送海量ICMP Echo Request(Ping)包。
- 放大攻击(Amplification Attack): 利用协议缺陷(如DNS、NTP),以小查询触发大回复,放大攻击流量。
- 防御难点: 攻击流量通常为"合法"协议数据,难以在入口完全区分;需要依靠上游清洗中心或高带宽冗余。
2.2 资源耗尽型攻击
攻击原理: 攻击者发送大量需要消耗目标系统特定计算资源的恶意请求,旨在耗尽服务器的CPU、内存、连接数(如TCP半连接)、磁盘I/O或应用层资源(如数据库连接),使服务器无法处理正常业务。
攻击特点:
- 目标: 服务器/应用资源(CPU, Memory, Connections)。
- 表现形式: 服务器负载100%、内存耗尽、连接池满、应用响应超时或崩溃。
- 典型攻击:
- SYN Flood: 发送大量TCP SYN包但不完成三次握手,耗尽服务器的连接队列。
- HTTP Flood: 模拟大量看似正常的HTTP请求(GET/POST),消耗Web服务器和应用后端资源。
- Slowloris: 建立大量HTTP连接并保持长时间不释放,耗尽服务器的并发连接数。
- CC攻击(Challenge Collapsar): 针对消耗大量CPU/内存的动态页面(如搜索、登录)发起高频请求。
- 防御难点: 请求可能模仿正常用户行为,需要更精细的行为分析、频率限制和资源管控。
3. 两类攻击的对比与区分
| 对比维度 | 带宽耗尽型攻击 | 资源耗尽型攻击 |
|---|---|---|
| 主要目标 | 网络链路带宽 | 服务器/应用资源(CPU、内存、连接) |
| 攻击层级 | 网络层、传输层(L3-L4) | 传输层、应用层(L4-L7) |
| 受害者感知 | 网络完全不通,请求无法到达 | 网络可能通,但服务无响应或极慢 |
| 监控指标 | 入口带宽利用率、丢包率 | 服务器CPU/内存使用率、连接数、请求队列长度 |
| 典型防御手段 | 流量清洗、黑洞路由、增加带宽 | 连接限制、请求频率控制、Web应用防火墙(WAF)、资源扩容 |
4. 总结
流量攻击是破坏服务可用性的主要手段。区分带宽耗尽型 与资源耗尽型攻击至关重要:前者是"堵路",让流量进不来;后者是"耗干",让服务器干不了活。在实际防御中,往往需要结合网络层清洗与应用层防护,形成纵深防御体系,才能有效应对混合型、复杂化的现代DDoS攻击。