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

隆重推出高级速率限制

2022-03-16

5 分钟阅读时间
这篇博文也有 English日本語版本。

依然仅仅依赖于 IP 防火墙?是时候做出改变了。

Introducing Advanced Rate Limiting

虽然 IP 地址依然可能是使网络正常运行的核心技术之一,但其在安全方面的价值早已不复存在。IP 极少是静态的;如今,移动运营商使用电信级网络地址转换(CGNAT)在数以千计的设备或用户之间共享同一 IP 地址。机器人会使用来自不同 IP 的低请求量发动分布式攻击,以避免被限流。此外,很多国家/地区将 IP 地址视为个人数据,如果能为目前依赖于 IP 地址来运行的安全元素找到替代品,那么将会是隐私保护的一大进步。受这一趋势影响的一个产品就是速率限制。

速率限制旨在阻止请求导致服务器负荷过重。它依赖于规则。速率限制规则由一个过滤器(通常是一个路径、例如/login)和一段时间内每个用户允许的最大请求数来定义。当这个阈值被超过时,同一用户在一段时间内的后续请求将触发一个操作(通常是阻止)。传统的限流解决方案将相同 IP 的请求集中在一起,因为它们遵循“来自相同 IP 的请求来自相同用户”的逻辑。然而,我们听到客户反映,使用基于 IP 的速率限制来保护流量效果欠佳,对验证 API 而言尤其如此。

我们隆重推出高级速率限制,这是限流技术的一个飞跃。这种技术允许根据 HTTP 请求的几乎任何特征来计数请求,无论 IP 地址是什么。速率限制是针对暴力破解、内容爬取或针对性 DDoS 攻击的优秀防御手段。这些攻击的后果包括敏感数据泄露、帐户接管或后端资源耗尽。对于每个请求都会在服务器源上触发昂贵计算的 API 而言,控制请求的速率尤为重要。

限流技术的变革性创新

高级速率限制现已成为 Web 应用程序防火墙(WAF)的一部分。它与 Firewall Rules 集成,允许基于特征而非 IP 来计数请求。

通过高级速率限制限制,您能:

  1. 使用所有 HTTP 请求特征来定义规则过滤器,例如 URI、方法、标头、cookie 和正文字段。使用 Bot Management 计划的客户也能利用机器人分数动态字段。您也能使用 HTTP 请求的两个特征来触发速率限制:状态码和响应标头。

  2. 选择基于如下特征来计数请求:IP、国家、标头、cookie,AS 编号(ASN)、请求参数值或 JSON 正文字段值。您可以单独或组合使用这些字段,将匹配相关值的请求归类在一起。它也能将阈值设为源服务器能处理的最大复杂程度,而非您希望允许的最大请求数。

  3. 将它应用于您的所有流量。作为 Enterprise 用户,速率限制可以针对您全部流量的一部分购买。通过高级速率限制,您可以在您所有的流量上使用该产品,无需担忧上限。最后,高级速率限制对整个 Cloudflare 网络可用,包括在中国。

旨在与您的应用程序集成

在本节中,我们讨论使用高级速率限制来保护 web 或 API 流量的几个常见用例。您可以组合和匹配所有这些配置,以便更好地满足安全性和应用程序的需求。所有这些用例都可以通过仪表板、API 和 Terraform 实现。

用例 —— 使用更精细的规则保护 web 流量

灵活的过滤器。 您现在能够使用 HTTP 的所有字段来编写速率限制规则。例如,您可以为具有特定标头(例如用户代理)来触发一条规则,或限制共享同一 ASN 的机器人流量。

独立的缓解表达式。 您现在能将缓解表达式和计数表达式分开。如此一来,您可以定义在阈值达到时阻止用户访问网站的哪一个部分,以及请求(和响应)需要满足什么条件来增加计数。例如,您可以计数对您 /login 端点发出的请求,然后阻止同一用户对整个站点的访问。当您要在计数表达式中包含响应字段时,这是特别有用的,例如仅计数返回特定响应码的请求,但阻止更大部分的流量。

With Advanced Rate Limiting you get access to all HTTP request fields available in the rule builder.

使用动态字段。 客户现在能将速率限制和检测已知漏洞的规则(例如 WAF 机器学习分数) 结合起来使用。例如,您可以在标记为 SQLi 的多个连续请求到达您的站点后阻止访问。另一个用例是,仅对可能来自机器人的请求触发某一条规则(通过使用规则过滤器中的机器人分数),或在多个使用被盗凭据的登录尝试发生后(link)触发某一条规则。您也可以将 JA3 指纹用作计数依据,从而利用我们的机器人机器学习算法来归类来自同一指纹的机器人。

With Advanced Rate Limiting you can count on a path and block across your whole website.

用例 —— 将速率限制与应用程序集成来保护 API

With Advanced Rate Limiting you can use dynamic fields in the rule filter.

基于会话 ID 来计数请求。 API 流量往往经过验证,会话可以通过 cookie、标头(例如 x-api-key)或查询值来跟踪。高级速率限制允许您定义包含该 ID 的请求 ,并跟踪请求相对同一会话的数量,而无论 IP 地址是什么。对于抓取敏感数据(如产品价格或航班乘客数据)的分布式机器人攻击而言,这是一个有效的防御手段。

根据请求正文内容触发规则。 规则过滤器允许访问原始正文和 JSON 解析后的正文。您可以使用使用规则过滤器中的函数 llookup_json_string ,计数正文 JSON 字段具备特定值的请求。这对于 GraphQL API 可能非常有用,其中不同的调用(变体)可通过相同的端点执行,但在请求正文中指定不同的操作。

You can group requests based on cookie, header, query and other characteristics.

基于复杂性的速率限制(即将推出测试版)。 一些 API 调用的服务比其他要复杂得多,因此计算请求的数量并不能真正反映实际的服务成本。GraphQL API 就是一个例子:每个调用的复杂性可能会相差巨大,取决于服务器需要进行多少处理才能服务该请求。您的源服务器可以估计每个请求的复杂性并随响应一起返回,速率限制可根据源服务器提供的复杂性估计累加计数。然后您可以在规则中设定一个复杂性阈值,在超过时会触发一个操作,例如阻止。

You can trigger rules based on request body content.

提供方式

高级速率限制现已通过新的 Advanced 计划向 Enterprise 客户正式提供。如下为每个计划包含内容的更多详情。请联系您的 Cloudflare 帐户团队或 Customer Success 经理(CSM)以了解详情。如果您的是 Pro 或 Biz 客户,您将无法使用高级速率限制,但我们计划也将为 Pro 和 Biz 计划提供一些优势。

Enterprise Core

Enterprise Advanced

过滤器中的可用请求字段

选择的标准字段:URLMethod标头Source IP

所有标准字段正文字段帐户接管字段动态字段(包括机器人分数*)

计数过滤器中的可用响应字段

响应代码响应标头

响应代码响应标头

计数特征

IP

IP使用 NAT 的 IP 感知ASN国家/地区标头Cookie查询JA3*

复杂性

最大取样期间

10 分钟

1 小时

*需要 Bot Management 计划

速率限制后续展望

未来几个月内,我们将收集客户反馈,以决定应在高级速率限制中包括的更多功能。我们已经有一些想法正在进行探索,包括自动分析您的流量,并为您的规则推荐阈值。

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

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

在 X 上关注

Cloudflare|@cloudflare

相关帖子

2024年4月04日 13:05

New tools for production safety — Gradual deployments, Source maps, Rate Limiting, and new SDKs

Today we are announcing five updates that put more power in your hands – Gradual Deployments, Source mapped stack traces in Tail Workers, a new Rate Limiting API, brand-new API SDKs, and updates to Durable Objects – each built with mission-critical production services in mind...

2024年3月08日 14:05

Log Explorer: monitor security events without third-party storage

With the combined power of Security Analytics + Log Explorer, security teams can analyze, investigate, and monitor for security attacks natively within Cloudflare, reducing time to resolution and overall cost of ownership for customers by eliminating the need to forward logs to third-party SIEMs...