我正在使用ModSecurity进入OWASP,并研究OWASP在请求-901-INITIALIZATION.Conconf中计算异常分数的方法,如果它们设置了以下行:
setvar:'tx.anomaly_score=0',\
setvar:'tx.anomaly_score_pl1=0',\
setvar:'tx.anomaly_score_pl2=0',\
setvar:'tx.anomaly_score_pl3=0',\
setvar:'tx.anomaly_score_pl4=0',\在请求-949-阻塞-EVALUATION.CON,他们做了以下工作:
SecRule TX:PARANOIA_LEVEL "@ge 1" \
"id:949060,\
phase:2,\
pass,\
t:none,\
nolog,\
setvar:'tx.anomaly_score=+%{tx.anomaly_score_pl1}'"
enter preformatted text here
SecRule TX:PARANOIA_LEVEL "@ge 2" \
"id:949061,\
phase:2,\
pass,\
t:none,\
nolog,\
setvar:'tx.anomaly_score=+%{tx.anomaly_score_pl2}'"Q1:当然,偏执程度会是1,2,3或4,那么为什么"@ge 1“呢?哪一个会在每个偏执狂水平上被评估?
Q2:当他们做setVar "setvar:'tx.anomaly_score=+%{tx.anomaly_score_pl2}"时,方程是tx.anomaly_score=tx.anomaly_score+tx.anomaly_score_pl2,对吗?如果我的请求被多个规则验证,这在逻辑上是如何适用的?
Q3:我想要一个详细的例子,说明OWASP如何计算异常分数并使用它来拒绝请求。
发布于 2020-11-03 18:33:16
Q1:TX:PARANOIA_LEVEL "@ge 1"指的是if TX:PARANOIA_LEVEL >= 1,所有四个PL都匹配。请阅读上面的规则的理由。
Q2:是的,+=和你在那里写的一样。
如果我的请求被多个规则验证,这在逻辑上是如何适用的?
规则是一个一个地进行评估的,因为您(或规则制定者)列出了它们(按阶段分组)。如果一个规则包含像上面这样的赋值操作,那么只是计算-但是TX (或tx)意味着事务,所以对于每个请求都有它自己的TX集合。
Q3:我认为最好的起点是此Modsecurity文档。它有点过时了,但基本的东西还在那里。一个简短的总结:每条规则都有一个严重性级别,它可以是一个注意级别(包括点2)、警告(3)、错误(4)、关键级别(5) (这些都是在这个文件中定义的)。每个规则被激活在不同的请(偏执水平),所以选择的分数(变量)将增加的严重性值。
https://security.stackexchange.com/questions/231045
复制相似问题