一、漏洞描述
CNVD-ID:CNVD-2021-95919
公开日期:2021-12-10
危害级别:高
影响产品:Apache Log4j2 >=2.0,<=2.15.0-rc1
漏洞描述:Apache Log4j是一个基于Java的日志记录组件。Apache Log4j2是Log4j的升级版本,通过重写Log4j引入了丰富的功能特性。该日志组件被广泛应用于业务系统开发,用以记录程序输入输出日志信息。
Apache Log4j2存在远程代码执行漏洞,攻击者可利用该漏洞向目标服务器发送精心构造的恶意数据,触发Log4j2组件解析缺陷,实现目标服务器的任意代码执行,获得目标服务器权限。
漏洞类型:通用型漏洞
漏洞解决方案:目前厂商已提供相关漏洞补丁链接,请关注以下及时更新:
https://github.com/apache/logging-log4j2/releases/tag/rel%2F2.16.0
临时性缓解措施:
1. 在 jvm 参数中添加 -Dlog4j2.formatMsgNoLookups=true。
2. 系统环境变量中将LOG4J_FORMAT_MSG_NO_LOOKUPS 设置为 true。
3. 创建log4j2.component.properties文件,文件中增加配置log4j2.formatMsgNoLookups=true
4. 若相关用户暂时无法进行升级操作,也可通过禁止Log4j中SocketServer类所启用的socket端对公网开放来进行防护。
5. 禁止安装log4j的服务器访问外网,并在边界对dnslog相关域名访问进行检测。ceye.io、dnslog.link、dnslog.cn、dnslog.io、tu4.org、awvsscan119.autoverify.cn、burpcollaborator.net、s0x.cn。
二、昊沧内部已知问题
问题组件:
kafka_2.12-2.2.0、apache-storm-1.2.2、solr-7.5.0,其它待确认。
三、建议修复方式
1. 重新编译kafka、storm、solr版本,将最新版本的log4j2集成。待测试兼容和稳定性。
2. 禁止kafka、storm、solr程序所在机器上网,仅相关节点机器可相互访问,同时禁止对外做端口映射。此为项目部署前期执行的默认策略。需增加防火墙屏蔽dnslog域名。(推荐)
3. 在jvm启动参数中添加 -Dlog4j2.formatMsgNoLookups=true配置参数,临时解决方案,后续待稳定版本发布后同步升级。
4. 使用find / -name log4j-core-2*.jar找到log4j2的jar包,然后使用 zip 命令从 JAR 包中删除 JndiLookup.class(推荐)。
zip -q -d ‘这里填写JAR包路径’ org/apache/logging/log4j/core/lookup/JndiLookup.class。
四、检测方式介绍
Linux:https://file.hc-yun.com/scan/log4j2_local_scanner_linux_amd64.v3_1.tar.gz
Windows:https://file.hc-yun.com/scan/log4j2_local_scanner_windows_amd64.v3_1.tar.gz
Mac:https://file.hc-yun.com/scan/log4j2_local_scanner_darwin_amd64.v3_1.tar.gz
# 支持 Windows/Linux/Mac 多种操作系统,而且扫描速度大大加快。使用方式:
# 检测单个文件
sudo ./log4j2_local_scanner -root ./log4j-core-2.10.0.jar
# 检测单个目录
sudo ./log4j2_local_scanner -root /var/html/
# 检测系统所有 jar 文件
sudo ./log4j2_local_scanner -root /
# Windows 服务器扫描 C 盘,使用系统权限执行
log4j2_local_scanner -root C:\
# 检测并将有漏洞的文件写入日志文件
sudo ./log4j2_local_scanner -root / -output scan.log
如果包含 \[Vulnerable\]
说明这个文件存在漏洞,本工具只是用来发现存在漏洞的jar文件,但是漏洞利用还取决于配置,所以实际是否受到漏洞的影响还以实际情况为准。
Linux
发现风险文件
未发现风险文件
Windows
发现风险文件
未发现风险文件
MAC
发现风险文件
未发现风险文件
评论区