订阅以接收新文章的通知:

Cloudflare 如何自动缓解了创世界纪录的 3.8 Tbps DDoS攻击

2024-10-02

9 分钟阅读时间
这篇博文也有 EnglishFrançaisDeutsch日本語한국어PortuguêsEspañol繁體中文版本。

自 9 月初以来,Cloudflare DDoS 防护系统一直在抵御持续一个月的 L3/4 DDoS 容量耗尽攻击。Cloudflare 防御解决方案在整个月缓解了百余次 L3/4 DDoS 容量耗尽攻击,其中许多攻击超过 20 亿个数据包/秒 (Bpps) 和 3 TB/秒 (Tbps)。最大攻击峰值达到了 3.8 Tbps,这是迄今所有组织公开披露的最大一次攻击。检测和缓解均完全自主完成。下图展示了针对同一 Cloudflare 客户但都被自主缓解的两次单独攻击事件。

BLOG-2586 2

缓解了一次持续 65 秒、每秒 3.8 Tbps 的 DDoS 攻击

BLOG-2586 3

缓解了一次持续 60 秒、每秒 21.4 亿个数据包的 DDoS 攻击

Cloudflare 客户受到保护

使用 Cloudflare HTTP 反向代理服务(例如 Cloudflare WAFCloudflare CDN )的 Cloudflare 客户将会自动受到保护。

使用 Spectrum Magic Transit 的 Cloudflare 客户也会自动受到保护。Magic Transit 客户可以通过部署 Magic Firewall 规则,在数据包层执行严格的正面和负面安全模型来进一步优化受到的保护。

其他互联网资产可能不安全

这些攻击的规模和频率都是前所未有。由于其庞大的规模和每秒比特/数据包的速率,这些攻击能够摧毁未受保护的互联网资产以及受本地设备或云服务提供商保护的互联网资产,只不过这些提供商没有足够的网络容量或全球覆盖范围来处理此等规模的资产与合法流量,同时不影响网络性能。 

然而,Cloudflare 确实拥有必需的网络容量、全球覆盖范围以及智能系统,用于吸收并自动缓解这些可怕的攻击。 

在本篇博客文章中,我们将回顾这次攻击活动及其造成如此严重影响的原因。我们会剖析第 3/4 层 DDoS 攻击,描述攻击目标与攻击生成方式。然后,我们继续详细介绍 Cloudflare 系统如何能够自主检测和缓解这些可怕的攻击,同时不影响客户的性能。我们会描述 Cloudflare 防御解决方案的关键功能,从 Cloudflare 系统如何生成实时(动态)特征来匹配攻击流量开始,一直到如何利用内核功能极速丢弃数据包。

活动分析

我们观察到,此次攻击活动的目标用户是金融服务、互联网壹以及电信等行业的多个客户。目标范围是带宽饱和,以及资源耗尽的内联应用和设备。

这些攻击主要利用源自全球各地固定端口上的 UDP,其中大部分来自越南、俄罗斯、巴西、西班牙和美国。

高包速率攻击似乎源自多种类型的遭入侵设备,包括 MikroTik 设备、DVR 和 Web 服务器,这些设备经过精心编排协同工作,用异常大规模的流量淹没目标。这些高比特率攻击似乎源自大量遭入侵的华硕家用路由器,这些路由器可能利用了 Censys 最近发现的 CVE 9.8 关键漏洞

俄罗斯

12.1%

越南

11.6%

美国

9.3%

西班牙

6.5%

巴西

4.7%

法国

4.7%

罗马尼亚

4.4%

台湾地区

3.4%

英国

3.3%

意大利

2.8%

按源位置观察到的数据包占比

DDoS 攻击剖析

有必要先了解 DDoS 攻击的基本知识,然后再讨论 Cloudflare 如何自动检测并缓解有史以来最大规模的 DDoS 攻击。

BLOG-2586 5

DDoS 攻击简图

分布式拒绝服务 (DDoS) 攻击的目标是拒绝合法用户访问服务。通常是通过耗尽提供服务所需的资源来实现目的。在最近的第 3/4 层 DDoS 攻击背景下,这种资源是指 CPU 周期和网络带宽。

耗尽 CPU 周期

处理数据包会消耗 CPU 周期。对于常规(非攻击)流量,服务接收到的合法数据包会引发该服务执行某些操作,并且不同的操作需要不同数量的 CPU 处理。但在将数据包传送到服务之前,需要对每个数据包执行操作:需要解析和处理第 3 层数据包标头并将数据包传送到正确的计算机和接口;需要处理第 4 层数据包标头并将其路由到正确的套接字(如果有)。可能还有多个其他处理步骤来检查每个数据包。因此,如果攻击者以足够高的包速率发送数据包,则有可能会导致可用的 CPU 资源达到饱和状态,从而拒绝向合法用户提供服务。

BLOG-2586 6

为了抵御高包速率攻击,您必须要能够使用尽可能少的 CPU 周期来检查并丢弃不良数据包,从而留下足够的 CPU 来处理优良数据包。您可以获取其他更多或更快的 CPU 来执行处理,但这可能是一个非常耗时的流程,而且成本高昂。 

耗尽网络带宽

网络带宽是指每次可以传送到服务器的数据总量。可以把带宽看作是输水管。通过吸管输送的水量比通过花园浇水软管输送的水量更少。如果攻击者能够将比其能力范围内更多的垃圾数据推送到管道中,则不良优良数据均在上游(即管道的入口处)遭到丢弃,因此,DDoS 攻击取得成功。

BLOG-2586 7

抵御可能会导致网络带宽饱和的攻击可能并非易事,因为如果您处于已饱和管道的下游,则能做的事情非常少。实际上您只有几个选择:获得一个更大的管道,找到一种潜在方法将优质流量转移到某个未饱和的新管道中,或者但愿您可以要求管道的上游端停止向管道中发送部分或全部数据。

生成 DDoS 攻击

如果从攻击者的角度来考虑这个问题,您就会意识到存在类似的限制。正如接收数据包需要消耗 CPU 周期一样,创建数据包也需要消耗CPU 周期。例如,如果发送和接收数据包的成本相同,则攻击者需要 CPU 能力来生成攻击,而我们需要相同的 CPU 能力来抵御攻击。但是,在大多数情况下,事实并非如此,也就是存在成本不对称,因为攻击者能够使用比接收这些数据包所需更少的 CPU 周期来生成数据包。不过,值得注意的是,生成攻击并不是免费的,可能需要大量的 CPU 算力。

对于攻击者来说,让网络带宽达到饱和状态甚至更加困难。因为攻击者需要能够输出比目标服务分配的更多带宽。它们实际上需要能够超出接收服务的容量。这真的难以实现,导致实施网络带宽攻击的最常见方式是使用反射/放大攻击,例如 DNS 放大攻击。这些攻击让攻击者能够将小数据包发送给中间服务,然后中间服务发送大数据包给受害者。

在这两种情况下,攻击者都需要获取或获得许多设备的访问权限,才能发起攻击。可以通过多种不同方式获得这些设备。它们可能是来自云服务提供商或托管服务的服务器类计算机,也可能是遭入侵的设备,例如感染了攻击者恶意软件的 DVR、路由器以及网络摄像头。这些计算机共同构成了僵尸网络。

Cloudflare 如何抵御大型攻击

鉴于我们已经了解了 DDoS 攻击的基本原理,现在可以阐述 Cloudflare 抵御此类攻击的方法。

利用全球 Anycast 扩大攻击面

第一个并不神秘的因素是,Cloudflare 网络建立在 Anycast 的基础之上。简而言之,Anycast 可实现由世界各地的多台计算机来广播单个 IP 地址。发送到该 IP 地址的数据包将由距离最近的计算机处理。这意味着,如果攻击者使用分布式僵尸网络发起攻击,则整个 Cloudflare 网络会以分布式方式接收攻击内容。例如,德克萨斯州达拉斯的一台受感染 DVR 会将数据包发送到位于达拉斯的 Cloudflare 服务器;伦敦的一个受感染网络摄像头会将数据包发送到位于伦敦的 Cloudflare 服务器。

BLOG-2586 8

Anycast 与 Unicast 网络

此外,Anycast 网络让 Cloudflare 能够将计算资源和带宽资源分配到最需要这些资源、距离最近的地区。人口密集的地区将会生成大量的合法流量,位于这些地区的数据中心将拥有更多带宽和 CPU 资源来满足这些需求。而人口稀少的地区自然会生成较少的合法流量,因此,可以适当地调整这些地区的 Cloudflare 数据中心的规模。由于攻击流量主要来自遭入侵的设备,这些设备往往会以与正常流量相匹配的方式分布,从而将攻击流量按比例发送到可以处理它们的数据中心。同样地,在数据中心内,流量会分布到多台计算机。

此外,对于高带宽攻击,Cloudflare 网络还有另一个优势。Cloudflare 网络中的大部分流量并不以对称方式消耗带宽。例如,某 HTTP 请求从位于 Cloudflare 幕后的站点获取网页,虽然它是一个相对较小的传入数据包,但会产生较大的传出流量返回到客户端。这意味着,Cloudflare 网络传出的合法流量往往远多于其接收的流量。然而,这种网络链路和分配的带宽是对称的,也就是说,有丰富的传入带宽可用于接收容量耗尽攻击流量。

生成实时特征

当流量到达数据中心内的单独服务器时,攻击的带宽已经得到了足够的分布,以至于没有上游链路处于饱和状态。这并不意味着攻击已完全停止,因为我们尚未丢弃不良数据包。为此,我们需要对流量进行采样,评估攻击特征,然后创建规则来阻止不良数据包。 

采样流量并丢弃不良数据包是 l4drop 组件的职责,此组件使用 XDP (eXpress Data Path) 并利用扩展版伯克利数据包过滤器,也称之为 eBPF (extended BPF)。这让我们能够在内核空间执行自定义代码,并直接在网络接口卡 (NIC) 级别来处理(丢弃、转发或修改)每个数据包。此组件有助于系统有效地丢弃数据包,而不会消耗计算机上过多的 CPU 资源。

BLOG-2586 9

Cloudflare DDoS 防护系统概述

我们使用 XDP 采样数据包,以寻找表明攻击的可疑特征。样本包括源 IP、源端口、目的 IP、目的端口、协议、TCP 标志、序列号、选项、包速率等字段。由我们的秘密武器 denial of service daemon (dosd). Dosd 执行此分析。它有许多过滤器,可以根据我们精选的启发式检查方法来指示何时启动缓解措施。对我们的客户来说,这些过滤器按攻击手段进行逻辑分组并作为 DDoS托管规则公开。Cloudflare 客户可以根据需要,在一定程度上自定义行为

在收到取自 XDP 的样本后,dosd 会生成可疑流量模式特征的多种排列。然后,dosd 将使用数据流式传输算法确定最佳特征,以缓解攻击。一旦符合攻击特征,dosd 会将缓解规则作为 eBPF 程序内联推送,以精准地丢弃攻击流量。 

Dosd 在服务器级别、数据中心级别和全球网络级别进行攻击检测和缓解,而且都是软件定义的。这使我们的网络极具韧性,几乎能即时缓解各种攻击。不存在路径外的“清洗中心”或“清洗设备”。相反,每台服务器都运行 Cloudflare 产品套件全栈,包括 DDoS 检测和缓解组件。这一切均自动完成。每台服务器还会在数据中心内的服务器之间以及数据中心之间传播(多播)缓解攻击指令。这将保证无论是本地攻击还是全球分布攻击,dosd 都已经内联安装了缓解规则,以确保缓解措施的稳健性。

强大的防御措施,抵御猛烈的攻击

我们软件定义的自动化 DDoS 检测和缓解系统在 Cloudflare 整个网络上运行。在本篇博客文章中,我们主要关注 Cloudflare 动态特征识别功能,但其实我们的防御系统资源丰富得多。Advanced TCP Protection 系统和 Advanced DNS Protection 系统与动态指纹识别一起发挥作用,识别复杂且基于 TCP 的高度随机化 DDoS 攻击,还利用统计分析来阻止基于 DNS 的复杂 DDoS 攻击。此外,我们的防御解决方案集成了实时威胁情报、流量分析及机器学习分类,作为自适应 DDoS 防护的一部分,用于缓解流量异常。

这些系统与种类繁多的 Cloudflare 安全性产品组合均以世界上数一数二的全球网络为基础而构建,确保 Cloudflare 客户免受全球规模最大的攻击。

我们保护整个企业网络,帮助客户高效构建互联网规模的应用程序,加速任何网站或互联网应用程序抵御 DDoS 攻击,防止黑客入侵,并能协助您实现 Zero Trust 的过程

从任何设备访问 1.1.1.1,以开始使用我们的免费应用程序,帮助您更快、更安全地访问互联网。要进一步了解我们帮助构建更美好互联网的使命,请从这里开始。如果您正在寻找新的职业方向,请查看我们的空缺职位
DDoSAttacksTrends安全性

在 X 上关注

Shawn Bohrer|@bohrers
Omer Yoachimik|@OmerYoahimik
Alex Forster|@alex_forster
Cloudflare|@cloudflare

相关帖子