拒绝服务攻击 (DoS)
拒绝服务攻击 (DoS) 是什么?
拒绝服务攻击 (DoS)通过耗尽系统的带宽、算力、内存或应用层资源,使合法用户无法访问服务的攻击。
拒绝服务攻击从单一或少量来源压垮某个目标(服务器、应用、链路或设备),意在降级或停止其服务。它与调动大量分布式主机的 DDoS 不同;单纯的 DoS 依赖非对称性——攻击者付出很小的代价,却迫使受害者承担巨大的处理开销。
手法贯穿整个协议栈。容量型洪水占满带宽。协议滥用耗尽有限状态:SYN flood 用半开握手填满连接积压队列,SYN cookies 正是为此而生。慢速攻击以耐心取代流量:Slowloris(Robert Hansen,2009)以极慢速度逐字节发送不完整的 HTTP 头,几乎不耗带宽即可拖住 Apache 等多线程服务器的每个线程。应用层资源耗尽把一次请求变成不成比例的开销:高开销查询、解压 zip/XML 炸弹,或 ReDoS——攻击者可控输入触发灾难性回溯的正则表达式,使每次请求耗费数秒 CPU。算法复杂度攻击(如 2011 年 28C3 披露的哈希洪水)迫使众多 Web 框架的哈希表进入 O(n²) 最坏情形。经典的畸形报文崩溃——Ping of Death、Teardrop、LAND——以及本地 fork bomb 也属于这一家族。
防御需分层结合:限速与连接超时、SYN cookies、请求大小与时间预算、容量规划与自动扩缩、上游/Anycast 过滤、WAF 规则、随机化哈希种子,以及对会触发超线性计算的输入进行代码加固。
flowchart TD
A[攻击者: 1 台或少量主机] --> B{耗尽哪种资源?}
B -->|带宽| C[容量型洪水]
B -->|连接状态| D[SYN flood - 半开套接字]
B -->|工作线程| E[Slowloris - 慢速不完整请求]
B -->|CPU / 内存| F[ReDoS, zip 炸弹,<br/>哈希洪水, 高开销查询]
B -->|崩溃漏洞| G[Ping of Death / Teardrop / LAND]
C --> H[合法用户<br/>无法访问服务]
D --> H
E --> H
F --> H
G --> H
H --> I[防御: 限速, SYN cookies,<br/>超时, WAF, 自动扩缩, 代码加固]● 示例
- 01
攻击者用单台主机发起 Slowloris 连接,占用 Web 服务器的工作线程,使其无法接受新客户端。
- 02
某漏洞使一次 HTTP 请求即可占用数 GB 内存并导致服务崩溃。
● 常见问题
拒绝服务攻击 (DoS) 是什么?
通过耗尽系统的带宽、算力、内存或应用层资源,使合法用户无法访问服务的攻击。 它属于网络安全的 攻击与威胁 分类。
拒绝服务攻击 (DoS) 是什么意思?
通过耗尽系统的带宽、算力、内存或应用层资源,使合法用户无法访问服务的攻击。
如何防御 拒绝服务攻击 (DoS)?
针对 拒绝服务攻击 (DoS) 的防御通常结合技术控制与运营实践,详见上方完整定义。