DDoS 防护到底是如何运作的
DMCA & resilience · 8 分钟阅读
DDoS 攻击实际在做什么
分布式拒绝服务攻击试图通过压垮服务所依赖的某种资源来使其不可用,而不是通过入侵来达到目的。这种资源可以是原始网络带宽(体量型攻击,以 Gbps 计量)、路由器和防火墙的连接处理能力(协议型攻击,以每秒数据包数计量),或者应用层本身(HTTP 洪泛看起来像真实流量,但涌来的量是应用无法处理的)。每一类都需要不同的防御手段,这也是为什么'DDoS 防护'实际上是若干种截然不同技术的组合,而不是打开一个开关那么简单。
'分布式'这个词很关键:攻击流量通常同时来自成千上万个不同的源 IP,往往是一个由受感染设备组成的僵尸网络,这也是为什么单纯封禁一个 IP 地址很少有效。一个运行良好的 anti-ddos hosting 方案必须假设攻击流量看起来会来自四面八方,并据此设计,而不是依赖人工维护的黑名单。
DDoS 防护实际运作的三个层面
体量型攻击的目标是把网络链路本身打满,常见手段包括 UDP 洪泛、DNS 放大攻击和 NTP 放大攻击——攻击者伪造你的 IP,诱使第三方服务器把响应大量发往你,而这些响应远远大于最初的小请求。防御这一层主要靠容量和上游过滤:如果服务商的网络能吸收远超你实际链路需求的入站流量,并且这种过滤在流量到达你服务器本地连接之前就已完成,体量型洪泛就会在上游被清洗掉,而不是把你的 VPS 堵死。
协议型攻击针对的是路由器、负载均衡器和防火墙的连接状态管理机制,而不是原始带宽,一个典型例子是 SYN 洪泛:打开海量未完成的 TCP 半握手连接,耗尽连接表。这一层的缓解依赖 SYN cookies、连接限速和网络边缘的无状态数据包校验等技术,由专用硬件或软件在洪泛流量到达运行你应用的操作系统之前完成处理。
应用层攻击最难捕捉,因为单个请求往往在技术上是合法的——一次针对搜索接口或登录页面、使用真实请求外观的 HTTP 洪泛,可以在完全不表现为异常带宽的情况下拖垮服务。这一层需要行为分析:按来源限速、挑战-响应机制,以及能够区分一波真实关注热潮与一次协同洪泛的模式检测,因为仅凭流量大小来拦截,要么会漏掉攻击,要么会误伤真实用户。
- 体量型(网络/传输层):UDP 洪泛、DNS/NTP 放大攻击,以 Gbps 计量
- 协议/状态耗尽型:SYN 洪泛、畸形数据包洪泛,以每秒数据包数计量
- 应用层:HTTP 洪泛、慢速请求攻击,以每秒请求数计量,且更难与真实流量区分
缓解措施实际如何实时发生
有效的 anti-ddos hosting 会在流量到达源服务器之前,先把入站流量路由经过清洗基础设施,因此缓解发生在上游,而不是发生在被攻击的机器本身。当某个 IP 的流量越过检测阈值——无论是固定基线,还是将当前流量与正常模式比对的异常检测模型——系统会把该流量重新路由经过过滤节点,丢弃恶意数据包,转发干净流量,对于调优良好的部署,这通常在数秒内完成,不过具体的检测窗口取决于攻击类型以及阈值设定的保守程度。
Anycast 路由是这套架构中常见的一环:同一个 IP 地址从多个网络位置同时宣告,因此入站流量(包括攻击流量)会自然分散到多个接入点,而不是集中在一条链路上,这把有效吸收能力提升到远超单一数据中心所能承受的水平。
这一切都不能取代良好的应用设计。应用层限速、通过缓存降低单次请求的负载、以及不让不必要的服务暴露在公网端口上,这些做法都能减少应用层洪泛真正造成的伤害,即便已经有强大的上游防护也是如此。
评估服务商防 DDoS 宣传时该看什么
'最高 10 Gbps'或'100 Gbps 缓解能力'这类标题数字,描述的是上游网络容量,而不是对任何可能攻击都有效的保证;一次分布精巧的应用层攻击,即便远低于该上限,只要过滤逻辑本身薄弱,依然可能造成问题。要问清楚实际覆盖哪些层(仅体量型,还是也包含协议层和应用层)、缓解是始终开启还是仅在服务已经明显下降后才被动触发,以及是否有实质性的 SLA,还是只是一句营销宣传。
具体到 VPS,实际要问的问题比企业级基础设施要窄一些:服务商的网络是否在流量到达你的虚拟机接口之前就完成过滤、缓解是否包含在基础价格中还是需要额外付费,以及是否存在一个受保护带宽的硬性上限,超过之后服务商是继续过滤,还是直接空路由(拉黑)你的 IP。最后这一点比人们预期的更重要:一些低价主机宣传的'DDoS 防护',实际上只是在攻击期间快速触发空路由,把你的服务器彻底下线——这确实能防止影响到网络上的其他客户,但也让你的服务完全离线。
- 覆盖哪些层:仅体量型,还是体量型+协议层+应用层
- 始终开启的过滤,还是要等服务已经明显下降后才触发的被动缓解
- 所宣传的 Gbps 数字是上游网络容量,还是针对每台 VPS 的保证
- 超过缓解上限之后会发生什么:继续过滤,还是直接空路由该 IP
DDoS 防护在整体抗风险方案中的位置
DDoS 缓解只是整体抗风险策略中的一层,而不是全部。一台运行在加密 NVMe 存储、独享 KVM 核心并保留最新快照上的 VPS,无论是否与 DDoS 相关,从任何中断中恢复都比不具备这些基础条件的 VPS 更快,而同时支持 IPv4 和 IPv6 也能在你需要重新分配流量时提供更大的路由灵活性。这些都不能取代网络层面的过滤,但一套具备韧性的方案会把 DDoS 防护当作与扎实基础设施基本功并列的一环,而不是替代品。
VPS GOAT 在其 KVM VPS 全线产品中,把最高 10 Gbps 的防 DDoS 保护纳入基础设施的一部分,搭配加密 NVMe、独享核心、快照以及完整的 API 访问,在其所有在线司法辖区内的部署时间约为 55 秒。一个项目实际需要多大的缓解容量,很大程度上取决于它的威胁画像——一个小型个人项目和一个此前曾被针对过的面向公众的服务,需求截然不同,值得诚实地评估这一点,而不是想当然地认为某个固定数字对所有场景都够用。
| 攻击层 | 典型手段 | 实际拦截方式 | 典型计量单位 |
|---|---|---|---|
| 体量型 | UDP 洪泛、DNS 放大、NTP 放大 | 上游网络容量与流量到达源站前的清洗 | Gbps |
| 协议/状态耗尽型 | SYN 洪泛、畸形数据包洪泛 | SYN cookies、连接限速、边缘无状态校验 | 每秒数据包数 |
| 应用层 | HTTP 洪泛、慢速请求(Slowloris 式)攻击 | 行为检测、按来源限速、挑战-响应机制 | 每秒请求数 |
| 路由层吸收 | 任意层级、大规模场景 | 跨多个接入点的 Anycast 分散 | 网络总容量 |