四时宝库

程序员的知识宝库

Log4j 爆“核弹级”漏洞,蛋蛋教你紧急修复,速改

大家好,我是蛋蛋!

昨天,手机突然收到腾讯云的一条短信,提示发现 Log4j 2 远程代码执行漏洞,需要我进行紧急修复,立马关注了一下;

漏洞描述

Apache Log4j2 是一个基于Java的日志记录工具。该工具重写了 Log4j 框架,并且引入了大量丰富的特性。该日志框架被大量用于业务系统开发,用来记录日志信息。大多数情况下,开发者可能将用户输入导致的错误信息写入日志中。

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

因该组件使用非常广泛,并且漏洞被利用的门槛非常低,危害很大,腾讯安全专家建议所有用户尽快升级到安全版本。

漏洞评估

高危漏洞

该漏洞影响范围极大,危害极大。

CVSS评分:10 (最高级)

漏洞状态:

漏洞详情

POC

EXP

在野利用

已公开

已知

已知

已发现

受影响范围:

Apache Log4j 2.x <= 2.14.1 版本均回会受到影响。可能的受影响应用包括但不限于:Spring-Boot-strater-log4j2、Apache Struts2、Apache Solr、Apache Flink、Apache Druid、Elasticsearch、Flume、Dubbo、Redis、Logstash、Kafka 等。

腾讯安全专家漏洞复现验证

简单来说,如果在打印日志时,发现日志内容包含关键词 ${ ,那么这个里面包含的内容回当做变量进行替换,导致攻击者可以任意执行命令,例如上图所示可以调起计算器程序。

检查是否收到漏洞攻击

  1. 可以通过检查日志中是否存在“jndi:ldap://”、“jndi:rmi”等字符来发现可能的攻击行为。
  1. 检查日志中是否存在相关堆栈报错,堆栈里是否有JndiLookup、ldapURLContext、getObjectFactoryFromReference等与 jndi 调用相关的堆栈信息。

漏洞修复方案

首先检查一下自己项目是否安装了 log4j 依赖,如果有的话,将其版本升级到 log4j-2.15.0

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.15.0</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.15.0</version>
</dependency>

其他修复方案

  1. 修改jvm参数 -Dlog4j2.formatMsgNoLookups=true
  1. 修改配置log4j2.formatMsgNoLookups=True
  1. 将系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 true
  2. 禁止使用 log4j 服务器外连
  3. 将 jdk 升级到 11.0.1 8u19 7u201 6u211 或更高版本

蛋蛋这里给大家准备了一份3T+技术学习视频资源,500+技术电子书,以及大量高效工具及网站,私信回复 【资源】即可免费获取哦

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接