本文转自:https://cert.360.cn/warning/deta ... 58c3a633e4e105e22bb
0x01 漏洞简述
2021年12月09日,360CERT监测发现Apache Log4j 2存在JNDI远程代码执行,漏洞等级:严重,漏洞评分:10.0。
Apache Log4j 2是一个开源的日志记录组件,使用非常的广泛,使用情况参考:
https://mvnrepository.com/artifa ... j/log4j-core/usages
对此,360CERT建议广大用户尽快将Apache Log4j 2进行升级,以免遭受黑客攻击。
0x02 风险等级
360CERT对该漏洞的评定结果如下
评定方式 等级
威胁等级 严重
影响面 广泛
攻击者价值 高
利用难度 低
360CERT评分 9.8
0x03 影响版本
组件 影响版本 安全版本
apache:log4j 2.0 - 2.15.0-rc1 2.15.0-rc2
0x04 内部自查
项目依赖版本检测
检测pom依赖版本是否低于 2.15.0
- <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>
复制代码
检测gradle依赖版本是否低于 2.15.0
- 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'
- }
复制代码
检测Ivy依赖版本是否低于 2.15.0
- <dependencies>
- <dependency org="org.apache.logging.log4j" name="log4j-api" rev="2.15.0" />
- <dependency org="org.apache.logging.log4j" name="log4j-core" rev="2.15.0" />
- </dependencies>
复制代码
检测SBT依赖版本是否低于 2.15.0
- libraryDependencies += "org.apache.logging.log4j" % "log4j-api" % "2.15.0"
- libraryDependencies += "org.apache.logging.log4j" % "log4j-core" % "2.15.0"
复制代码
若没有使用上述工具,那么可以全局搜索项目中是否存在log4j的相关jar包,并通过jar包中的/META-INF/MANIFEST.MF文件查看log4j的版本。
日志/流量排查
1. 排查日志或者解码后完整的请求数据包中是否存在${关键字。
2. 排查日志是否存在相关堆栈报错,堆栈里是否有JndiLookup、ldapURLContext、getObjectFactoryFromReference等与 jndi 调用相关的堆栈信息。
0x05 修复建议
通用修补建议
升级到最新版本 2.15.0-rc2 :
https://github.com/apache/loggin ... ag/log4j-2.15.0-rc2
临时修补建议
1. 设置JVM启动参数-Dlog4j2.formatMsgNoLookups=true。
2. 尽量使用JDK 版本大于11.0.1、8u191、7u201、6u211,需要注意的是,即使是使用了 JDK 高版本也不能完全保证安全,依然存在本地绕过的情况。
3. 限制不必要的业务访问外网。
4. 采用 rasp 对lookup的调用进行阻断。
首先声明下Log4j2是Apache基金会下的一个针对Java日志处理的开源软件,并非是Apache这个web服务有漏洞,不要引起恐慌。堡塔安全技术有限公司将持续关注此事,如有疑问请到
https://www.bt.cn/bbs/ 论坛发帖
|
|