Apache Log4j2远程代码执行漏洞排查及修复手册

    一、漏洞情况分析

    Apache  Log4j是一个基于Java的日志记录组件。Apache  Log4j2是Log4j的升级版本,通过重写Log4j引入了丰富的功能特性。该日志组件被广泛应用于业务系统开发,用以记录程序输入输出日志信息。

    Log4j2组件在处理程序日志记录时存在JNDI注入缺陷,未经授权的攻击者利用该漏洞,可向目标服务器发送精心构造的恶意数据,触发Log4j2组件解析缺陷,实现目标服务器的任意代码执行,获得目标服务器权限。

    CNVD对该漏洞的综合评级为“高危”。


    二、漏洞排查方法

    2.1  版本排查

    存在该漏洞的Log4j2组件版本为:Log4j2.X≤Log4j组件版本<Log4j-2.15.0-rc2。具体组件版本排查方法如下:

    (1)根据Java  JAR解压后是否存在org/apache/logging/log4j相关路径结构,查询Log4j2组件及其版本情况。


    (2)若程序使用Maven打包,查看项目的pom.xml文件中org.apache.logging.log4j相关字段及版本情况。


    (3)若程序使用Gradle打包,可查看build.gradle编译配置文件,查看中org.apache.logging.log4j相关字段及版本情况。


    2.2  中间件排查

    Apache  Log4j2组件通常会嵌套在其他中间件使用,需要相关人员查看开发文档或联系系统开发商、维护人员进行判断是否有使用相关中间件。

    涉及的受影响中间件或应用,包括但不限于:Apache  Solr、Apache Druid、Apache Struts2、Apache  Flink、Flume、Dubbo、Redis、Logstash、ElasticSearch、Kafka、Ghidra、Minecraft、Apache  hive、Datax、Streaming、Dolphin Scheduler、Storm、Spring等。


    三、攻击情况排查

    3.1  日志排查

    攻击者常采用dnslog方式进行扫描、探测,对于常见漏洞利用方式对应用系统报错日志中的“javax.naming.CommunicationException”、“javax.naming.NamingException:  problem generating object using object factory”、“Error looking up JNDI  resource”等关键字段进行排查。

    3.2  流量排查

    攻击者的漏洞利用数据包中可能存在:“${jndi:rmi”、“${jndi:ldap”等字样,通过监测相关流量是否存在上述字符以发现可能的攻击行为。


    四、漏洞修复建议

    4.1  官方补丁

    目前,Apache官方已发布新版本完成漏洞修复,请及时升级至最新版本2.16.0:https://logging.apache.org/log4j/2.x/download.html。

    4.2  临时修复措施(任选其一)

    (1)添加jvm启动参数-Dlog4j2.formatMsgNoLookups=true;

    (2)在应用classpath下添加log4j2.component.properties配置文件,文件内容为log4j2.formatMsgNoLookups=true;

    (3)JDK使用11.0.1、8u191、7u201、6u211及以上的高版本;

    (4)限制受影响应用对外访问互联网;

    (5)禁用JNDI。如在spring.properties里添加spring.jndi.ignore=true;

    (6)部署使用第三方防火墙产品进行安全防护,并更新WAF、RASP规则等。

想了解更多关于Apache Log4j2远程代码执行漏洞排查及修复手册的内容,请扫微信
或微信搜索jiemingpan

本文链接:http://www.soufuzi.com/jianzhan/1416

(0)
上一篇 2023-08-20 19:12:59
下一篇 2023-08-20 19:12:59

相关推荐

  • 营销型网站运营有哪些注意事项

    1、网站更新要以符合用户体验的内容为主 符合用户需求的网站建设更新内容才会吸引更多用户进行阅读,增加用户停留网站的时间,才会给网站带来实实在在的访问量,因此营销型网站在运营的过程中要注意网站内容的效率问题,不要为了更新而随便增加一些敷衍性的文章,网站优化文章要有针对性,要与众不同才会满足更多网站建设用户的需求。   2、网站更新内容应该要多分段,图文并茂 访客很

    2019-12-12 06:09:06
  • github和gitlab区别

    GitHub 是一个面向开源及私有软件项目的托管平台。GitHub可以托管各种Git库,并提供web界面。 GitLab 是一个用于仓库管理系统的开源项目,使用git进行代码管理工具,可以自己搭建GitLab仓库服务器。 GitHub 和 GitLab 都是基于 web 的 Git 仓库,使用起来二者差不多,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。 Git

    2024-08-10 15:56:27