2022年3月28日,Spring官方发布了一则消息,暴露Spring核心框架具有Dos漏洞:CVE-2022-22950。

在这里插入图片描述

Spring在Java中的地位超然,该漏洞会影响到几乎所有的Spring系列组件,例如常见的SpringBoot和SpringCloud等,并且spring系列组建被广泛运用与业务系统开发,覆盖面极广。

在这里插入图片描述

同时,该漏洞是一种潜在的漏洞,但是利用该漏洞进行该攻击服务的手段的门槛较高,需要利用可控可执行的SPEl(SpringExpressionLanguage,Spring表达式语言)。

三月初,spring官方爆出springcloudgateway漏洞,其修复方式就是利用了SimpleEvaluationContext,但是SimpleEvaluationContext并不就一定安全,只要SPEL可控,那么就会有Dos漏洞。

例子如下:

在这里插入图片描述
在这里插入图片描述

从上可以发现,SPEL可控还是会导致OOM并耗尽CPU以实现拒绝服务。

修复方式

临时修复措施:需要同时按照以下2个步骤进行漏洞的临时修复:

1.在应用中全局搜索@InitBinder注解(该注解用于注册类型绑定器,对spring的参数绑定进行增强)。看看方法体内是否调用dataBinder.setDisallowedPields方法,如果发现此代码片段的引入,则在原来的黑名单中,添加{“class.","Class.”,".class.",".Class."}(注:如果此代码片段使用较多,需要每个地方都加上)2.在应用系统的项目包下新建以下全局类,并保证这个类被Spring加载到(推荐在Controller所在的包中添加)。完成类添加后,需对项目进行重新编译打包和功能验证测试,并重新发布项目。

在这里插入图片描述

Spring官方修复建议:1.springframework升级到最新发布的SpringFramework5.3.172.SpringBoot用户应升级到2.5.11或2.6.5。

我们从容应对

该项漏洞目前还未发布到NVD网站上,谐云DevOps可信源产品,通过漏洞的自行建立,可信源库和漏洞库建立起对Java代码依赖包的管理,可从容应对紧急发布的CVE-2022-22950漏洞。
谐云DevOps可信源产品对去年底爆出的Apache Log4j2高危漏洞应对详情可点击该链接了解详情:Apache Log4j2高危漏洞

产品介绍

谐云DevOps平台是面向软件研发团队的一站式研发协作管理平台,提供从需求到设计、开发、构建、测试、发布到部署的全流程协同及研发工具支撑。全面满足企业研发管理与工程效率等需求,一站式提高管理效率和软件研发质量,助力团队快速实践敏捷开发与 DevOps,提升软件交付质量与速度,助推企业数智化转型升级。

可信源管理从项目持续集成、发版门禁源头堵截高危漏洞上线,维护应用依赖版本库,当发现漏洞后可以直接创建工单针对性修复。平台支持定期从中央漏洞库拉取漏洞,在流水线运行过程中对使用到的依赖包做扫描校验,在申请发布前的对发布版本做扫描拦截,扫描范围包括漏洞、基线、可信源匹配,可信源冲突、门禁。在代码合并前经过多人审批,并设置分支保护权限,从而规避相应风险,提高安全等级。

建立漏洞库

定期从中央漏洞库(NVD)拉取漏洞导入系统,支持全量同步、增量同步和手动同步。在收到漏洞后可以进行漏洞影响分析,查看漏洞的关联应用血缘和可信源血缘,并发送预警通知。
在这里插入图片描述

但是对于还未在NVD发布的漏洞,我们可以实行紧急措施,自行建立该漏洞,并手动关联,在后续NVD发布漏洞后会自动进行合并。

在这里插入图片描述
在这里插入图片描述

漏洞血缘关系,火眼金睛让高危项目无处遁形

通过漏洞紧急建立以后,就可以立即的看出所有被漏洞所设计到的引用依赖。
在这里插入图片描述

也可以通过规则检查寻找到所有已发布并涉及到该漏洞的项目,以及每个项目都引用了哪些依赖。
在这里插入图片描述

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐