Apache Log4j存在远程代码执行漏洞

2021年12月9日,星云博创摘星实验室监测到网上Apache Log4j 的远程代码执行漏洞细节被公开,大量的业务框架都使用了该组件。此次漏洞是用于 Log4j2 提供的 lookup 功能造成的,该功能允许开发者通过一些协议去读取相应环境中的配置。该漏洞一旦被攻击者利用会造成严重危害。经过快速分析和确认,该漏洞影响范围极其广泛,危害极其严重,我们建议企业第一时间启动应急响应进行修复。

该漏洞影响范围极广,建议相关用户尽快采取措施进行排查与防护。


漏洞描述

Apache Log4j2是一款优秀的Java日志框架。由于Apache Log4j2某些功能存在递归解析功能,未经身份验证的攻击者通过发送特别构造的数据请求包,可在目标服务器上执行任意代码,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置,经团队验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响。

受影响版本

Apache Log4j 2.x <= 2.15.0-rc2

供应链影响范围:

已知受影响应用及组件:

Apache Solr
Apache Flink
Apache Druid
srping-boot-strater-log4j2
dubbo
flume
Redis

更多组件可参考如下链接:

https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core/usages?p=1

漏洞级别

高危、远程代码执行

目前漏洞rce-exp已网上公开



dnslog回显测试


修复建议

1、紧急缓解措施:

①修改jvm参数 - Dlog4j2.formatMsgNoLookups=true 

②修改配置log4j2.formatMsgNoLookups=True

③将系统环境变量FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 true

2、检测方案:

①由于攻击者在攻击过程中可能使用 DNSLog 进行漏洞探测,建议企业可以通过流量监测设备监控是否有相关 DNSLog 域名的请求。

②我们建议企业可以通过监测相关流量或者日志中是否存在“jndi:ldap://”、“jndi:rmi”等字符来发现可能的攻击行为。

3、修复方案:

检查所有使用了 Log4j 组件的系统,官方修复链接如下:

https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc1

4、应对措施:

限制受影响应用对外访问互联网,并在边界对dnslog相关域名访问进行检测。

部分公共dnslog平台如下:

ceye.io
dnslog.link
dnslog.cn
dnslog.io
tu4.org
awvsscan119.autoverify.cn
burpcollaborator.net
s0x.cn