我已在 CRS-setup.conf 中将异常评分级别配置为 8。当我查看审计日志时,我看到以下条目:
--f0d8a724-H--
Message: Warning. detected XSS using libinjection. [file "/etc/httpd/modsecurity.d/owasp-modsecurity-crs/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf"] [line "64"] [id "941100"] [rev "2"] [msg "XSS Attack Detected via libinjection"] [data "Matched Data: found within ARGS:page: /One-Initial-Bordered-Card?cross-sell=1"] [severity "CRITICAL"] [ver "OWASP_CRS/3.0.0"] [maturity "1"] [accuracy "9"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-xss"] [tag "OWASP_CRS/WEB_ATTACK/XSS"] [tag "WASCTC/WASC-8"] [tag "WASCTC/WASC-22"] [tag "OWASP_TOP_10/A3"] [tag "OWASP_AppSensor/IE1"] [tag "CAPEC-242"]
Apache-Error: [file "apache2_util.c"] [line 271] [level 3] [client %s] ModSecurity: %s%s [uri "%s"]%s
Apache-Handler: application/x-httpd-php
Stopwatch: 1512753208830562 28609 (- - -)
Stopwatch2: 1512753208830562 28609; combined=1561, p1=361, p2=888, p3=55, p4=215, p5=41, sr=54, sw=1, l=0, gc=0
如果我将 SecRuleEngine 切换为开启而不是调试,上述事件会被阻止吗?我是否可以正确地假设,因为该事件未超过异常分数 8,所以它会允许此请求?我的审计日志中还有其他事件明确表明它们超过了阈值 8,因此是否可以合理地假设,除非审计日志明确指出它超过了阈值,否则请求不会被阻止?
如果是这种情况,是否有办法将审计日志配置为仅记录在 SecRuleEngine 设置为开启时会被阻止的事件?我不想在我的审计日志中看到任何未超过阈值水平的部分匹配。
答案1
如果我将 SecRuleEngine 切换为开启而不是调试,上述事件会被阻止吗?我是否可以正确地假设,因为该事件未超过异常分数 8,所以它会允许此请求?我的审计日志中还有其他事件明确表明它们超过了阈值 8,因此是否可以合理地假设,除非审计日志明确指出它超过了阈值,否则请求不会被阻止?
对,那是正确的。
如果是这种情况,是否有办法将审计日志配置为仅记录在 SecRuleEngine 设置为开启时会被阻止的事件?我不想在我的审计日志中看到任何未超过阈值水平的部分匹配。
没有。这是我不喜欢异常模式得分的主要原因之一。即使你打开它,你也会看到这种噪音。唯一知道攻击是否会被阻止的方法是异常检查是否在最后运行(规则 ID 949110 - 949118)。