以下场景详细说明了如何利用重写规则来解决常见的 HTTP DDoS 防护问题。
来自您的移动应用程序的流量可能看起来很可疑,导致 DDoS 托管规则将其阻止。
您应该识别出阻止流量的托管规则,并将敏感度级别更改为 Medium。如果流量继续被该托管规则阻止,请将敏感度级别设置为 Low 或 Essentially off(基本关闭)。
如果您有权使用过滤器表达式,则可以创建一个重写规则来针对特定的受影响流量。
如果您确认被自适应规则标记的流量可以被视为一次攻击,您可以创建一条重写规则,以缓解模式将该自适应规则启用为 challenge(如果是浏览器流量)或 block(针对其他可疑流量)。
误报 (False positive) 是一种错误的识别。在 DDoS 防护的情况下,当合法流量被误分类为攻击流量时,就会发生误报。当旧版应用程序、互联网服务或有缺陷的客户端应用程序产生看起来可疑、流量模式奇特、偏离最佳实践或违反协议的合法流量时,可能会发生这种情况。
在这些情况下,Cloudflare 的 DDoS 防护系统可能会将该流量标记为恶意流量并应用缓解操作。如果该流量实际上是合法的且不是攻击的一部分,缓解操作可能会导致您的互联网资产发生服务中断和停机。
要解决误报问题:
-
在 Cloudflare 仪表板中,前往 Network analytics (网络分析) ↗ 页面。
-
对显示的数据应用过滤器。
对于 WAF/CDN 客户
- 选择正在经历 DDoS 攻击误报的区域。
- 前往 Security(安全性) > Analytics(分析) > Events(事件) 选项卡。
- 选择 Add filter(添加过滤器) 并按
Service equals HTTP DDoS进行过滤。
对于 Magic Transit 和 Spectrum 客户
- 前往账户主页 > Analytics & Logs(分析与日志) > Network Analytics(网络分析)。
- 识别导致误报的合法流量。使用 DDoS 警报中包含的攻击 ID 编号(如果您收到的话),或者应用目标 IP 地址和端口等仪表板过滤器。
-
向下滚动到 Top events by source(按来源排列的主要事件) > HTTP DDoS rules(HTTP DDoS 规则)。
-
复制规则名称。
-
前往您的区域 > Security(安全性) > Security rules(安全规则) > DDoS protection(DDoS 防护) 选项卡,然后选择 Create override(创建重写)。如果您无法部署任何额外的重写,请编辑现有的重写以调整规则配置。
-
选择 Browse rules(浏览规则) 并将规则名称粘贴到搜索字段中。
-
将规则的 Sensitivity Level(敏感度级别) 降低为 Essentially Off(基本关闭),或者将规则操作更改为 Log(记录)(如果您的当前套餐和订阅支持)。
-
选择 Next(下一步),然后选择 Save(保存)。
-
在 Cloudflare 仪表板中,前往 Network analytics (网络分析) ↗ 页面。
-
对显示的数据应用过滤器。
对于 WAF/CDN 客户
- 选择正在经历 DDoS 攻击误报的区域。
- 前往 Security(安全性) > Events(事件)。
- 选择 Add filter(添加过滤器) 并按
Service equals HTTP DDoS进行过滤。
对于 Magic Transit 和 Spectrum 客户
- 前往账户主页 > Analytics & Logs(分析与日志) > Network Analytics(网络分析)。
- 识别导致误报的合法流量。使用 DDoS 警报中包含的攻击 ID 编号(如果您收到的话),或者应用目标 IP 地址和端口等仪表板过滤器。
-
向下滚动到 Top events by source(按来源排列的主要事件) > HTTP DDoS rules(HTTP DDoS 规则)。
-
复制规则名称。
-
前往您的区域 > Security(安全性) > DDoS 并选择 Deploy a DDoS override(部署 DDoS 重写)。如果您无法部署任何额外的重写,请编辑现有的重写以调整规则配置。
-
选择 Browse rules(浏览规则) 并将规则名称粘贴到搜索字段中。
-
将规则的 Sensitivity Level(敏感度级别) 降低为 Essentially Off(基本关闭),或者将规则操作更改为 Log(记录)(如果您的当前套餐和订阅支持)。
-
选择 Next(下一步),然后选择 Save(保存)。
保存后,规则将在一到两分钟内生效。规则调整应能立即解决问题,您可以在分析仪表板中查看效果。
稍后,您可以更改导致误报的规则的敏感度级别以避免未来发生问题,并将规则操作更改回其默认值。
为了能在以低敏感度阻止攻击以保持防护的同时,观察 DDoS 托管规则在高敏感度级别下的行为,高级 DDoS 防护客户可以创建第一个重写规则以低敏感度阻止攻击,并创建第二个重写规则以高敏感度进行记录 (Log)。
必须按该顺序设置重写。否则将无法正常工作。这是因为重写规则是按顺序评估的,并且会在匹配表达式和敏感度的第一个重写规则处停止。如果以错误的顺序设置重写,将导致高敏感度下的 Log 重写匹配所有实例。因此,Cloudflare 将永远不会评估放置在其后面的 Block 重写,从而导致所有规则都被设置为 Log 模式。
如果匹配了不带表达式的重写,Cloudflare 将不会评估其后的表达式。
漏报 (False negative) 是缺少识别。在 DDoS 防护的情况下,当攻击流量被误分类为合法流量且未被缓解时,就会发生漏报。当攻击流量不够高以至于无法触发缓解操作,或者没有与该攻击匹配的规则时,可能会发生这种情况。
要解决漏报问题:
- 如果您是 WAF/CDN 客户,请遵循 主动 DDoS 防御 页面中的步骤,该页面将引导您根据需要启用 Under Attack(遭受攻击) 模式并创建速率限制规则和 WAF 自定义规则。
- 如果您是 Magic Transit 客户,请使用 Cloudflare 网络防火墙 (Network Firewall) 规则来帮助缓解攻击。
缓解不彻底是指 DDoS 防护系统已应用缓解,但并未将所有攻击完全缓解的情况。当 Cloudflare 系统应用了比攻击所需的缓解操作更宽松的操作时,可能会发生这种情况。
系统会根据逻辑以及 DDoS 防护系统对流量确实是攻击一部分的置信度来选择缓解操作:
- 对于高置信度规则,系统将应用严格的缓解操作,例如 Block 操作。
- 对于低置信度规则,系统将应用不够严格的缓解规则,例如 Challenge(质询) 或 Force Connection Close(强制关闭连接)。
如果您正在遭受被 Cloudflare 检测到的 DDoS 攻击,且所应用的缓解操作不够严格,请将规则操作更改为 Block(阻止):
-
在 Cloudflare 仪表板中,前往 Network analytics (网络分析) ↗ 页面。
-
对显示的数据应用过滤器。
对于 WAF/CDN 客户
- 选择正在经历 DDoS 攻击未完全缓解的区域。
- 前往 Security(安全性) > Analytics(分析) > Events(事件) 选项卡。
- 选择 Add filter(添加过滤器) 并按
Service equals HTTP DDoS进行过滤。
对于 Magic Transit 和 Spectrum 客户
- 前往账户主页 > Analytics & Logs(分析与日志) > Network Analytics(网络分析)。
- 识别缓解不彻底的 DDoS 攻击。使用 DDoS 警报中包含的攻击 ID 编号(如果您收到的话),或者应用目标 IP 地址和端口等仪表板过滤器。
-
向下滚动到 Top events by source(按来源排列的主要事件) > HTTP DDoS rules(HTTP DDoS 规则)。
-
复制规则名称。
-
前往您的区域 > Security(安全性) > Security rules(安全规则) > DDoS protection(DDoS 防护) 选项卡,然后选择 Create override(创建重写)。如果您无法部署任何额外的重写,请编辑现有的重写以调整规则配置。
-
选择 Browse rules(浏览规则) 并将规则名称粘贴到搜索字段中。
-
将规则的 Action(操作) 更改为 Block。
-
选择 Next(下一步),然后选择 Save(保存)。
-
在 Cloudflare 仪表板中,前往 Network analytics (网络分析) ↗ 页面。
-
对显示的数据应用过滤器。
对于 WAF/CDN 客户
- 选择正在经历 DDoS 攻击未完全缓解的区域。
- 前往 Security(安全性) > Events(事件)。
- 选择 Add filter(添加过滤器) 并按
Service equals HTTP DDoS进行过滤。
对于 Magic Transit 和 Spectrum 客户
- 前往账户主页 > Analytics & Logs(分析与日志) > Network Analytics(网络分析)。
- 识别缓解不彻底的 DDoS 攻击。使用 DDoS 警报中包含的攻击 ID 编号(如果您收到的话),或者应用目标 IP 地址和端口等仪表板过滤器。
-
向下滚动到 Top events by source(按来源排列的主要事件) > HTTP DDoS rules(HTTP DDoS 规则)。
-
复制规则名称。
-
前往您的区域 > Security(安全性) > DDoS 并选择 Deploy a DDoS override(部署 DDoS 重写)。如果您无法部署任何额外的重写,请编辑现有的重写以调整规则配置。
-
选择 Browse rules(浏览规则) 并将规则名称粘贴到搜索字段中。
-
将规则的 Action(操作) 更改为 Block。
-
选择 Next(下一步),然后选择 Save(保存)。
保存后,规则将在一到两分钟内生效。规则调整应能立即解决问题,您可以在分析仪表板中查看效果。
如果使用上述步骤无法阻止攻击使您的源站 Web 服务器过载,请联系 Cloudflare 支持以寻求协助,并提供以下详细信息:
- 攻击的时间段(UTC 时间戳)
- 成为攻击目标的域名/路径(区域名称/ID)
- 攻击频率
- 重现该问题的步骤,以及实际结果与预期结果的对比
- 任何相关的附加信息,例如网站 URL、错误消息、屏幕截图或来自您的源站 Web 服务器的相关日志