突发!Apache Log4j2 报核弹级漏洞。。赶紧修复
漏洞描述
近日, Apache Log4j 的远程代码执行最新漏洞细节被公开,攻击者可通过构造恶意请求利用该漏洞实现在目标服务器上执行任意代码。可导致服务器被黑客控制,从而进行页面篡改、数据窃取、挖矿、勒索等行为。建议使用该组件的用户第一时间启动应急响应进行修复。
漏洞缘由
此次漏洞是用于 Log4j2 提供的 lookup 功能造成的,该功能允许开发者通过一些协议去读取相应环境中的配置。但在实现的过程中,并未对输入进行严格的判断,从而造成漏洞的发生。
影响范围
Java类产品: Apache Log4j 2.x < 2.15.0-rc2
由于Log4j2 作为日志记录基础第三方库,被大量Java框架及应用使用,只要用到 Log4j2 进行日志输出且日志内容能被攻击者部分可控,即可能会受到漏洞攻击影响。因此,该漏洞也同时影响全球大量通用应用及组件,例如 :
- Apache Struts2
- Apache Solr
- Apache Druid
- Apache Flink
- Apache Flume
- Apache Dubbo
- Apache Kafka
- Spring-boot-starter-log4j2
- ElasticSearch
- Logstash
…
不受影响版本:Apache log4j-2.15.0-rc2
攻击检测
可以通过检查日志中是否存在“jndi:ldap://”、“jndi:rmi”等字符来发现可能的攻击行为。
修复建议
- (1) 紧急修复:
- 禁止没有必要的业务访问外网。
- 设置jvm参数 “-Dlog4j2.formatMsgNoLookups=true”
- 在应用 classpath 下添加 log4j2.component.properties 配置文件,文件内容为 log4j2.formatMsgNoLookups=true;
- 系统环境变量“FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS”设置为“true”
- (2) 最终建议:
目前漏洞POC已被公开,官方已发布安全版本,建议使用Java开发语言的系统尽快确认是否使用Apache Log4j 2插件。禁止使用log4j服务器外连,升级jdk 11.0.1、8u191、7u201、6u211或更高版本。
请尽快升级Apache Log4j2所有相关应用到最新的 log4j-2.15.0-rc2 版本,地址 https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2