奇安信CERT
致力于第一时间为企业级用户提供安全风险通告和有效解决方案。
风险通告
近日,奇安信CERT监测到Apache Log4j存在任意代码执行漏洞(CVE-2021-44228),经过分析,该组件存在Java JNDI注入漏洞,当程序将用户输入的数据进行日志,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。
经奇安信CERT验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等众多组件与大型应用均受影响,鉴于此漏洞危害巨大,利用门槛极低,奇安信CERT建议用户尽快参考缓解方案阻止漏洞攻击。
鉴于漏洞严重性,需要一个独特的名字标记,我们将其命名为“Poisoned Log”(毒日志)漏洞。
本次更新内容:
新增产品线解决方案;
更新处置建议;
更新漏洞描述(新增CVE编号及漏洞命名);
新增资产测绘。
当前漏洞状态
细节是否公开 | PoC状态 | EXP状态 | 在野利用 |
是 | 已公开 | 已公开 | 已发现 |
漏洞描述
Apache Log4j是Apache的一个开源项目,Apache log4j2是Log4j的升级版本,我们可以控制日志信息输送的目的地为控制台、文件、GUI组件等,通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。
近日,奇安信CERT监测到Apache Log4j存在任意代码执行漏洞(CVE-2021-44228),经过分析,该组件存在Java JNDI注入漏洞,当程序将用户输入的数据进行日志,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。
经奇安信CERT验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等众多组件与大型应用均受影响,鉴于此漏洞危害巨大,利用门槛极低,奇安信CERT建议用户尽快参考缓解方案阻止漏洞攻击。
鉴于漏洞严重性,需要一个独特的名字标记,我们将其命名为“Poisoned Log”(毒日志)漏洞。
漏洞名称 | Apache Log4j 任意代码执行漏洞 | ||||
漏洞类型 | 代码执行 | 风险等级 | 紧急 | 漏洞ID | CVE-2021-44228 |
公开状态 | 已公开 | 在野利用 | 已发现 | ||
漏洞描述 | Apache Log4j 是 Apache 的一个开源项目,通过定义每一条日志信息的级别,能够更加细致地控制日志生成过程。经过分析,Log4j2中存在JNDI注入漏洞,当程序将用户输入的数据进行日志记录时,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。 | ||||
参考链接 | |||||
https://github.com/apache/logging-log4j2 |
风险等级
影响范围
Apache Log4j 2.x < 2.15.0-rc2
处置建议
1. 漏洞排查
相关用户可根据Java JAR解压后是否存在org/apache/logging/log4j相关路径结构,判断是否使用了存在漏洞的组件,若存在相关Java程序包,则极可能存在该漏洞。
若程序使用Maven打包,查看项目的pom.xml文件中是否存在如下图所示的相关字段,若版本号为小于2.15.0-rc2(测试版本)或2.15.0(稳定版本),则存在该漏洞。
攻击者在利用前通常采用dnslog方式进行扫描、探测,对于常见利用方式可通过应用系统报错日志中的"javax.naming.CommunicationException"、"javax.naming.NamingException: problem generating object using object factory"、"Error looking up JNDI resource"关键字进行排查。
流量排查:攻击者的数据包中可能存在:“${jndi:rmi”、“${jndi:ldap”字样,推荐使用奇安信网神网站应用安全云防护系统全流量或WAF设备进行检索排查。
升级到最新版本:
目前官方已推出最新Apache log4j 2.15.0版本,可从地址中下载升级:https://logging.apache.org/log4j/2.x/download.html
缓解措施:
(1)添加jvm启动参数 -Dlog4j2.formatMsgNoLookups=true
(2)在应用程序的classpath下添加log4j2.component.properties配置文件文件,文件内容:log4j2.formatMsgNoLookups=True
(3)移除log4j-core包中JndiLookup 类文件,并重启服务
具体命令:zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
(4)建议JDK使用11.0.1、8u191、7u201、6u211及以上的高版本
(5)限制受影响应用对外访问互联网
(6)禁用JNDI。如在spring.properties里添加spring.jndi.ignore=true
(7)采用其他防护措施,更新WAF、RASP规则等
经测试,前两项缓解措施在Apache log4j 2.10.0以下版本中无效,可采取第三项措施缓解此漏洞。
产品解决方案
奇安信网站应用安全云防护系统已更新防护特征库
对于无法连接公有云的终端,请保持病毒更新最新版本(可将病毒库更新设置为小时级),后续新发现的漏洞利用样本我们会及时更新到病毒库中并发布。
图1 服务器升级配置
直接连接公有云配置:
图2 天擎V10公有云鉴定中心配置
图3 天擎V10拦截效果
直接连接公有云配置:
图4 天擎V6公有云鉴定中心配置
图5 天擎V6拦截效果
参考资料
[2]https://github.com/apache/logging-log4j2/commit/7fe72d6
时间线
2021年12月09日,奇安信 CERT发布安全风险通告
2021年12月10日,奇安信 CERT发布安全风险通告第二次更新
2021年12月10日,奇安信 CERT发布安全风险通告第三次更新
2021年12月11日,奇安信 CERT发布安全风险通告第四次更新
到奇安信NOX-安全监测平台查询更多漏洞详情