Spring boot项目Fortify漏洞扫描问题解决

一、背景

        前段时间公司使用Fortify工具对项目源码进行安全漏洞扫描,结果报出Dynamic Code Evaluation: Unsafe Deserialization漏洞。整个项目是基于Spring boot框架开发的。

二、问题源

   Fortify工具明确指出该安全漏洞是由于引入了Spring Boot Actuator依赖导致的


  org.springframework.boot
     spring-boot-starter-actuator
  

显然,由于项目已经投入使用,不能将该依赖直接删除,影响太大。所以经过上网搜索终于找到解决办法,现分享如下:

三、解决办法

      Fortify报出这个问题不是因为Spring Boot Actuator本身,而是因为它对Jackson的传递依赖。Jackson可能包含了会对不可信数据进行反序列化,因此如果这个警告是Jackson发出的,那么它就是一个误报。       

     问题的根源是Spring Boot Actuator 对 "jackson-databind”的传递依赖导致的。这个漏洞在Jackson 2.9.7中被修复了,它阻止了某些类的多态反序列化。Spring Boot 2.0.6和2.1.0默认使用Jackson 2.9.7

解决方法:打开pom文件的依赖层次结构查看Jackson-databind版本。如果版本低于2.9.7,则在spring-boot-starter-actuator中exclude掉Jackson-databind,并单独添加更高版本(不低于2.9.7)的Jackson-databind。



  org.springframework.boot
  spring-boot-starter-actuator
  
     
        com.fasterxml.jackson.core
        jackson-databind
     
  




    com.fasterxml.jackson.core
    jackson-databind
    2.10.0

 

你可能感兴趣的:(Spring学习,安全漏洞,Spring,Fortify,Actuator)