1. 简介
自互联网诞生以来,恶意攻击手段也不断演进。许多攻击利用了在线服务架构中潜在的漏洞。
例如,在客户端/服务器架构中,服务器的中心化特性可能成为攻击目标;而在点对点架构中,多源分布的特性也可能被利用。其中最著名的网络攻击之一就是拒绝服务攻击(Denial of Service, DoS)。
DoS 攻击旨在通过过载网络服务使其无法访问,通常由单一来源发起。而分布式拒绝服务攻击(Distributed DoS, DDoS)则利用多个来源协同攻击,威力更大。
本文将系统性地解析 DDoS 攻击的原理、常见技术及其潜在后果,帮助开发者更好地理解其危害与应对策略。
2. 拒绝服务攻击基础
DoS 攻击的核心目标是让目标服务不可用,最常见的方式是向目标服务器发送大量恶意请求,直到服务器资源耗尽而崩溃。
这类攻击通常被称为“泛洪攻击”(flooding DoS)。但也有其他方式,例如利用特定服务的漏洞,仅用少量请求即可瘫痪服务。
攻击者通常会选择一个目标服务器(例如客户端/服务器架构中的服务端),持续发送虚假请求。由于这些请求是伪造的,攻击者无需等待响应,从而避免自身资源过载。
此外,攻击者还会伪造请求来源 IP,以规避服务器或网络中的安全检测机制。因此,一个攻击者可以模拟数十甚至上百个虚假用户发起攻击。
下图展示了一个抽象层次较高的 DoS 攻击示意图:
需要注意的是,攻击者并不只针对服务本身,还可能利用底层协议或子系统的漏洞。这种方式使得 DoS 攻击更具通用性和复用性。我们将在后续章节中详细介绍这些技术。
但即便攻击者伪造多个来源,单个攻击者的带宽和硬件资源仍是有限的。为了突破这些限制,攻击者通常采用分布式攻击方式,即 DDoS。
2.1 分布式拒绝服务攻击(DDoS)
DoS 与 DDoS 的攻击原理基本一致,但 DDoS 利用多个分布式的攻击源,显著提升了攻击的威力和隐蔽性。
在发起攻击前,攻击者会先感染大量普通用户的计算机。这些感染通常通过社交工程、蠕虫传播等方式完成。
被感染的设备会成为攻击者的“傀儡机”(bots),组成一个“僵尸网络”(botnet)。这些设备通常不会影响用户日常使用,只有在攻击启动时才会活跃起来。
攻击者可以远程控制这些傀儡机,协调它们同时向目标服务器发送请求,形成大规模流量冲击。
下图展示了一个典型的 DDoS 攻击场景:
DDoS 攻击之所以更难防御,主要体现在以下几个方面:
✅ 难以溯源与过滤:攻击流量来自多个真实 IP,难以区分合法用户与攻击流量
✅ 高并发与大流量:攻击爆发迅速,留给安全系统反应的时间极短
✅ 行为伪装:攻击者可模拟正常用户行为,绕过部分检测机制
3. 常见拒绝服务攻击技术
如前所述,DoS/DDoS 的核心目标是使服务不可用。攻击者通常有两个具体目标:耗尽服务器资源使其重启,或阻塞通信通道使服务隔离。
下面介绍几种常见的攻击技术及其原理。
3.1 SYN 泛洪攻击(SYN Flood)
SYN Flood 是一种利用 TCP 协议三次握手机制漏洞的攻击方式。
攻击者向目标服务器发送大量 SYN 请求(同步报文),但不完成后续的 ACK 响应。服务器会为每个未完成的连接保留资源,直到超时释放。
由于攻击请求数量庞大,服务器的连接资源很快被耗尽,导致无法响应正常用户的连接请求。
3.2 TTL 过期攻击(TTL Expiry Attack)
该攻击的目标是网络核心中的路由器。攻击者发送大量 TTL(Time To Live)值较小的数据包,这些包在网络中经过一定跳数后 TTL 会归零。
当 TTL 为 0 时,路由器需要生成 ICMP Time Exceeded 报文并返回给源地址。由于攻击者发送的包数量巨大,路由器的 CPU 和内存资源会被大量消耗,最终可能导致路由器崩溃或严重降速。
3.3 放大攻击(Amplification Attacks)
放大攻击利用某些协议的响应机制,将小请求转化为大流量,从而对目标造成巨大冲击。
常见的放大攻击包括:
- DNS 放大攻击:攻击者伪造目标 IP 向 DNS 服务器发送查询请求,DNS 服务器返回大量数据给目标服务器
- NTP 放大攻击:利用 NTP 协议中的
monlist
操作,一个请求可导致返回上百条主机信息
这类攻击的特点是攻击者只需发送少量请求,就能触发大量响应流量,从而放大攻击效果。
3.4 低速率定向攻击(Low-rate Targeted Attacks)
与泛洪类攻击不同,低速率攻击不依赖大流量,而是利用特定服务的计算密集型操作。
例如,攻击者可以构造一些包含大量特征签名的网络包,迫使防病毒系统进行大量计算。这种攻击方式对计算资源消耗极大,但流量不高,因此更难被检测。
由于这类攻击针对特定服务逻辑,攻击者需要根据目标服务的具体实现进行定制化设计。
4. 拒绝服务攻击的潜在后果
除了直接使服务不可用外,DoS 和 DDoS 攻击还可能带来其他副作用:
✅ 作为掩护手段:攻击者可能用 DDoS 作为掩护,趁机渗透系统漏洞
❌ 数据泄露:部分系统在过载时会出现数据包广播行为,导致敏感信息泄露
⚠️ 服务联动崩溃:一台服务器托管多个服务时,其中一个服务被攻击导致服务器重启,将影响所有服务
5. 总结
本文系统地介绍了 DoS 与 DDoS 攻击的基本原理、常见技术手段以及潜在后果。
我们可以看到,拒绝服务攻击是互联网安全中的重大威胁。任何对外提供服务的服务器都可能成为攻击目标。
此外,防御 DoS/DDoS 并非易事。不同攻击方式需要不同的检测与应对策略,且攻击手段不断演变。
因此,企业与开发者需要持续投入资源,提升网络服务的可用性与安全性,以应对不断变化的威胁环境。