1 背景
2021年12月17日,Apache Log4j2 绝对是众多 Java 程序员提到的高频词之一:由于 Apache Log4j2 引发的严重安全漏洞,令一大批安全人员深夜修 Bug、发补丁。此次漏洞更是因为其触发简单、攻击难度低、影响人群广泛等特点,被许多媒体形容为“核弹级”漏洞。本文主要是针对漏洞修复的处理过程。
漏洞名词:
CVE-2021-44228 Apache Log4j 远程代码执行漏洞 严重
CVE-2021-45046 拒绝服务漏洞 中危
2 影响范围
目前受漏洞影响的主要是Apache Log4j 2.x <= log4j-2.15.0-rc1版本,当用户使用Apache Log4j2来处理日志时,漏洞会对用户输入的内容进行特殊处理,攻击者便可以在Apache Log4j2中构造特殊请求来触发远程代码执行。
Apache 最新发布了 Log4j 2.16,该版本在默认情况下禁止访问JNDI(JNDI 是 Log4j 漏洞中可被利用的 API),并完全删除消息查找功能,进一步阻止漏洞被利用。
3 检测
下载检测工具 提取码: jibf
上传到服务器
LInux 服务器下处理方法
unzip log4j2check_v0.0.3 .zip
cd log4j2check_v0.0.3
chmod +x log4j2check_linux_amd64
./log4j2check_linux_amd64
扫描后日志存入同目录下的vuln.txt文件中
漏洞截图
无漏洞截图
Windows 服务器下检测方法
解压log4j2check_v0.0.3 .zip 文件
运行 og4j2check_windows_amd64.exe文件
4 处理
处理思路:升级至官网发布的2.16.0版本
处理优先选择官网最新版本升级进行处理,其次使用修改配置紧急缓解此漏洞。
4.1 升级处理
4.1.1 下载
官网下载
官网下载太慢可以使用如下 下载地址 提取码: bkyj
4.1.2 修复
整体修复批量替换或者单个替换,本次修复是按vuln.txt文件中的提示信息进行替换,
替换后重新使用工具检测。
以上是以比较粗况的方式进行升级,具体的修复需要使用下载的log4f2-2.16.0版本替换到代码程序中后,对应的调试,调试无误后,进行版本的整体升级。
4.1.3 验证
输出如下信息则说明漏洞修复完成
非必要情况下,不建议使用紧急处理方案。
4.2 紧急处理
a、修改jvm参数 -Dlog4j2.formatMsgNoLookups=true
b、修改配置:log4j2.formatMsgNoLookups=True
c、系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS设置为true
修复完毕重启应用
5 参考
Flink等多组件受影响,Apache Log4j曝史诗级漏洞