人们普遍认为启用 WAF 是一个二元决定:阻塞或不阻塞。从这一点开始,团队直接在生产中激活块模式下的托管规则集,假设规则足够保守,然后发现合同上传表单已停止工作,与[支付网关9]的集成返回了403,并且支持团队收到了无法登录的客户的投诉。WAF 并没有错,但它也不知道该应用程序。
日志模式的用途以及它存在的原因
Cloudflare WAF 对于每个规则都有三种可能的操作: 阻止,返回 403 并终止请求;挑战,向客户提出挑战;日志,记录发生的情况而不干扰流程。日志模式是唯一一种允许您观察规则针对真实流量的行为而不会对用户产生任何后果的模式。
当规则集配置有日志操作时,所有规则都会正常触发 - 评估标头、URI、正文、查询字符串 - 但它们不会阻塞,而是只记录事件。 Cloudflare 仪表板中的防火墙事件捕获每个触发器:原始 IP、完整 URI、特定规则 ID 以及导致匹配的确切内容。请求完好无损地到达源服务器。用户没有注意到任何事情。
防止事故发生的部署顺序
该过程首先启用所有托管规则集,并将操作设置为“日志”。 OWASP 偏执级别应从一开始就设置为 1:该级别以最低的误报量捕获最明显的攻击模式。第一次激活时上升到 2 级或 3 级几乎肯定会产生过多的噪音,从而难以区分真正的攻击和合法的格式错误的流量。
使用日志中的规则集,必须每天检查防火墙事件仪表板。目标是识别对合法请求一致触发的规则 - 相同的 URI、相同的请求模式、相同的规则。孤立的镜头可能是噪音;来自真实用户的数千个请求的相同触发器是误报,当操作更改为“阻止”时,它将阻止流量。
当识别出误报时,响应是创建跳过规则:指示 WAF 在 URI 和 HTTP 方法等标准匹配时忽略规则集或特定规则的防火墙规则。由于端点 0 接受名称中带有 1 扩展名的文件,因此触发规则 100035,该端点会收到一条跳过规则,该规则会将该路径排除在该规则的检查之外。排除是外科手术:继续评估所有其他流量。
使用日志中的规则集一到两周后,使用跳过规则处理误报,并且合法流量上没有新的触发器,操作将更改为阻止。标准是稳定性,而不是经过的时间。
准确读取防火墙事件
防火墙事件仪表板显示每个事件的足够详细信息以供做出决策。除了 IP 和 URI 之外,该事件还显示触发的规则 ID(可在 Cloudflare 文档中查阅的标识符,例如 2 或 3)以及匹配的数据,即导致匹配的请求的特定部分。
这个匹配的数据字段将调查从推测的误报转变为具体的诊断。如果规则4在5上触发并且匹配的数据显示6,则很明显该规则对文件名做出反应,而不是对正文中的恶意内容作出反应。生成的“跳过”规则是精确的:它仅忽略该路径的规则 7。任何其他收到真正可疑的 8 的端点都会继续进行评估。
新 WAF 事件的通知警报关闭了持续检测的循环。当 Cloudflare 将新签名添加到循环的 CVE 中时,警报会通知团队 - 并且防火墙事件会显示新规则是否正在触及合法流量,以免为时已晚。
WAF 分析和 SIEM 集成
对于已建立安全操作的团队,可以通过 Logpush 导出防火墙事件数据。 Logpush 将 WAF 事件发送到 R2、S3、Datadog 或 Splunk,并包含全套字段:时间戳、IP、国家/地区、URI、方法、规则 ID、采取的操作和匹配的数据。对于拥有活跃 SOC 的团队来说,这些数据提供了 Cloudflare 仪表板无法提供的相关性:多个 IP 在数小时内针对同一端点分发的攻击模式,有效负载变化测试可以规避哪些规则。
WAF Analytics 将这些事件聚合到 Cloudflare 中的时间序列中。当操作从“记录”更改为“阻止”时,正常流量中 403 响应的意外增加表明存在未经过观察阶段的误报 — 并且事件中的规则 ID 会准确告诉您要处理的内容。
培养操作习惯
WAF 不是一次性配置。应用程序发生变化:添加新端点、第三方集成引入 WAF 从未见过的请求模式、Cloudflare 定期更新托管规则集。
有效的方法是分配明确的责任:平台或安全团队的某人每周审查防火墙事件。此次审查寻找新的模式——以前从未出现过的大量规则触发,高峰时段的封锁激增。当新端点投入生产时,该路径的观察序列将再次开始:首先记录,跳过误报规则,稍后阻止。
当生产中出现误报时(用户报告意外的 403),防火墙事件中的规则 ID 会告诉您到底发生了什么。正确的流程是在不到两分钟的时间内掌握规则 ID,而不是在支持人员收到 50 个投诉后才找出阻止它的原因。
另请阅读
- [生产中的 Cloudflare Workers:hello world 之后发生了什么变化10
- [WAF 仍然存在的问题:绕过技术以及如何缓解11
- [WAF 中的托管规则与自定义规则:何时编写自己的规则12
- [Workers:调试、日志和 Workers Tail — 无需日志服务器即可在边缘进行观察13
- [Cloudflare 负载均衡和地理转向:当 DNS 成为智能流量层14
- [DNS 代理与仅 DNS:有何变化以及每种模式何时有意义15