驱蚊器喵的翻译平台

Can you hear the gravity?

  1. 1. DDoS 的三种类型:比特(Bits)、数据包(Packets)、请求(Requests)
  2. 2. 自动检测和缓解 DDoS
  3. 3. DDoS 的生态

原文地址:https://blog.cloudflare.com/mitigating-a-754-million-pps-ddos-attack-automatically/
原文标题:Mitigating a 754 Million PPS DDoS Attack Automatically
原文作者:Omer Yoachimik
原文写于:2020/07/09

译者:驱蚊器喵#ΦωΦ
翻译水平有限,有不通顺的语句,请见谅。


6 月 21 日,Cloudflare 自动缓解了一次大容量的 DDoS 攻击,该攻击的峰值为每秒 7.54 亿个数据包。这次攻击是为期四天的有组织攻击活动的一部分,从 6 月 18 日开始到 6 月 21 日结束:攻击流量从超过 316,000 个 IP 地址向一个 Cloudflare IP 地址发送,这个 IP 地址主要用于我们免费套餐的客户网站。攻击期间没有出现停机或服务降级的报告,由于我们的不计量缓解 DDoS 的保证,客户没有产生任何费用。

攻击被 Gatebot ,我们的全球 DDoS 检测和缓解系统,自动检测和处理,我们的团队没有任何人工干预。值得注意的是,由于我们的自动化系统能够毫无问题地缓解攻击,因此系统没有向我们的 on-call 团队发送任何警报或页面,完全没有人工介入。

攻击快照 - 数据包速率的峰值为 754 Mpps。图中两种不同的颜色代表两个独立的系统在丢包

在这四天里,攻击利用了基于 TCP 协议的三种攻击向量组合。SYN floodsACK floods 和 SYN-ACK floods 。攻击活动以每秒超过 4-6 亿个数据包的速率持续了多个小时,并数次达到每秒超过 7 亿个数据包的峰值,最高峰为每秒 7.54 亿个数据包。尽管数据包速率很高并且持续不断,但我们的边缘服务器在攻击期间仍继续为客户提供服务,丝毫没有影响性能。

DDoS 的三种类型:比特(Bits)、数据包(Packets)、请求(Requests)

每秒高比特的攻击,目的在于通过发送超过链路每秒所能处理的带宽来使互联网链路饱和。缓解比特密集型洪水,类似于运河中容量有限的大坝阻挡着涌动的水流,只允许一部分通过。

比特密集型的 DDoS 攻击就像被 Gatebot 阻挡的滔滔江水一样

在这种情况下,互联网服务提供商可能会阻止或掐断超过允许的流量,这导致对那些合法用户拒绝服务,因为他们试图连接到网站,却被服务提供商阻止访问。在其他情况下,链接只是饱和,该连接背后的一切都处于离线状态。

数据包密集型的 DDoS 攻击方式就像一群蚊子

然而,在这次 DDoS 活动中,攻击的峰值仅为 250 Gbps(我说的是仅仅,如果设备不是在一些 DDoS 缓解服务的背后, ¼ Tbps 足以使几乎所有的东西离线),因此它似乎并不像是攻击者打算使我们的互联网链路饱和,也许是因为他们知道我们的全球网络容量超过 37 Tbps。相反,攻击者试图(并且失败了)用每秒达到 7.54 亿个数据包的高数据包速率来淹没我们的路由器和数据中心设备。相对于冲向大坝的洪水,泛滥的数据包可以被认为是一群上百万只蚊子,你需要一个一个地扎掉它们。

用 Gatebot 消灭蚊子

数据包密集型 DDoS 攻击可能会影响路由器、交换机、Web 服务器、防火墙、DDoS 缓解设备或任何其他接入网线使用的设备,这取决于数据中心中 “最薄弱的链路”。通常情况下,高速率的数据包可能会导致内存缓冲区溢出,从而使路由器处理另外数据包的能力失效。这是因为交给每个数据包的 CPU 成本是固定的,所以如果你能发送大量的小型数据包,你就可以阻止一个互联网连接,并非是数据包填满了链路,而是导致处理连接的硬件不堪重负。

DDoS 攻击的另一种形式是每秒高速率的 HTTP 请求。HTTP 请求密集型 DDoS 攻击的目的是用每秒超过服务器处理能力的 HTTP 请求来淹没 Web 服务器的资源。每秒高请求率的 DDoS 攻击的目标是最大限度地提高服务器的CPU 利用率和内存利用率,以使其崩溃或防止其能够响应合法请求。与比特密集型攻击相比,请求密集型 DDoS 攻击允许攻击者产生的带宽要少得多,但仍然会造成拒绝服务。

自动检测和缓解 DDoS

那么我们是如何处理每秒 7.54 亿个数据包的呢?首先,Cloudflare 的网络利用 BGP Anycast 在全球范围内将攻击流量分散到我们的数据中心集群中。第二,我们建立了自己的 DDoS 防护系统 Gatebot 和 dosd,它们将数据包丢弃在 Linux 内核内部,从而以最高效率处理大量的数据包洪流。第三,我们建立了自己的 L4 负载均衡器 Unimog,它收集我们设备的健康状况和其他各种指标,在数据中心内智能地进行负载均衡流量。

2017 年,我们发表了一篇博客,介绍了我们两个 DDoS 防护系统之一的 Gatebot。这篇博客的标题是 “迎接 Gatebot - 一个让我们睡觉的机器人“,而这正是这次攻击中发生的事情。攻击面由我们的 Anycast 在全球范围内扩散,然后 Gatebot 自动检测并缓解攻击,无需人工干预。而且每个数据中心内部的流量都被智能地进行了负载均衡,避免任何一台机器不堪重负。而正如博客标题中所承诺的那样,攻击高峰确实发生在我们伦敦团队睡觉的时候。

那么 Gatebot 是如何工作的呢? Gatebot 对我们在全球 200 多个地点的每一个数据中心的流量进行异步采样。它还监控着我们客户的源服务器健康状况。然后,Gatebot 会对样本进行分析,以便识别可能表明攻击的模型和流量异常。一旦检测到攻击,Gatebot 就会向边缘数据中心发送缓解指令。

为了配合 Gatebot,去年我们发布了一个代号为 dosd(denial of service daemon,拒绝服务守护进程)的新系统,它运行在我们全球 200 多个城市中的每一个数据中心。与 Gatebot 类似,dosd 可以自主检测和缓解攻击,但范围仅限于一台服务器或数据中心内。您可以在我们最近的博客文章中阅读更多关于 dosd 的信息。

DDoS 的生态

虽然最近几个月我们观察到 DDoS 攻击的规模和持续时间有所下降,但像这次这样的大容量和全球分布式 DDoS 攻击仍然存在。无论攻击的规模、类型或复杂程度如何,Cloudflare 都为所有客户和套餐级别提供无计量的 DDoS 保护 - 包括免费套餐。

本文作者 : meow
This blog is under a CC BY-NC-SA 4.0 Unported License
本文链接 : https://translation.meow.page/post/mitigating-a-754-million-pps-ddos-attack-automatically/

本文最后更新于 天前,文中所描述的信息可能已发生改变