• Apache Log4j 任意代码执行漏洞


    安全风险通告

    1章 安全通告

     近日,相关机构监测到 Apache Log4j 存在任意代码执行漏洞,经过分析,该组件存在 Java JNDI 注入漏洞,当程序将用户输入的数据进行日志,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。

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

    当前漏洞状态:

    技术细节

    PoC 状态

    EXP 状态

    在野利用

    已公开

    已公开

    已公开

    已发现

    2 漏洞信息

    2.1 漏洞描述

    Apache Log4j 是 Apache 的一个开源项目,Apache log4j2 是 Log4j 的升级版本,我们可以控制日志信息输送的目的地为控制台、文件、GUI 组件等,通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。

    近日,奇安信 CERT 监测到 Apache Log4j 存在任意代码执行漏洞,经过分析,该组件存在 Java JNDI 注入漏洞,当程序将用户输入的数据进行日志,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。经验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink 等众多组件与大型应用均受影响,鉴于此漏洞危害巨大,利用门槛极低,建议尽快参考缓解方案阻止漏洞攻击。

    Apache Log4j 任意代码执行漏洞

    漏洞名称

    Apache Log4j 任意代码执行漏洞

    漏洞类型

    代码执行

    风险等级

    紧急

    漏洞 ID

    暂无

    公开状态

    已公开

    在野利用

    已发现

    漏洞描述

    Apache Log4j 是 Apache 的一个开源项目,通过定义每一条

    日志信息的级别,能够更加细致地控制日志生成过程。经过分

    析,Log4j2 中存在 JNDI 注入漏洞,当程序将用户输入的数据进行 日志记录时,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。

    参考链接

    https://github.com/apache/logging-log4j2 

    2.2 风险等级

    紧急

    3 影响范围

    Apache Log4j 2.x < 2.15.0-rc2 

    4 处置建议

    1. 漏洞排查

    1)排查应用是否引入了 Apache Log4j2 Jar 包,若存在依赖引入,则可能存在漏洞影响。 相关用户可根据 Java JAR 解压后是否存在org/apache/logging/log4j 相关路径结构,判断是否使用了存在漏洞的组件,若存在相关 Java 程序 包,则极可能存在该漏洞。

    2) 若程序使用 Maven 打包,查看项目的 pom.xml 文件中是否存在如下图

    所示的相关字段,若版本号为小于 2.15.0-rc2,则存在该漏洞。

     3)若程序使用 gradle 打包,查看 build.gradle 编译配置文件,若在dependencies 部分存在 org.apache.logging.log4j 相关字段,且版本号为小于 2.15.0-rc2,则存在该漏洞。

     

    2. 攻击排查

    a) 攻击者在利用前通常采用 dnslog 方式进行扫描、探测,对于常见利用方式可通过应用系统报错日志中的

    "javax.naming.CommunicationException"、

    "javax.naming.NamingException: problem generating object usingobject factory"、"Error looking up JNDI resource"关键字进行排查。

    b) 流量排查:攻击者的数据包中可能存在:“${jndi:rmi”、“${jndi:ldap”字样。

    3. 修复建议

    a) 升级到最新版本:

    请联系厂商获取修复后的官方版本:https://github.com/apache/logginglog4j2 ;

    请尽快升级 Apache Log4j2 所有相关应用到最新的 log4j-2.15.0-rc2 版本,地址:https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2  

    b) 缓解措施:

    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)限制受影响应用对外访问互联网 

  • 相关阅读:
    谈谈JavaScript中继承方式
    《前端架构设计》学习笔记一--架构的种子
    正则中1的用法---反向引用
    JavaScript千分符---正则实现
    JavaScript开发中常用的代码规范配置文件
    前端开发流程---我们应该做些什么
    JavaScript中数据类型判断
    冒泡排序以及改进
    Number和toString中的坑
    Fluent Ribbon 第五步 ToolBar
  • 原文地址:https://www.cnblogs.com/xh_Blog/p/15673412.html
Copyright © 2020-2023  润新知