Apache Log4j 2.x <= 2.15.0-rc1 版本均受影响;
其它影响的应用及组件:
-
Spring-Boot-strater-log4j2
-
Apache Struts2
-
Apache Solr
-
Apache Flink
-
Apache Druid
-
ElasticSearch
-
flume
-
dubbo
-
Redis
-
logstash
-
kafk
中信网安对该漏洞进行复现并确认漏洞存在。
建议安全管理员第一时间联系应用开发商等相关维护人员,要求其进行安全漏洞自查,并根据本通告的指导进行修复和处置。
1、官方补丁:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
2、临时修复:
建议采用临时修复。修改1)的JVM最好,修改完重启后ps aux|grep java看看是否生效。如果改3),注意是否生效。
1) 修改jvm参数:
-Dlog4j2.formatMsgNoLookups=true
2) 修改配置:
log4j2.formatMsgNoLookups=True
3) 将系统环境变量:
FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为true
1、针对此漏洞,“华安星WEB应用安全防护系统” 已发布最新特征库升级包,请相关用户升级规则,以形成安全产品防护能力。
2、无法升级特征库的,使用华安星WEB应用安全防护系统增加两条表达式规则,检测点为HTTP请求头和HTTP请求体,表达式为:\$\s*{\s*jndi\s*:\s*(ldap|rmi)\s*: 具体配置如下图:
1、人工检测:
采用以下3种方法均可检测出是否存在漏洞:
1) 相关用户可根据Java jar解压后是否存在org/apache/logging/log4j相关路径结构,判断是否使用了存在漏洞的组件,若存在相关Java程序包,则很可能存在该漏洞。
2)若程序使用Maven打包,查看项目的pom.xml文件中是否存在下图所示的相关字段,若版本号为小于2.15.0,则存在该漏洞。
3)若程序使用gradle打包,可查看build.gradle编译配置文件,若在dependencies部分存在org.apache.logging.log4j相关字段,且版本号为小于2.15.0,则存在该漏洞。
2、 攻击排查:
以下2点均可人工检测出是否存在利用该漏洞的攻击行为:
1) 攻击者在利用前通常采用dnslog方式进行扫描、探测,常见的漏洞利用方式可通过应用系统报错日志中的"javax.naming.CommunicationException"、"javax.naming.NamingException: problem generating object using object factory"、"Error looking up JNDI resource"关键字进行排查。
2) 攻击者发送的数据包中可能存在"${jndi:}" 字样,推荐使用全流量或WAF设备进行检索排查。