Cloudflare Docs
Support
Support
Visit Support on GitHub
Set theme to dark (⇧+D)

了解 WAF 托管规则(Web 应用程序防火墙)

​​ 了解 WAF 托管规则(Web 应用程序防火墙)

WAF 托管规则监控对您域名的 Web 请求,并根据您启用的规则集过滤掉不需要的流量。

​​ 本文内容


​​ 概述

托管规则是 Cloudflare WAF(Web 应用程序防火墙)的一项功能,可以识别并删除 HTTP GET 和 POST 请求的可疑活动。

托管规则识别的 恶意内容示例包括:

  • 垃圾评论中使用的常见关键词(XXRolexViagra 等)
  • 跨站点脚本(XSS),以及
  • SQL 注入(SQLi)。

托管规则面向 Pro、Business 和 Enterprise 计划,可用于任何 代理至 Cloudflare 的子域。您可在安全性 > WAF > 托管规则下控制托管规则设置。托管规则包含 3 个软件包:

  • Cloudflare 托管规则集
  • 软件包:OWASP ModSecurity 核心规则集
  • 客户要求的规则 

通过 Firewall Analytics 活动日志查看已阻止的威胁,该日志位于 安全性 > 概述下。

​​ 重要须知

  • 托管规则会产生有限数量的延迟。
  • WAF 托管规则更改需要大约 30 秒来进行全局更新。
  • Cloudflare 使用专有的规则来过滤流量。
  • 已建立的 WebSocket 不会对后续请求触发托管规则。
  • 托管规则解析 JSON 响应,以识别针对 API 的漏洞。JSON 有效负载解析限制为 128KB。
  • 托管规则可缓解填充(Padding)技术攻击。建议进行如下设置:
    1. 开启 100048 规则。此规则现在可以预防填充型攻击,但默认状态下并不启用,因为它会导致客户环境中出现许多误报。不过,客户务必要调优他们的托管规则配置,这很重要。Cloudflare 正在奋力开发效果更优的长期解决方案。
    2. 使用 Expression Editor 创建防火墙规则,具体取决于对检查报头和/或正文以阻止较大有效负载(> 128 KB)的需求。务必首先在_日志_模式中测试您的防火墙规则,因为它可能容易产生误报。
      • http.request.body.truncated
      • http.request.headers.truncated
  • 有一小部分托管规则是 Cloudflare 不会禁用的,即使托管规则在 Cloudflare 仪表板中处于_关闭_状态,例如 ID 为 WP0025B100043A100030 的规则。

​​ 关于误报和漏报的说明

默认情况下,WAF 托管规则通过 Cloudflare 仪表板进行全面管理,并且与大多数网站和 Web 应用程序兼容。不过,鉴于互联网广袤无垠,难免会出现误报和漏报情况:

  • 误报:合法请求被当做恶意请求检测和过滤。
  • 漏报:恶意请求未被过滤。

​​ WAF 托管规则误报故障排除

各个网站对可疑内容的定义都具有主观性。例如,发布到您网站上的 PHP 代码是可疑的,除非您的网站教授如何编码并要求访问者提交 PHP 代码。因此,此类网站必须禁用会干扰正常运作的相关托管规则。

若要测试是否存在误报,请将 WAF 设置为模拟模式,以记录对潜在攻击的响应,而不进行质询或阻止。另外,请使用 Firewall Analytics 活动日志来确定哪些托管规则导致了误报。

如果您因 旧版 WAF 遇到误报,有几种可能的解决方案可选:

如果您因 新版 WAF 遇到误报,有几种可能的解决方案可选:

  1. 添加 WAF 例外: 您可以在 Cloudflare 仪表板中或使用规则集 API 定义 WAF 例外。
  2. 禁用相应的 托管规则: 不再阻止或质询误报,但会降低总体网站安全性。规则 ID 949110 所阻止的请求引用 新的 OWASP 规则。降低 OWASP 灵敏度可解决此问题。

**注意:**如果要 联系 Cloudflare 支持以验证 WAF 托管规则是否按预期触发,请提供在发送具体的相关请求时所采集的 HAR 文件

其他准则如下:

  • 如果某一特定规则导致误报,请将规则的模式设置为_禁用_,而不是_关闭_整个规则
  • 如果误报涉及网站上的管理员内容,请创建一条 页面规则,针对网站资源的 admin 部分(即 yoursite.com/admin禁用安全性

​​ WAF 托管规则漏报故障排除

要识别漏报,请查看源 Web 服务器上的 HTTP 日志。要减少误报,请使用以下检查列表:

  • 安全性 > WAF > 托管规则下是否_启用_了 WAF 托管规则?
  • 是否通过 页面规则 _禁用_了 WAF 托管规则?
  • 并不是所有 WAF 托管规则都默认启用,因此请查看各个 WAF 托管规则的默认操作。
    • 例如,Cloudflare 默认允许具有空用户代理的请求。要阻止具有空用户代理的请求,请将规则的模式设为阻止
    • 再比如说,如果您想阻止充分的 SQL 注入攻击,请确保在 Cloudflare Specials 组下启用相关的 SQLi 规则并设置为阻止
  • 服务 HTTP 流量的 DNS 记录是否通过 Cloudflare 代理?
  • 防火墙规则是否绕过了托管规则?
  • IP 访问规则防火墙规则允许的国家/地区、ASN、IP 范围或 IP 是否与攻击流量匹配?
  • 定向到您的源站 IP 地址的恶意流量是否绕过了 Cloudflare 保护?在您的源 Web 服务器上阻止来自 Cloudflare IP 地址以外的所有流量。

​​ Cloudflare 托管规则集

Cloudflare 托管规则集包含由 Cloudflare 编写和管理的安全规则。单击下的规则集名称,可显示规则描述。

Cloudflare Specials 是一个,提供了防御 常见攻击的核心防火墙安全性。

 

查看规则集时,Cloudflare 将显示每条规则的默认操作并列在默认模式下。特定 Cloudflare 托管规则集内各条规则可用的模式包括:

  • 默认 - 采取查看具体规则时列在_默认模式_下的默认操作。
  • 禁用 - 关闭组中的特定规则。
  • 阻止 - 请求被丢弃。
  • 旧版 CAPTCHA - 访问者收到 CAPTCHA 质询页面。
  • 模拟 - 请求被允许通过,但记录到活动日志中。

通过 Cloudflare 的 WAF 变更日志,客户可以监控对 Cloudflare 托管规则集的持续更改。


​​ 软件包:OWASP ModSecurity 核心规则集

​​ 了解 Cloudflare 的 OWASP 软件包

软件包:OWASP ModSecurity 核心规则集根据触发的 OWASP 规则数量为每个请求指定一个分数。某些 OWASP 规则的敏感度分数高于其他规则。在 OWASP 评估请求后,Cloudflare 会将最终分数与为该域名配置的敏感度进行比较。如果分数超过敏感度,则根据软件包:OWASP ModSecurity 核心规则集中配置的操作来处理这个请求。

  • 阻止 - 请求被丢弃。
  • 质询 - 访问者收到 CAPTCHA 质询页面。
  • 模拟 - 请求被允许通过,但记录到活动日志中。

对于具体的敏感度,触发 WAF 所需的敏感度得分如下:

  • - 60 及以上
  • - 40 及以上
  • - 25 及以上

对于 Ajax 请求,则适用以下分数:

  • - 120 及以上
  • - 80 及以上
  • - 65 及以上

检查活动日志,以查看最终分数以及各个触发的规则。

​​ 控制 Cloudflare 的 OWASP 软件包

软件包:OWASP ModSecurity 核心规则集包含来自于 OWASP 项目的若干规则。Cloudflare 不编写或管理 OWASP 规则。单击下的规则集名称,可显示规则描述。与 Cloudflare 托管规则集不同,具体的 OWASP 规则为_开_或_关_状态。

要管理 OWASP 阈值,请在软件包:OWASP ModSecurity 核心规则集下将_灵敏度_设置为_低_、_中_或。如果把灵敏度设置 关闭,将会禁用整个 OWASP 软件包,包括其所有规则。如何确定适当的灵敏度取决于您所在的行业和运营状况。例如,_低_设置适用于:

  • 某些更有可能触发 WAF 的行业,以及
  • 大文件上传。 

Cloudflare 建议首先将敏感度设置为_低_,再检查误报,然后进一步提高敏感度


​​ 相关资源