大多数团队激活 Cloudflare WAF 就像安装防病毒软件一样:配置完成后,问题就解决了。这个前提是错误的,不理解它的代价是一种错误的安全感,这可能比完全没有保护更危险。
WAF 是针对特定类别威胁的有效层。对于另一个阶级,它提供的是摩擦,而不是障碍。了解差异决定了如何校准系统以及需要在应用程序级别构建什么。
托管规则集的实际作用
托管规则涵盖最常见的攻击类别:SQL 注入、跨站点脚本、目录遍历、Web shell 上传、流行框架中已知 CVE 的利用。它们通过签名匹配来工作——引擎检查请求并检查是否有任何模式与规则中注册的模式匹配。
该模型有一个内在的限制:它根据请求的形式进行操作,而不是根据其对应用程序的含义进行操作。在查询参数中检测到 0 的规则将触发 SQLi 攻击和合法用户搜索 SQL 教程。该规则无法知道该参数在应用程序上下文中代表什么 - 它只能看到字节。
这会产生可预测的误报。在具有富文本编辑器的应用程序中,接受 HTML 作为合法输入的端点会因 XSS 规则而崩溃。接收带有特殊字符的 JSON 的 API 与 SQLi 规则发生冲突。这种保护是真实的,但不是外科手术。
耐心的攻击者可以做什么
托管规则集非常适合抵御商品攻击:自动扫描程序、标准模式下的 sqlmap 等工具、触发通用有效负载的脚本小子。任何未经定制而使用这些向量的人都会遇到 WAF 并就此停止。
不同的场景是攻击者知道哪个 WAF 正在保护目标 — 通常通过标头、cookie 或响应行为公开信息。有了这些知识,他系统地测试了绕过技术:不寻常的编码(多个级别的 URL 编码、unicode 规范化、SQL 关键字中的混合大小写)、大型正文中的碎片有效负载、利用引擎处理限制的组合。
针对为特定目标定制有效负载的坚定攻击者,WAF 增加了工作量,而不是不可能。这仍然有价值——增加攻击成本会减少愿意为此付费的攻击者数量。但这并不是绝对的障碍,这样对待它是危险的。
WAF 根本不适合一类漏洞:业务逻辑。如果您的应用程序允许用户通过操纵 URL 中的 ID (IDOR) 来查看其他人的数据,WAF 将不会检测到这一点。该请求正式有效,没有恶意负载。问题出在应用程序逻辑上,唯一有效的保护是在代码中。
等级以及每个计划实际涵盖的内容
所有计划均提供第 3 层和第 4 层 DDoS 保护,始终开启且无需配置:在流量到达基础设施之前,在边缘进行容量缓解。
第 7 层 WAF(带有托管规则)的 Pro 套餐起价为每月 20 美元。此层解锁 Cloudflare 托管规则集和 OWASP 核心规则集。免费计划仅允许 5 个自定义规则,无法访问任何托管规则集。对于大多数具有真正安全要求的应用,Pro 是可接受的最低楼层。
每个规则可用的操作包括:阻止(立即返回 403)、挑战(显示机器人无法解决的 JavaScript 挑战)、托管挑战(Cloudflare 自动决定挑战级别)、记录(记录而不采取操作)、跳过(跳过特定规则或整个组)和允许(无需检查即可通过)。这些操作的组合是大部分校准发生的地方。
一个让一切都无效的细节
有一个先决条件在初始文档中并不明显:WAF 仅适用于 Cloudflare 代理处于活动状态的 DNS 记录 - 界面称之为“橙色云”。配置为仅 DNS(灰色图标)的记录直接指向源 IP。流量不经过 Cloudflare,因此没有 WAF 规则、没有边缘 DDoS 缓解措施、没有 JavaScript 挑战。
这会影响为方便起见保留为仅 DNS 的子域:临时环境、从外部访问的内部 API、辅助服务。如果攻击者发现这些子域(并且 DNS 枚举工具使这变得微不足道),他就可以直接到达源头,而无需通过 WAF。映射您的 DNS 记录和每个记录的状态需要成为安全审核的一部分。
您的团队在激活之前需要决定什么
在没有观察期的情况下启用托管规则集是阻止生产中合法流量的秘诀。操作上安全的路径从日志模式下的所有规则开始:您可以在不阻止任何内容的情况下看到将阻止的内容,分析触发模式并在切换到阻止或挑战之前识别误报。
最关键的决定是如何处理错误触发的规则。全局禁用该规则会为其防御的实际攻击造成漏洞。正确的答案是一个精确范围的跳过规则:这个特定的托管规则,在这个特定的路径上,针对这个特定的条件。封闭范围保留了应用程序其余部分的覆盖范围。
还值得提前确定 OWASP 核心规则集的敏感度阈值。它通过累积分数来工作——触发的每个规则都会增加分数,当总数超过可配置的限制时,就会发生该操作。限制太低会阻止合法流量;太高,它会错过复杂的攻击。盈亏平衡点取决于您的应用程序的性质和您观察到的流量概况。
配置良好的 WAF 可以有效防御您在实践中遇到的大多数攻击。问题是“配置良好”需要迭代,而不仅仅是激活。
另请阅读
- [WAF + 速率限制 + 机器人管理:边缘保护三重奏11
- 【应用安全:移动防护指南2
- [DNSSEC 与 Cloudflare:它保护什么、不保护什么以及如何顺利激活3
- [DNS 代理与仅 DNS:有何变化以及每种模式何时有意义4
- [Cloudflare Durable Objects:边缘的一致状态 - 真正改变的是什么55
- 【数据泄露防护:安全指南6
