跳转到内容
搜索文档

WAF 攻击分数

最后更新 查看 MarkdownAgent 设置

攻击分数流量检测使用机器学习算法对每个请求进行分类,根据请求为恶意请求的可能性分配 1 到 99 的分数。此检测是对 WAF 托管规则 的补充。

托管规则 将请求与已知攻击签名(既定攻击向量的特定模式)进行匹配。它们的误报率非常低。然而,攻击者可以修改已知载荷,例如使用模糊测试技术(一种通过发送经修改输入来发现漏洞的测试技术),从而规避精确的签名匹配。

攻击分数填补了这一空白。您可以使用该分数识别与 WAF 托管规则中任何规则不完全匹配的潜在恶意流量。

为了实现最大程度的保护,Cloudflare 建议您同时使用托管规则和攻击分数。

可用分数

Cloudflare WAF 提供以下攻击分数字段:

字段 描述 所需套餐
WAF Attack Score
cf.waf.score
Number
1–99 的全局分数,将每个 WAF 攻击向量的分数合并为单个分数。 Enterprise
WAF SQLi Attack Score
cf.waf.score.sqli
Number
1–99 的分数,对 SQL 注入(SQLi)攻击向量进行分类。 Enterprise
WAF XSS Attack Score
cf.waf.score.xss
Number
1–99 的分数,对跨站脚本(XSS)攻击向量进行分类。 Enterprise
WAF RCE Attack Score
cf.waf.score.rce
Number
1–99 的分数,对命令注入或远程代码执行(RCE)攻击向量进行分类。 Enterprise
WAF Attack Score Class
cf.waf.score.class
String
基于 WAF 攻击分数的当前请求攻击分数类别。
可能的值:attacklikely_attacklikely_cleanclean
Business 或以上

您可以在自定义规则速率限制规则的表达式中使用这些字段。数字分数字段的范围为 199

  • 分数为 1 表示该请求几乎肯定是恶意的。
  • 分数为 99 表示该请求可能是正常的。

分数为 100 表示请求到达了 WAF 攻击分数系统,但系统决定不对其进行评分。

Logpush 数据中,分数为 0 表示请求未到达攻击分数阶段——例如,因为先前的规则或防护系统已经缓解了它。值 0 不会出现在 Cloudflare 仪表板中。

全局 WAF Attack Score 由各个攻击分数(例如 SQLi Attack Score 和 XSS Attack Score)通过数学方式推导得出,反映了它们之间的相互依赖关系。但是,全局分数不是各个分数的总和。较低的全局分数通常表示各个分数为中等到偏低,而较高的全局分数则表明各个分数较高。

根据计算出的请求攻击分数,WAF Attack Score Class 字段可以具有以下值之一:

仪表板标签 字段值 描述
Attack attack 攻击分数介于 120 之间。
Likely attack likely_attack 攻击分数介于 2150 之间。
Likely clean likely_clean 攻击分数介于 5180 之间。
Clean clean 攻击分数介于 8199 之间。

攻击分数为特殊值 100 的请求在 Cloudflare 仪表板中会显示 WAF Attack Score Class 为 Unscored(未评分),但您不能在规则表达式中使用此类别值。

攻击分数会自动检测并解码请求中任何位置(URL、标头和正文)的 Base64、JavaScript(Unicode 转义序列)和 URL 编码内容。

规则建议

不建议仅根据攻击分数阻止所有低于 50 的流量。Likely attack 范围(分数 2150)可能包含被错误标记为恶意的合法请求(误报)。如果要根据攻击分数阻止流量,请执行以下操作之一:

  • 在表达式中使用更严格的 WAF Attack Score 值。例如,阻止 WAF 攻击分数低于 20 或低于 15 的流量(您可能需要调整确切阈值)。

  • 在阻止传入流量时,将较高的 WAF Attack Score 阈值与其他过滤条件结合使用。例如,在表达式中检查特定 URI 路径,或将机器人分数作为条件的一部分。


开始使用 WAF 攻击分数

1. 创建自定义规则

Enterprise 客户可以创建自定义规则,阻止 WAF Attack Score 小于或等于 20(建议的初始阈值)的请求。例如:

字段 运算符
WAF Attack Score less than or equal to(小于或等于) 20
  • 等效规则表达式:cf.waf.score le 20
  • 操作:Block

Business 客户必须改用 WAF Attack Score Class(WAF 攻击评分类别) 字段创建自定义规则。例如,使用此字段阻止分数类别为 Attack 的传入请求:

字段 运算符
WAF Attack Score Class equals(等于) Attack
  • 等效规则表达式:cf.waf.score.class eq "attack"
  • 操作:Block

2. 监控域名流量

监控您创建的规则,尤其是在最初几天,以确保您为流量设置了适当的阈值(或类别)。如有需要,请更新规则。

3. 更新规则操作

如果您是 Enterprise 客户,并且创建的规则操作是 Log(记录),请将规则操作更改为更严格的操作,例如 Managed Challenge(托管质询)Block(阻止)


其他说明

WAF 攻击分数和 机器人分数 服务于不同目的。攻击分数识别 WAF 托管规则未捕获的攻击变体。机器人分数识别请求是否来自自动化流量。

这篇文档对您有帮助吗?