Apache Log4j 高危漏洞缓解和修复措施

0 漏洞相关信息

https://issues.apache.org/jira/projects/LOG4J2/issues/LOG4J2-3201?filter=allissues

https://mp.weixin.qq.com/s/Yq9k1eBquz3mM1sCinneiA

https://www.zhihu.com/question/505025655/answer/2267000256

1 项目检查

由于受影响的包主要是 log4j-core,因此首先需要检查项目中是否引用了该包:

find /path/to/your/project -name log4j-core*

如果检查到例如下方的结果:(2<=版本号<=2.14.1)

/path/to/your/project/WEB-INF/lib/log4j-core-2.7.jar

则表示该项目引用了受影响的版本的 Log4j2,需要尽快查看项目代码,结合实际情况进行处理。

  • 如果该项目无需使用 Log4j2,则将其移除。
  • 如果该项目需要使用 Log4j2,则需要尽快升级版本。

2 缓解措施

目前缓解措施有如下:

(1)修改 jvm 参数:-Dlog4j2.formatMsgNoLookups=true

(2)修改配置:log4j2.formatMsgNoLookups=True

(3)将系统环境变量:LOG4J_FORMAT_MSG_NO_LOOKUPS 设置为 true

注意:以上缓解措施中,需要版本范围为 2.10<=version<2.15

目前,第(3)项措施最快捷。

在项目所在机器配置系统环境变量操作如下:

vi ~/.bash_profile

# --------------- 添加以下内容 ---------------

# Apache Log4j2 Bug fix
export LOG4J_FORMAT_MSG_NO_LOOKUPS=true

# --------------- 添加以上内容 ---------------

# 保存退出

修改完环境变量后,还需要重启项目。

3 修复措施

对所有使用到 Log4j 组件的项目进行升级,使用最新版本 2.16.0:(以下两个必须同步升级到2.16.0,否则运行会报错)

其它相关组件,建议也升级:

3.1 Spring Boot 修复措施

如果是 maven 管理的项目,通过升级 log4j 的版本解决漏洞。

1、使用 Log4j2 的项目,pom.xml 的修改样例如下:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-log4j2</artifactId>
	<!-- 排除旧版本的 Apache Log4j2 组件 -->
	<exclusions>
		<exclusion>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-slf4j-impl</artifactId>
		</exclusion>
		<exclusion>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-api</artifactId>
		</exclusion>
		<exclusion>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
		</exclusion>
		<exclusion>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-jul</artifactId>
		</exclusion>
	</exclusions>
	<!-- 排除旧版本的 Apache Log4j2 组件 -->
</dependency>
<!-- 引入新版本的 Apache Log4j2 组件 -->
<dependency>
	<groupId>org.apache.logging.log4j</groupId>
	<artifactId>log4j-slf4j-impl</artifactId>
	<version>2.16.0</version>
</dependency>
<dependency>
	<groupId>org.apache.logging.log4j</groupId>
	<artifactId>log4j-api</artifactId>
	<version>2.16.0</version>
</dependency>
<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-jul</artifactId>
	<version>2.16.0</version>
</dependency>
<!-- 引入新版本的 Apache Log4j2 -->

2、使用 Logback 的项目,为了保险起见,心有余力还是升级以下,以防万一。

pom.xml 的修改样例如下:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
	<exclusions>
		<!-- 排除旧版本的 Apache Log4j2 组件 -->
		<exclusion>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-to-slf4j</artifactId>
		</exclusion>
    <!-- 排除旧版本的 Apache Log4j2 组件 -->
	</exclusions>
</dependency>
<!-- 引入新版本的 Apache Log4j2 组件 -->
<dependency>
	<groupId>org.apache.logging.log4j</groupId>
	<artifactId>log4j-to-slf4j</artifactId>
	<version>2.16.0</version>
	<exclusions>
		<exclusion>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-api</artifactId>
		</exclusion>
	</exclusions>
</dependency>
<dependency>
	<groupId>org.apache.logging.log4j</groupId>
	<artifactId>log4j-api</artifactId>
	<version>2.16.0</version>
</dependency>
<!-- 引入新版本的 Apache Log4j2 组件 -->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值