SpringBoot Log4j 安全漏洞分析及解决方案

一、序言

SpringBoot作为Java基础框架大行其道,前不久爆发出Log4j安全漏洞,大众更多关心Log4j的危害是多么严重,然而鲜有关心SpringBoot这一底层框架的安全性问题,换而言之,在未对软件项目的安全评估前,所有基于SpringBoot构建的软件应用都属于Log4j漏洞的攻击对象。

1、Log4j漏洞

Log4j漏洞指Java项目中引入了特定版本(使用较多的是2.14.x)的Log4j依赖,导致项目存在被远程攻击的风险。

官方给定的修复方案是尽快升级Log4j版本(2.17.x),或者更换使用其它日志框架。显而易见最经济的解决方式是升级Log4j版本。

2、SpringBoot Log4j漏洞

所有基于SpringBoot 构建的Java项目,SpringBoot 版本低于2.6.2的项目都存在Log4j漏洞,请主动解决或者升级SpringBoot版本。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.2</version>
    <relativePath/>
</parent>

二、项目依赖分析

SpringBoot 2.6.2比较新,可以肯定的说,大多数已经开发或者正在开发的项目都存在Log4j漏洞。

SpringBoot Log4j 安全漏洞分析及解决方案
1、识别漏洞

识别项目中是否存在漏洞的显著标识是查看Log4j依赖。

SpringBoot Log4j 安全漏洞分析及解决方案

从上图所知,SpringBoot 2.6.1所依赖的Log4j版本是2.14.x,此版本存在安全漏洞。

2、修复漏洞

升级SpringBoot版本修复漏洞。

SpringBoot Log4j 安全漏洞分析及解决方案

从上图所知,SpringBoot 2.6.2所依赖的Log4j版本是2.17.x,属于安全版本。

三、小结

SpringBoot Log4j漏洞对那些选定某一版本然后长期使用的开发者提出挑战,使用较新的长期稳定版本能够自动屏蔽常见的漏洞。

对于新立项的项目,推荐使用较新版本的SpringBoot来屏蔽Log4j安全漏洞;对于已经开发完毕处于维护阶段的项目,手动替换Log4j版本比较合理,盲目升级SpringBoot版本可能影响稳定运行。

SpringBoot Log4j 安全漏洞分析及解决方案

原文地址

上一篇:mybatis-plus3.5.1逆向工程


下一篇:简易搭建RocketMQ集群