当前位置: 首页 > 科技观察

SpringBoot官方应对Log4j2注入漏洞指南

时间:2023-03-13 11:50:34 科技观察

Log4J2漏洞影响面太广。昨天发文后,不少粉丝留言询问SpringBoot项目是否受到Log4J2漏洞影响。Spring官方已经进行了全面的调查,现在大家可以知道信息和对策了。默认配置不受影响。SpringBoot默认的日志组件是logback,开发者通过日志门面Slf4j进行集成。SpringBoot用户仅在将默认日志记录系统切换为Log4J2时才会受到此漏洞的影响。SpringBoot自带的log4j-to-slf4j、log4j-api和spring-boot-starter-logging不能单独使用。只有使用log4j-core并在日志消息中包含用户输入的应用程序容易受到攻击。也就是说,SpringBoot现在包含了Log4J2的依赖,只要不开启,就不会触发漏洞。下一个版本更新补丁SpringBoot将于2021年12月23日之后发布2.5.8和2.6.2版本将使用打补丁的Log4Jv2.15.0,但是由于这是一个极其严重的漏洞,所以一定要覆盖我们的依赖管理和尽快升级您的Log4J2依赖项。Maven用户对于Maven用户,可以通过覆盖自己项目的pom.xml中的版本号配置属性来改变这个依赖的版本号。要将Log4J2升级到安全版本,只需:2.15.0然后运行??./mvnwdependency:list|greplog4j命令检查版本是否为2.15.0。Gradle用户对于大多数用户,设置log4j2.version属性就足够了:ext['log4j2.version']='2.15.0'如果您的Gradle不直接管理SpringBoot依赖项,您可以添加Log4JBOM依赖项:implementation(platform("org.apache.logging.log4j:log4j-bom:2.15.0"))"灵丹妙药"方法是声明一个GradleresolutionStrategy:configurations.all{resolutionStrategy.eachDependency{DependencyResolveDetailsdetails->if(details.requested.group=='org.apache.logging.log4j'){details.useVersion'2.15.0'}}}无论你使用以上三种方法中的哪一种,都需要使用如下命令进行安全检查确认:/gradlewdependencyInsight--dependencylog4j-coreVulnerabilityDemonstration漏洞攻击演示代码,我会在周一的公众号文章中详细讲解,请继续关注。