漏洞简介
●Spring最新RCE漏洞使⽤了 Spring MVC 框架的应用系统且 jdk 版本>=9。
● 该漏洞利⽤难度低,应⽤范围较⼴,目前受影响的Spring Framework的版本有:
Spring Framework 5.3.X<5.3.18
Spring Framework 5.2.X<5.2.20
注:其他Spring Framework旧版本同样会受到影响。
Spring MVC 框架的参数绑定功能提供了将请求中的参数绑定控制器方法中参数对象的成员变量,攻击者通过构造恶意请求获取 AccessLogValve 对象并注⼊恶意字段值触发 pipeline 机制可写⼊任意路径下的文件。有专业机构监测发现该漏洞已被攻击者利用,漏洞细节已经在小范围公开。鉴于 Spring MVC 框架应用广泛,请各单位组织排查,有关系统是否使用了受影响的 Spring MVC 框架。
漏洞响应
1
设置防护手段
企业可采用 NDR 类(默安刃甲网络攻击干扰压制系统)、WAF 类、RASP 类产品,对该漏洞利用进行防护阻断,为后续排查资产与开发项目争取时间。
在 WAF 等⽹络防护设备上,根据实际部署业务的流量情况,实现对{"class.*","Class. *","*.class.*", "*.Class.*"} 等字符串的规则过滤,并在部暑过滤规则后,对业务运⾏情况进⾏测试,避免产⽣额外影响。
2
排查受影响资产
企业可采用 CWPP 类(默安剑幕主机安全检测系统)、资产风险检查类(默安巡哨智能资产风险监控系统)安全产品,一键梳理受影响资产,确定此漏洞影响面。
用户也可手动进行梳理,手动排查方法如下:
1
JDK版本号排查
在业务系统的运行服务器上,执行“java -version”命令查看运行的JDK版本,如果版本号小于等于8,则不受漏洞影响。
2
Spring框架使用情况排查
01# 如果业务系统项目以war包形式部署,按照如下步骤进行判断:
● 解压war包:将war文件的后缀修改成.zip ,解压zip文件。
● 在解压缩目录下搜索是否存在 Spring-beans-*.jar 格式的jar文件(例如Spring-beans-5.3.16.jar),如存在则说明业务系统使用了Spring框架进行开发。
● 如果Spring-beans-*.jar 文件不存在,则在解压缩目录下搜索CachedIntrospectionResuLts.class 文件是否存在,如存在则说明业务系统使用了Spring框架开发。
02# 如果业务系统项目以jar包形式直接独立运行,按照如下步骤进行判断:
● 解压jar包:将jar文件的后缀修改成.zip,解压zip文件。
● 在解压缩目录下搜索是否存在Spring-beans-*.jar 格式的jar文件(例如Spring-beans-5.3.16.jar),如存在则说明业务系统使用了Spring框架进行开发。
● 如果Spring-beans-*.jar 文件不存在,则在解压缩目录下搜索CachedIntrospectionResuLts.class 文件是否存在,如存在则说明业务系统使用了Spring框架进行开发。
3
综合判断
在完成以上两个步骤排查后,同时满足以下两个条件可确定受此漏洞影响:
● JDK版本号在9及以上的;
● 使用了Spring框架或衍生框架。
3
排查受影响开发项目
企业可采用SCA类(默安雳鉴SCA软件成分分析系统)、IAST类(默安雳鉴IAST交互式应用安全检测系统)产品,在开发过程和测试过程中,发现受Spring-beans-*.jar影响的开发项目和代码。
4
推进修复
目前,Spring官方已发布修复补丁,请客户及时进行补丁升级,按官方补丁修复漏洞:
https://github.com/spring-projects/spring-framework/commit/002546b3e4b8d791ea6acccb81eb3168f51abb15
若存在无法打官方补丁的情况下,需同时按以下两个步骤进行漏洞的临时修复:
01# 在应用中全局搜索@InitBinder注解,看看方法体内是否调用dataBinder.setDisallowedFields方法,如果发现此代码片段的引入,则在原来的黑名单中,添加{"class.*","Class. *","*. class.*", "*.Class.*"}(注:如果此代码片段使用较多,需要每个地方都追加)。
02# 在应用系统的项目包下新建以下全局类,并保证这个类被Spring 加载到(推荐在Controller 所在的包中添加)。完成类添加后,需对项目进行重新编译打包和功能验证测试,并重新发布项目。
import org.springframework.core.annotation.Order;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.InitBinder;
@ControllerAdvice
@Order(10000)
public class GlobalControllerAdvice{
@InitBinder
public void setAllowedFields(webdataBinder dataBinder){
String[]abd=new string[]{"class.*","Class.*","*.class.*","*.Class.*"};
dataBinder.setDisallowedFields(abd);
}
}
默安多款产品支持该漏洞检测与发现
刃甲网络攻击干扰压制系统,已升级最新规则,支持对该漏洞利用攻击的监测与自动化阻断。
剑幕主机安全检测系统,已升级最新规则,支持对该漏洞进行应急响应检测,梳理受影响的主机。
巡哨智能资产风险监控系统,已升级最新规则包,支持对该漏洞进行检测,梳理受影响资产。
雳鉴IAST交互式应用安全检测系统,已升级最新规则包,支持该漏洞检测。
雳鉴SCA软件成分分析系统,已升级最近升级包,支持梳理开发项目中,包含此风险组件的项目。
服务热线
如有任何问题,请联系:
0571-57890068
1
END
1
原文始发于微信公众号(默安科技):漏洞情报 | Spring 最新RCE漏洞(默安全线产品支持检测)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论