下面是Apache Log4j2报核弹级漏洞快速修复方法的详细攻略:
概述
Apache Log4j2是一个广泛使用的Java日志框架,近日被爆出一个核弹级的漏洞CVE-2021-44228。攻击者在网络上可以通过构造Payload,远程执行任意代码,进行拦截、篡改和窃取敏感信息等攻击。此次漏洞严重性极高,Apache官方已经发布了修复方案,建议尽快进行修复。以下是详细的修复方法。
修复方式
- 升级至最新版
在官方发布的修复版本中,包含了修复此漏洞的代码,只需将原先的Log4j2版本升级至最新版即可。具体操作方式如下:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.0</version>
</dependency>
将原有的依赖注释掉,再加上以上的依赖就可以升级到最新版的Log4j2。
- 关闭JNDI Lookup
另一个可以避免此漏洞的方法是,手动关闭JNDI Lookup的功能。在log4j2的配置文件log4j2.xml中,配置如下内容:
<Configuration packages="org.apache.logging.log4j.core,org.apache.logging.log4j.core.appender">
<Appenders>...</Appenders>
<Loggers>...</Loggers>
<ContextSelector>
<JndiContextSelector defaultInitialContextName="java:/comp/env" />
</ContextSelector>
<!--JNDI Lookup is disabled.-->
<Properties>
<Property name="isPackageProtectionEnabled">false</Property>
<Property name="log4j2.disable.jmx">true</Property>
<Property name="log4j2.format.msg.async">false</Property>
<Property name="log4j.shutdownCallbackRegistry">org.apache.logging.log4j.core.util.BasicShutdownCallbackRegistry</Property>
</Properties>
</Configuration>
以上配置即可关闭JNDI Lookup。
示例
示例一:升级至最新版
对于使用Maven进行依赖管理的Java项目,可以在pom.xml中修改Log4j2的版本,进行升级。
首先,找到pom.xml文件中的Log4j2依赖:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.16.0</version>
</dependency>
将其修改为最新版:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.0</version>
</dependency>
保存并更新Maven依赖即可完成Log4j2的升级。
示例二:关闭JNDI Lookup
对于已升级至最新版Log4j2的项目,也可以通过配置文件关闭JNDI Lookup功能。
在项目的log4j2.xml配置文件中,添加以下内容:
<Configuration packages="org.apache.logging.log4j.core,org.apache.logging.log4j.core.appender">
<Appenders>...</Appenders>
<Loggers>...</Loggers>
<ContextSelector>
<JndiContextSelector defaultInitialContextName="java:/comp/env" />
</ContextSelector>
<!--JNDI Lookup is disabled.-->
<Properties>
<Property name="isPackageProtectionEnabled">false</Property>
<Property name="log4j2.disable.jmx">true</Property>
<Property name="log4j2.format.msg.async">false</Property>
<Property name="log4j.shutdownCallbackRegistry">org.apache.logging.log4j.core.util.BasicShutdownCallbackRegistry</Property>
</Properties>
</Configuration>
保存后重启项目即可生效。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Apache Log4j2 报核弹级漏洞快速修复方法 - Python技术站