当 Cloudflare DDoS 防护系统检测到攻击时,会创建并内联安装临时 mitigation rule 以缓解攻击。Mitigation rule 基于 DDoS 防护 managed ruleset 的逻辑生成。每个 mitigation rule 由一条 managed rule 生成。
所有 mitigation 及其关联的 managed rule 由 DDoS 系统逐一按顺序评估。Cloudflare 会遍历 ruleset override 中定义的所有 rule override,直到有一条与 managed rule 匹配,然后应用操作并停止。否则,评估将按顺序继续,直到有规则匹配。
你只能创建一个 ruleset override,其中可包含一个或多个 rule override。
Rule override 指示 DDoS 系统根据匹配的 managed rule 对攻击采取的操作。
但在 rule override 中,特异性很重要,DDoS 系统会选择更具体的配置。Rule override 优先于 ruleset override。
DDoS managed ruleset 包含以下 managed rule:
- Managed rule 1
- Managed rule 2
- Managed rule 3
已配置以下 ruleset override:
- Ruleset override A
- Managed rule 1 设置为
block
- Managed rule 1 设置为
- Ruleset override B
- 整个 ruleset(或所有 managed rule)的操作设置为
Managed Challenge - Managed rule 1 设置为
log - Managed rule 2 设置为
log
- 整个 ruleset(或所有 managed rule)的操作设置为
- Ruleset override C
- Managed rule 3 设置为
log
- Managed rule 3 设置为
在 managed rule 1、2 和 3 上检测到 DDoS 攻击,并生成了 mitigation rule。
-
由于 managed rule 1 匹配 ruleset override A,Cloudflare 将
block攻击,不再继续评估其余规则。 -
Managed rule 2 不匹配 ruleset override A,因此 Cloudflare 继续评估 ruleset override B。
Ruleset override B 同时匹配所有 managed rule 和 managed rule 2,但特异性优先。它不会challenge,而是执行log,因为匹配了最具体的 managed rule。 -
Managed rule 3 不匹配 ruleset override A,因此 Cloudflare 继续评估 ruleset override B。由于 ruleset override B 将所有 managed rule 设置为
challenge,Cloudflare 不会继续评估 ruleset override C。
还需考虑的一个维度是,Cloudflare DDoS 系统仅在其条件满足时才会应用给定的 rule override——其中包括 Sensitivity level。因此,除了需要匹配并修改正确的 managed rule(或上述所有 managed rule 的情况),还必须满足 rule 指定的 Sensitivity level。
-
Rule override A
- 所有 managed rule 在低 sensitivity 下设置为
challenge
- 所有 managed rule 在低 sensitivity 下设置为
-
Rule override B
- Managed rule 1 在默认 sensitivity 下设置为
log
- Managed rule 1 在默认 sensitivity 下设置为
你在 managed rule 1 上收到一次小型攻击,低于低 sensitivity 阈值,但高于高 sensitivity 阈值。
- Rule override A 不满足低 sensitivity 阈值。因此,我们不匹配 override,也不缓解攻击,但继续评估下一条 managed rule,以防 rule override 指示 DoS 进行缓解。
- Rule override B 在默认可见性下设置
log,匹配条件。因此,应用定义的操作,攻击流量被记录。