Subscribe to receive notifications of new posts:

Subscription confirmed. Thank you for subscribing!

隆重推出高级速率限制

Loading...

Introducing Advanced Rate Limiting

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

虽然 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 的机器人流量。

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

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

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

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

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

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

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

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

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

You can trigger rules based on request body content.

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

提供方式

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

Enterprise Core Enterprise Advanced
过滤器中的可用请求字段 选择的标准字段:
URL
Method
标头
Source IP
所有标准字段
正文字段
帐户接管字段
动态字段(包括机器人分数*)
计数过滤器中的可用响应字段 响应代码
响应标头
响应代码
响应标头
计数特征 IP IP
使用 NAT 的 IP 感知
ASN
国家/地区
标头
Cookie
查询
JA3*
复杂性
最大取样期间 10 分钟 1 小时

*需要 Bot Management 计划

速率限制后续展望

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

We protect entire corporate networks, help customers build Internet-scale applications efficiently, accelerate any website or Internet application, ward off DDoS attacks, keep hackers at bay, and can help you on your journey to Zero Trust.

Visit 1.1.1.1 from any device to get started with our free app that makes your Internet faster and safer.

To learn more about our mission to help build a better Internet, start here. If you're looking for a new career direction, check out our open positions.

安全周 (CN) 速率限制

Follow on Twitter

Cloudflare |Cloudflare

Related Posts

March 30, 2021 3:57PM

终端用户安全:使用 Cloudflare防护帐户盗用

最终用户的帐户安全始终是头等大事,但也是难以解决的问题。更糟糕的是,验证用户身份并非易事。鉴于泄漏凭据日益泛滥,更先进的自动化爬虫程序在全网发动着凭据填充攻击,保护和监测身份验证端点成为安全团队面临的一个挑战。不但如此,很多身份验证端点依然仅仅依赖于提供正确的用户名和密码,使得恶意攻击者将未被甄别的凭证填充演变为账号盗用。...