一、情况分析
近日,监测发现互联网中出现 Apache Log4j2 远程代码执行漏洞。攻击者可利用该漏洞构造特殊的数据请求包,最终触发远程代码执行。由于该漏洞影响范围极广,建议广大用户及时排查相关漏洞。
Apache Log4j2是一个基于Java的日志记录工具。该工具重写了Log4j框架,并且引入了大量丰富的特性。该日志框架被大量用于业务系统开发,用来记录日志信息。大多数情况下,开发者可能会将用户输入导致的错误信息写入日志中。此次漏洞触发条件为只要外部用户输入的数据会被日志记录,即可造成远程代码执行。
由于Apache Log4j2在JAVA应用中使用量大,目前已知受影响的组件应用有:Apache Struts2、Apache Solr、Apache Druid、Apache Flink,但问题不仅仅局限在这些项目,用Java开发的系统都有可能用此日志框架。
二、影响范围
Apache Log4j 2.x <= 2.14.1
三、处置建议
1、升级到最新版本:
(1)升级Apache Log4j2所有相关应用到最新的log4j-2.15.0-rc2版本,地址https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
(2)升级已知受影响的应用及组件,如spring-boot-start-log4j2/Apache Solr/Apache Flink/Apache Druid
2、缓解措施:
(1)添加 jvm 启动参数 -Dlog4j2.formatMsgNoLookups=true
(2)在应用程序的 classpath 下添加 log4j2.component.properties 配置文件 文件,文件内容:log4j2.formatMsgNoLookups=True
(3)设置系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 true
(4)建议 JDK 使用 11.0.1、8u191、7u201、6u211 及以上的高版本 (5)限制受影响应用对外访问互联
排查方法:到服务器搜索排查Java应用是否引入 log4j-api , log4j-core 两个jar包,影响版本:Apache Log4j 2.x <= 2.14.1
参考链接
https://github.com/apache/logging-log4j2
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2