近日, Apache Log4j2 的远程代码执行漏洞细节被公开,经过快速分析和确认,该漏洞影响范围极其广泛,危害极其严重,微步在线建议企业第一时间启动应急响应进行修复。
为帮助广大企业更好排查自身资产设备是否受该漏洞影响,经由微步工程师深入分析研究,现提供自查工具方便广大企业进行漏洞资产排查:https://static.threatbook.cn/tools/log4j-local-check.sh
? 工具原理:
首先通过读取系统中所有打开的文件,来读取所有加载了的 log4j 的 jar 包,然后识别 log4j 2.x 的 jar 包文件名特征,来识别出结果,如果没检测出来,则对其他 jar 包进行正则匹配 log4j-core,看是否有引用该 jar 包,如果显示 jar 包路径,则说明存在该漏洞,没有则说明没有直接加载log4j对应jar包。
? 使用方法:
chmod +x ./log4j-local-check.sh
./log4j-local-check.sh
我们整理了一部分大家关注的问题进行答复,希望能帮助广大企业完成此次漏洞应急处理:
1.目前该漏洞具体受影响的版本都有哪些?
log4j2 2.0 - log4j2 2.15.0-rc1
log4j 1.x,需配合 JMS Appender 才可被利用(该种利用方式目前尚未有公开信息)
2.官方提供的 rc1 补丁是否确定已经被 bypass?
rc1 中漏洞 patch 方案虽被绕过,但 rc1 中 log4j2.formatMsgNoLookups 默认为 true,只要不修改该选项 rc1 依旧无法利用成功,不放心的用户也可更新至最新版:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
3.应急修复方案:
1. 对于 2.10 以下版本,建议升级至最新版 log4j-2.15.0-rc2
2. 对于 2.10 及以上版本版本,有如下缓解措施:
A. 设置 jvm 参数 “-Dlog4j2.formatMsgNoLookups=true”
B. 在项目 classpath 目录下添加 log4j2.component.properties 配置文件,设置 log4j2.formatMsgNoLookups=true
C. 设置系统环境变量:“LOG4J_FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS” 设置为 “true”
相关受影响的应用:
应用 | 受影响版本 |
Spring-Boot-strater-log4j2 | 全版本 |
Apache Struts2 | 全版本 |
Apache Solr | 已经在9.0和8.11.1修复 |
Apache Flink | 1.11.0-rc1 到 1.14.0 |
Apache Druid | 0.7.x以上 |
Alibaba Druid | 1.0.15以及以上 |
ElasticSearch | 5.x,6.x和7.x |
Logstash | 5.0.0至最新 |
log4j2-redis-appender | 全版本 |
Apache Dubbo | 2.7.x以及3.0.x |
Hadoop Hive | 2.x和3.x |
hadoop hbase | 3.0.0-alpha-1 |
Mycat | 1.6.x |
OpenCms | build_11_0_0_beta到最新 |
……