【紧急】Apache Log4j任意代码执行漏洞安全风险升级修复教程

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 近期一个 Apache Log4j 远程代码执行漏洞细节被公开,攻击者利用漏洞可以远程执行代码。经过分析,该组件存在Java JNDI注入漏洞,当程序将用户输入的数据进行日志,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。

背景

近期一个 Apache Log4j 远程代码执行漏洞细节被公开,攻击者利用漏洞可以远程执行代码。经过分析,该组件存在Java JNDI注入漏洞,当程序将用户输入的数据进行日志,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。

Apache Log4j2 是一款优秀的 Java 日志框架。该工具重写了 Log4j 框架,并且引入了大量丰富的特性。该日志框架被大量用于业务系统开发,用来记录日志信息。大多数情况下,开发者可能会将用户输入导致的错误信息写入日志中。由于 Apache Log4j2 某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。

经有关安全团队验证,漏洞利用无需特殊配置,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等众多组件与大型应用均受影响,鉴于此漏洞危害巨大,利用门槛极低,建议用户尽快参考缓解方案阻止漏洞攻击。

漏洞描述

事件 描述
漏洞名称 Apache Log4j 远程代码执行漏洞
漏洞类型 代码执行
风险等级 严重
公开状态 已发现
在野利用 已发现
漏洞描述 Apache Log4j2 是一款优秀的 Java 日志框架。该日志框架被大量用于业务系统开发,用来记录日志信息。经过分析,该组件存在Java JNDI注入漏洞,当程序将用户输入的数据进行日志,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。
参考链接 https://github.com/apache/logging-log4j2

漏洞复现

目前漏洞rce-exp已网上公开

a0a8ece8653082b8cc2fc50c7000a3d2.png

dnslog回显测试

33b3697d068d71ee7235a0b2c6aa278d.png

易受攻击示例代码

import org.apache.log4j.Logger;
import java.io.*;
public class ExampleHandler implements HttpHandler {
    static Logger log = Logger.getLogger(log4jExample.class.getName());
    public void handle(HttpExchange he) throws IOException {
        String userAgent = he.getRequestHeader("user-agent");
        log.info("Request User Agent:" + userAgent);
        String response = "<h1>Hello There, " + userAgent + "!</h1>";
        he.sendResponseHeaders(200, response.length());
        OutputStream os = he.getResponseBody();
        os.write(response.getBytes());
        os.close();
    }
}

影响范围

Apache Log4j 2.x <= 2.14.1

紧急缓解措施

1、调整JVM参数 -Dlog4j2.formatMsgNoLookups=true


如果是SpringBoot微服务项目,在运行参数中加上

a78294c0622b7d08519347040374c65f.png

如果是传统Web项目,以Tomcat为例,在文件/bin/catalina.sh的前面,增加如下设置:

JAVA_OPTS=’-Dlog4j2.formatMsgNoLookups=true‘

2、修改配置 log4j2.formatMsgNoLookups=True

1877374d5835ba1e311a9b4822edb145.png

3、修改系统环境变量


FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为true,进入Linux命令行,输入 vi /etc/profile,在最后加入

857869a7ea4ee96cdee6b83d7a4de2d6.png

安全建议

1、升级 Apache Log4j2 所有相关应用到最新的 log4j-2.15.0-rc2 版本,已发现官方修复代码,目前尚未正式发布

下载地址:https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

8ea36dd67bf83e6aa2ec863b71c6fb0f.png

Github下载量巨大访问慢,可以关注回复微信公众号『 Tom弹架构 』回复“log4j” 下载最新版Log4j离线jar包。

2、升级已知受影响的应用及组件,如 srping-boot-strater-log4j2 / Apache Solr / Apache Flink / Apache Druid

据悉,Apache Log4j2 日志远程代码执行漏洞因此也影响了所有 Minecraft 服务器。

【影响版本】Apache log4j2 >= 2.0, <= 2.14.1

Minecraft 全版本所有系列服务端,除 Mohist 1.18 外。

参考资料

[1] https://github.com/apache/logging-log4j2

[2] https://github.com/apache/logging-log4j2/commit/7fe72d6

本文为“Tom弹架构”原创,转载请注明出处。技术在于分享,我分享我快乐!

如果您有任何建议也可留言评论或私信,您的支持是我坚持创作的动力。

原创不易,坚持很酷,都看到这里了,小伙伴记得点赞、收藏、在看,一键三连加关注!如果你觉得内容太干,可以分享转发给朋友滋润滋润!

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
存储 监控 安全
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
为了提供更好的日志数据服务,360 企业安全浏览器设计了统一运维管理平台,并引入 Apache Doris 替代了 Elasticsearch,实现日志检索与报表分析架构的统一,同时依赖 Doris 优异性能,聚合分析效率呈数量级提升、存储成本下降 60%....为日志数据的可视化和价值发挥提供了坚实的基础。
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
|
存储 监控 安全
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(1)
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(1)
292 1
|
9月前
|
监控 安全 网络安全
如何保护 Apache 服务器的安全
【8月更文挑战第23天】
191 0
|
SQL 存储 安全
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(2)
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(2)
418 0
|
安全 应用服务中间件 Apache
Apache-Tomcat-Ajp文件读取漏洞(CVE-2020-1938、CNVD-2020-10487)
Apache-Tomcat-Ajp文件读取漏洞产生原因是由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件
1025 1
|
存储 监控 安全
奇安信基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志安全分析系统,查询平均提速 700%
Apache Doris 助力奇安信建设全新日志存储分析平台,提升系统安全性与快速响应能力!
奇安信基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志安全分析系统,查询平均提速 700%
|
存储 安全 Java
【Shiro】Apache Shiro 默认密钥致命令执行漏洞(CVE-2016-4437)的解决方案
【Shiro】Apache Shiro 默认密钥致命令执行漏洞(CVE-2016-4437)的解决方案
1082 0
|
5月前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
530 33
The Past, Present and Future of Apache Flink
|
7月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
1308 13
Apache Flink 2.0-preview released
|
2月前
|
SQL 存储 人工智能
Apache Flink 2.0.0: 实时数据处理的新纪元
Apache Flink 2.0.0 正式发布!这是自 Flink 1.0 发布九年以来的首次重大更新,凝聚了社区两年的努力。此版本引入分离式状态管理、物化表、流批统一等创新功能,优化云原生环境下的资源利用与性能表现,并强化了对人工智能工作流的支持。同时,Flink 2.0 对 API 和配置进行了全面清理,移除了过时组件,为未来的发展奠定了坚实基础。感谢 165 位贡献者的辛勤付出,共同推动实时计算进入新纪元!
338 1
Apache Flink 2.0.0: 实时数据处理的新纪元

热门文章

最新文章

推荐镜像

更多