人们普遍认为,启用 Cloudflare 托管规则集和 OWASP 核心规则集足以拥有受保护的应用程序。这个前提忽略了这些规则集的设计目的——以及它们故意不做什么。
托管规则集是广谱保护。它们可以在任何 Web 应用程序上运行,从 WordPress 博客到支付 API,而无需了解其应用程序与其他应用程序的不同之处。这正是限制他们的原因。
托管规则集涵盖哪些内容以及它们在何处产生摩擦
当 Cloudflare 检测到新的漏洞利用工具包、大规模攻击特征以及流行软件中 CVE 的主动利用时,Cloudflare 托管规则集会自动更新。对于没有专门安全团队的团队来说,这具有真正的价值——无需手动维护即可持续覆盖。
OWASP 核心规则集适用于已分类的攻击类别:SQL 注入、XSS、文件包含、不安全反序列化。当规则针对同一请求触发时,评分模型会累积分数,当总数超过可配置阈值时,就会采取行动。这种设计减少了来自非常敏感的孤立规则的误报,但并没有消除它们。
可以预见的是,误报会出现在三种情况下。接受带有引号、撇号或括号的 JSON 的 API 端点与 SQLi 规则发生冲突——引擎看到的是表单,而不是上下文。当用户在 POST 中保存合法 HTML 时,具有富文本编辑器的管理面板会触发 XSS 规则。二进制上传端点启用文本校准的正文检查规则。这些都不是攻击;都是合法的应用行为。
自定义规则允许您执行哪些操作
自定义规则的运行需要掌握托管规则集永远不会拥有的知识:应用程序的特定行为、合法流量的概况、与您的用例相关的威胁。
Cloudflare 的表达式语言支持 0、1 和 2 的复合条件。按原籍国 3 与4 组合的阻止仅限制注册端点,而不影响其余部分。字段 5 可以阻止信誉不佳的 IP,无需手动列入黑名单。
受信任来源的白名单与阻止规则一样重要。监控 IP、CI/CD 和内部操作员必须排除在所有检查之外,并在其他检查之前应用允许规则。如果没有这个,运行状况检查将返回 403,并且分段部署会陷入速率限制 — 需要花费数小时的时间来调查不应该存在的问题。
对敏感端点的速率限制属于自定义规则。登录、密码恢复和 OTP 端点的流量配置文件与应用程序的其余部分截然不同。将每个 IP 每分钟 6 次请求限制为 5 次的规则可以防止凭证填充,而不会影响任何其他路径。
阻止恶意抓取用户代理也适合这里:7或8是通用规则集不会实现的过滤器,因为它们取决于您关于排除哪些来源的决定。
如何在不打开漏洞的情况下解决误报
当托管规则集错误触发时,全局禁用该规则会删除对其工作的所有其他路径的保护。正确的答案是精确范围的跳过规则:9 仅为该路径禁用规则 100016,从而保持整个应用程序的覆盖范围。按 10° 而不是按规则组确定范围是手术例外和漏洞之间的区别。
当规则在日志模式下触发时,规则标识符会出现在活动日志中 - 这也是在任何阻止之前强制观察期的另一个原因。
如何根据可用内容校准计划
免费计划提供 5 条自定义规则,并且无法访问托管规则集。有了 5 条规则,优先级就很明确:内部 IP 的白名单、高 11 的阻止、最关键端点的速率限制。试图用 5 条规则涵盖所有内容会导致规则过于宽泛,并产生不可预测的副作用。
Pro 计划最多包含 20 条规则并解锁托管规则集。业务计划达到 100 — 这允许您为每组端点创建不同的保护配置文件:具有更宽松的速率限制的公共 API、具有更积极检查的管理面板、具有按源 IP 允许列表的合作伙伴 Webhooks。 20条规则让你做出选择;有了100,你就可以从事政治。
实际可行的校准过程
操作顺序比每个规则的具体配置更重要。在没有流量基线的生产应用程序中开始主动阻止是干扰真实用户的秘诀。
该序列首先以日志模式管理七到十四天的所有规则集。 WAF 活动仪表板积累真实数据:哪些规则将触发、以何种频率、在哪些路径上触发。通过此映射,您可以在误报候选者成为事件之前识别它们,编写具有正确范围的跳过规则,并配置自定义允许列表和阻止规则。
只有这样,转向托管挑战或阻止才有意义,从误报风险最低的规则(特定 CVE)开始,并在您获得信心时转向更广泛的规则(OWASP SQLi、OWASP XSS)。校准 OWASP 核心规则集阈值是最后的决定,因为它取决于查看应用程序流量中分数的真实分布。
校准 WAF 是一个迭代过程。流量变化、应用程序变化、新功能创建了规则集不知道的请求模式。在没有相应跳过规则的情况下启动的端点将生成仅在生产中出现在错误时间的误报。
另请阅读
- [WAF 仍然存在的问题:绕过技术以及如何缓解12
- [DNS 代理与仅 DNS:有何变化以及每种模式何时有意义13
- [DNSSEC 与 Cloudflare:它保护什么、不保护什么以及如何顺利激活14
- [Cloudflare WAF:托管保护真正阻止了什么以及它通过了什么15
- 【日志模式下的WAF:如何在不阻塞合法流量的情况下逐步开启防护16
- [WAF + 速率限制 + 机器人管理:边缘保护三重奏17