开源网安SCA工具SourceCheck对 Apache Struts2代码执行漏洞的防护

2022-04-26 10:35

一、漏洞简述

近日,开源网安 SourceCheck 软件成分分析工具监测发现 Apache 官方发布了 Apache Struts2 的风险通告,漏洞编号为 CVE-2021-31805,漏洞等级:高危,漏洞评分:8.5。

Apache Struts2 是一个用于开发Java EE网络应用程序的开放源代码网页应用程序架构。它利用并延伸了 Java Servlet API,鼓励开发者采用MVC架构。

对此,开源网安 SourceCheck 建议广大用户及时将 Apache Struts2 升级到最新版本。与此同时,请做好资产自查以及预防工作,以免遭受黑客攻击。

二、评估威胁


   三、漏洞详情

漏洞

名称

Apache Struts2 远程代码执

漏洞

等级

高危

CVE

编号

CVE-2021-31805

影响

版本

Struts2 2.0.0 ~ Struts2 2.5.29

安全

版本

Struts2>=2.5.30

纰漏

时间

2022-04-12

四、修复方案

通用修补建议:目前官方已有可更新版本,用户可升级至 2.5.30 版本:

https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.303.2

临时修补建议:

  1. 可通过设置所有标签中 value="" 来缓解此漏洞;

  2. 将org.apache.commons.collection.BeanMap 添加至 excludedClasses 黑名单中。

开源组件安全及合规管理平台(SourceCheck)是开源网安自主研发的软件成分分析 SCA 产品,用于第三方组件安全管控,包括企业组件使用管理、组件使用合规性审计、新漏洞感知预警、开源代码知识产权审计等,支持对源码及发布包检测,是OWASP Top 10 中“使用含有已知漏洞的组件”安全风险的最佳解决方案。

目前 SourceCheck 可以通过对应用包的检测,快速识别应用是否存在 CVE-2021-31805 漏洞,欢迎使用。

1. 创建应用。如下图所示,选择需要添加应用的项目。

2. 检测应用。添加成功应用后,点击检测。检测完成后在应用列表中展示该应用的检测结果,同时可以看到开源组件使用情况。

3. 结果查看。进入应用,可以看到组件信息、漏洞信息、许可信息等其他相关信息。在组件信息中可以看到应用Struts2中通过配置文件方式引入了struts2-core-2.5.29版本,该本版存在高危漏洞。

4. 查看漏洞信息,可以看到应用struts2中存在CVE-2021-31805漏洞,在SourceCheck中编号为SZ-2021-41542。

5. 漏洞详情。点击CVE-2021-31805,可以查看详细的漏洞情况及修复方式等信息。

至此,可以看到开源网安 SourceCheck 可实现自动化、无感知地对企业级软件资产信息进行收集与管理,使软件资产分布可视化;并提供软件资产跟踪定位和管控、新漏洞的自检和预警,以及对自研组件和程序代码的许可合规性进行检测。


企业管理人员必须形成共识,安全问题不仅是安全部门和安全人员的事情,在软件开发正向着“快速迭代、快速开发、快速交付”的发展趋势下,开发团队与测试、运维和业务部门之间的关系,也应该打破原有的隔阂,实现安全左移。安全左移,就是要在软件开发全生命周期解决安全问题,而不是在软件上线之后进行安全维护。

这一理念的实质内容是,从需求导入、代码审计、开发测试到部署上线,安全需要持续存在以及发挥能效,且安全资源完成软件化、组件化、服务化改造,以便结合自动化手段,实现从代码到应用的全流程安全介入,这样才能有效防控开源组件风险,增强业务应用的安全性。

开源网安作为国内领先的软件安全全生命周期解决方案提供商,未来我们将继续秉承“捍卫中国软件安全”的核心理念,通过“软件安全开发流程+自动化安全测试工具+培训服务”三大抓手,弥合开发与安全的鸿沟,帮助企业提升软件的安全与质量,为中国软件安全保驾护航。