❖
3月30日,国家信息安全漏洞共享平台(CNVD)收录了Spring框架远程命令执行漏洞(CNVD-2022-23942)。该漏洞是继Apache Log4j2漏洞之后的又一严重漏洞事件,引起业界高度关注。
Spring框架(Framework)是目前主流的 Java EE轻量级开源框架,提供了IOC、AOP及MVC等功能,解决企业级编程开发中的复杂性、业务逻辑层和其他各层的松耦合问题,实现敏捷开发的应用型框架。
据悉,远程攻击者可利用该漏洞写入恶意代码导致远程代码执行漏洞。由于该漏洞涉及Spring核心框架,所以影响面较广。甚至业内人士分析,本次Sprint漏洞严重程度不亚于之前的Log4j2 漏洞。
该漏洞的综合评级为“高危”。
漏洞影响范围
据了解,受漏洞影响的产品版本包括:1、JDK 版本号 9 及以上的;2、使用了Spring 框架或衍生框架。建议开发者进行JDK版本号(注:如果版本号小于等于8,则不受漏洞影响)和Spring框架使用情况进行排查。
处置建议
目前,Spring官方已发布新版本完成漏洞修复,CNVD建议受漏洞影响的产品(服务)厂商和信息系统运营者尽快进行自查,并及时升级至最新版本:https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement
“
奇安信提出以下处置建议:
1.漏洞影响排查方法
用户可参照以下方式来判断是否可能受此漏洞影响。
(1)排查JDK版本
在控制台窗口执行"java-version",如果版本号小于等于8,则不受此漏洞影响。
(2)排查Spring框架使用情况
检查项目是否使用Spring基础框架,未使用则不受影响。可通过排查项目是否使用spring-beans核心依赖进行检查。
(3)排查项目部署方式
经过前两步排查后,排查项目是否使用Tomcat进行部署,目前利用主要针对Tomcat中间件,但其他中间件不排除后续被利用的可能。
(4)排查项目代码
项目中Web接口未使用JavaBean对象作为参数则不受此漏洞影响。
2.攻击排查
(1)流量排查:攻击者的数据包中可能存在”class.*”,“*.class.*”,“class.module.*”字样或对该字样进行URL编码的变种字样,同时这些字样对大小写不敏感。推荐使用奇安信网神网站应用安全云防护系统全流量或WAF设备进行检索排查。
(2)日志排查:查看tomcat的AccessLog中是否缺失最近日志记录,同时排查Tomcat相关web应用目录下是否存在可疑后门文件。
3.漏洞缓解措施
1.在应用中全局搜索@InitBinder注解,方法体中若调用dataBinder.setDisallowedFields,则在原来的黑名单中添加"class.*","Class.*", "*.class.*", "*.Class.*"。
【注:如果此代码片段使用较多,需要每个地方都追加。】
2.若未发现,可通过@ControllerAdvice进行全局拦截,通过WebDataBinder中setDisallowedFields方法添加黑名单。参考代码:
importorg.springframework.web.bind.WebDataBinder;
importorg.springframework.web.bind.annotation.ControllerAdvice;
importorg.springframework.web.bind.annotation.InitBinder;
@ControllerAdvice
@Order(Ordered.LOWEST_PRECEDENCE)
public class BinderControllerAdvice {
@InitBinder
public voidsetAllowedFields(WebDataBinder dataBinder) {
String[] denylist = newString[]{"class.*", "Class.*", "*.class.*","*.Class.*"};
dataBinder.setDisallowedFields(denylist);
}
}
提醒
提醒大家在修复漏洞时要通过官方渠道及时关注官方补丁发布情况,不要随意在网上下载未经证实的补丁,以防遇到钓鱼信息或内含恶意程序的补丁。
资料参考:CNVD、奇安信
↓↓点击关注我们↓↓
原文始发于微信公众号(网络安全和信息化):Spring高危漏洞来袭 影响面广泛,收下这份处置建议
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论