ApacheLog4j2远程代码执⾏漏洞-排查和修复建议
TAG Log4j2、JNDI、RCE
漏洞等级:攻击者利⽤此漏洞,可实现远程代码执⾏。
版本:  1.1
简介
Apache Log4j是Apache的⼀个开源项⽬,Apache log4j2是Log4j的升级版本,我们可以控制⽇志信息输送的⽬的地为控制台、⽂件、GUI组件等,通过定义每⼀条⽇志信息的级
别,能够更加细致地控制⽇志的⽣成过程。
漏洞概述
12⽉9⽇,⽹上披露Apache Log4j2 远程代码执⾏漏洞,由于Apache Log4j2某些功能存在递归解析功能,未经⾝份验证的攻击者通过发送特别构造的数据请求包,可在⽬标服务器上执⾏任意代码。漏洞PoC已在⽹上公开,默认配置即可进⾏利⽤,该12⽉10⽇,Apache Log4j 2.15.0-rc1 版本仅修复LDAP
和增加了host⽩名单,可以被绕过利⽤,官⽅发布了Apache Log4j 2.15.0-rc2版本进⾏修复,增加了对urI异常的处理。
Apache Log4j2是⼀款开源的Java⽇志框架,被⼴泛地应⽤在中间件、开发框架与Web应⽤中,⽤来记录⽇志信息。
漏洞成功复现信息:
漏洞细节漏洞PoC漏洞EXP利⽤
已公开已公开已公开存在
受影响版本
2.0 <= Apache Log4j <= 2.15.0-rc1
注:使⽤Apache Log4j 1.X版本的应⽤,若开发者对JMS Appender利⽤不当,可对应⽤产⽣潜在的安全影响。
供应链影响范围
已知受影响应⽤及组件:
Apache Solr
Apache Struts2
Apache Flink
Apache Druid
spring-boot-strater-log4j2
更多组件可参考如下链接:
不受影响版本
Apache log4j-2.15.0-rc2(与官⽹的2.15.0稳定版相同)
漏洞检测
⼈⼯检测
1、⽤户可以更加java jar解压后查看是否存在org/apache/logging/log4j相关路径结构,判断是否存在使⽤的漏洞组件,如果存在相关java程序包,说明很有可能存在漏洞。
2、程序使⽤gradle打包,可以查看adle编译配置⽂件,若在dependencies部分存在org.apache.logging.log4j相关字段,且版本号为⼩于2.15.0-rc2,说明存在该漏洞。
dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.12.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.12.1'
}
修复后
dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.15.0'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.15.0'
}
3、若程序使⽤maven打包,查看项⽬的l⽂件中是否存在下图所⽰相关字段,若版本号为⼩于2.15.0-rc2,说明存在该漏洞。
dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.12.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
apachelog4j2漏洞<version>2.12.1</version>
</dependency>
</dependencies>
修复后的
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.15.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.15.0</version>
</dependency>
</dependencies>
攻击排查
攻击者在利⽤前通常采⽤ dnslog ⽅式进⾏扫描、探测,对于常见
利⽤⽅式可通过应⽤系统报错⽇志中的
“javax.naming.CommunicationException”、
“javax.naming.NamingException: problem generating object using object factory”、”Error looking up JNDI resource”关键字进⾏排查。
流量排查:攻击者的数据包中可能存在:“${jndi:rmi”、
“${jndi:ldap” 字样
漏洞修复⽅案:
Apache官⽅已发布补丁,建议受影响的⽤户尽快升级到安全版本。
补丁下载地址:
漏洞缓解措施:
(1)jvm参数 -Dlog4j2.formatMsgNoLookups=true
(2)log4j2.formatMsgNoLookups=True
建议 JDK 使⽤ 11.0.1、8u191、7u201、6u211 及以上的⾼版本。官⽅⽂档:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。