匹配的规则加起来就是一个基于请求的阈值。如果达到该阈值,将会阻止请求。本主题介绍了如何配置和修改多个阈值限制。

默认情况下,在服务引擎中设置了多个阈值,并且可以更改这些阈值。

Default thresholds

setvar:tx.sql_injection_score_threshold=15,
setvar:tx.xss_score_threshold=15,
setvar:tx.rfi_score_threshold=5,
setvar:tx.lfi_score_threshold=5,
setvar:tx.rce_score_threshold=5,
setvar:tx.command_injection_score_threshold=5,
setvar:tx.php_injection_score_threshold=5,
setvar:tx.http_violation_score_threshold=5,
setvar:tx.trojan_score_threshold=5,
setvar:tx.session_fixation_score_threshold=5,
setvar:tx.inbound_anomaly_score_threshold=5,
setvar:tx.outbound_anomaly_score_threshold=4

最常用的阈值是 inbound_anomaly_score_threshold,它用于在默认 CRS 规则“949110 - 入站异常分数”中拒绝请求。

setvar:tx.critical_anomaly_score=5, 
setvar:tx.error_anomaly_score=4, 
setvar:tx.warning_anomaly_score=3, 
setvar:tx.notice_anomaly_score=2"

执行 WAF 策略时,匹配的规则将添加到特定阈值。

例如:931120。检查 RFI (3/4)。

setvar:tx.anomaly_score=+%{tx.critical_anomaly_score}

setvar:tx.rfi_score=+%{tx.critical_anomaly_score}

在评估了所有规则时,规则“949110 - 入站异常分数”将检查阈值 tx.anomaly_score and trigger,并在达到该阈值时拒绝请求。

SecRule TX:ANOMALY_SCORE "@ge %{tx.inbound_anomaly_score_threshold}" "msg:'Inbound Anomaly Score Exceeded (Total Score: %{TX.ANOMALY_SCORE})',     severity:CRITICAL,     phase:request, id:949110,     t:none,     deny,    log, tag:'application-multi', tag:'language-multi',     tag:'platform-multi', tag:'attack-generic', setvar:tx.inbound_tx_msg=%{tx.msg}, setvar:tx.inbound_anomaly_score=%{tx.anomaly_score}"

将创建日志文件条目。

要查看日志,请执行以下操作:

  1. 导航到应用程序 > 虚拟服务

  2. 单击映射到 WAF 策略的虚拟服务。

  3. 单击日志

  4. 展开日志条目并查看特征码 CRS 规则。