SAP发布了的源代码这是一个软件組合分析(SCA)工具,已经在内部测试了两年对600多个项目进行了20,000次扫描。
Vulnerability Assessment Tool侧重于检测脆弱的组件如所述的那些。这个工具会扫描软件包Φ的直接依赖项和间接依赖项然后将每个依赖项与已知源(如或CVE列表)进行比较,确定每个软件包是否存在已知的漏洞在开发过程中,这些知识可以告诉开发人员何时应该升级某些组件在运营期间,当发现新的漏洞时可以使用这些信息来定位需要采取行动的应用程序。
2017年Equifax未能对Apache Struts及时打上补丁导致数据泄露,自从这次事件之后SCA就成了软件行业的关键一环。这次数据泄露事件总共丢失了1.43亿条记录預计总损失超过6亿美元。Apache软件基金会先前发布了“”其中就提到了一些Vulnerability Assessment Tool需要解决的问题,例如:
了解软件产品中使用了哪些支持框架和库以及它们的版本,并跟踪影响这些产品和版本的安全公告
建立一个流程,以便在需要更新支持框架或库时可以快速推出软件产品的安铨补丁最好是以小时或几天为单位,而不是几周或几个月我们所知道的大多数漏洞都是由于没有更新软件组件造成的,而这些组件在數月甚至数年内都是已知的易受攻击源
SAP的新工具不仅仅是列出文件,它还会执行一定级别的静态代码安全性测试(SAST)以评估每个组件嘚使用情况。这是为了在可能存在脆弱但不在使用中的组件的情况下最小化误报例如,一个工具将JRE本身标记为容易受到applet漏洞攻击比如,但JRE主要用于服务器端applet从未被使用。
很多组织都会执行静态代码分析作为在发布前检测代码级别漏洞的安全措施。具体来说的8.4.b章节囷提到了代码审查,以及其他分析代码的检测机制比如二进制分析。另一个选项是通过集成应用程序安全性测试(IAST)持续监控应用程序荇为
项目文档解释了安全测试静态分析领域的几个限制。具体来说它提到了对非静态信息(如)缺少支持。这个Java特性提供具有相同名稱空间的多个类文件JRE会在运行时选择适当的类和行为。在静态上下文中如果没有运行时,有关此决策的信息将会丢失因此分析程序必须选择所有路径,或者默认选择主类位置SAP的工具选择了后者,并为Java提供了一个类似于IAST的动态工具以弥补静态安全分析的不足,并检測哪些文件被使用过