modsecurity rule to filter CVE-2021-44228/LogJam/Log4Shell [update]
2021年12月10日
作为一个快速解决方案,我的一位朋友制作了一个modsecurity规则来过滤CVE-2021-44228/LogJam/Log4Shell,他允许我与大家分享。
初始规则:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
SecRule \
ARGS|REQUEST_HEADERS|REQUEST_URI|REQUEST_BODY|REQUEST_COOKIES|REQUEST_LINE|QUERY_STRING "jndi:ldap:" \
"phase:1, \
id:751001, \
t:none, \
deny, \
status:403, \
log, \
auditlog, \
msg:'Block: CVE-2021-44228 - deny pattern \"jndi:ldap:\"', \
severity:'5', \
rev:1, \
tag:'no_ar'"
|
新的改进版本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
SecRule \
ARGS|REQUEST_HEADERS|REQUEST_URI|REQUEST_BODY|REQUEST_COOKIES|REQUEST_LINE|QUERY_STRING "jndi:ldap:|jndi:dns:|jndi:rmi:|jndi:rni:|\${jndi:" \
"phase:1, \
id:751001, \
t:none, \
deny, \
status:403, \
log, \
auditlog, \
msg:'DVT: CVE-2021-44228 - phase 1 - deny known \"jndi:\" pattern', \
severity:'5', \
rev:1, \
tag:'no_ar'"
SecRule \
ARGS|REQUEST_HEADERS|REQUEST_URI|REQUEST_BODY|REQUEST_COOKIES|REQUEST_LINE|QUERY_STRING "jndi:ldap:|jndi:dns:|jndi:rmi:|jndi:rni:|\${jndi:" \
"phase:2, \
id:751002, \
t:none, \
deny, \
status:403, \
log, \
auditlog, \
msg:'DVT: CVE-2021-44228 - phase 2 - deny known \"jndi:\" pattern', \
severity:'5', \
rev:1, \
tag:'no_ar'"
|
评论
Ali - 2021年12月11日 #
为什么需要阶段1规则?如果攻击者在POST请求体中发送模式,漏洞不会触发吗?
robert - 2021年12月11日 #
我们需要阶段1规则,以便在SAML的shibboleth插件(可能易受攻击)之前运行。但你说得对,如果攻击者适应,我们需要更多规则 - 谢谢提醒。
R - 2021年12月11日 #
是否还应包括jndi:dns和jndi:rmi?
Jakob - 2021年12月13日 #
据我所知,这无法阻止这里提到的情况:https://twitter.com/Rezn0k/status/1469523006015750146
robert - 2021年12月13日 #
当然,没有什么能阻止那种情况。这些规则只是为了在您识别所有易受攻击系统并打补丁或应用解决方案之前,为您提供更多时间,保护您最初的一两天。到现在,周一,您应该已经为所有面向互联网的系统完成了工作 - 这就是我们大多数人在周末工作的原因。:)