在开发商和应用程序安全团队在跟踪开源组件(包括其代码库中的直接依赖项和传递依赖项)遇到问题之后,软件组成分析(SCA)工具应运而生。依靠人工流程和电子表格这种做法效率低下、容易出错,并且不可扩展。
软件组成分析工具如何工作
采用软件组成分析(SCA)工具可以自动化识别和分类开发环境中使用的开源代码的过程,并识别安全性、许可和质量问题及其依赖关系。
为此需要讨论选择软件组成分析(SCA)解决方案的最佳实践。
软件组成分析(SCA)和持续监控
为了有效地工作,软件组成分析(SCA)工具必须持续监视代码,因为使用开放源代码的现代开发方法本质上是连续的。
一个安全团队负责人喜欢这个功能,他说:“我们一直在开发新的应用程序,我们发现在未被积极开发的应用程序中,存在很多需要修复的漏洞。”
这就是可见性在选择软件组成分析(SCA)解决方案时成为一个重要考虑因素的原因。开发人员以及负责分析工作的人员必须了解开发中使用的开源组件。
一家拥有上万名员工的金融服务机构的员工说:“这就像一直在黑暗中工作,突然之间就拥有了可见性。可以确切地看到自己正在使用的内容并提出建议。这样如果不能使用某些东西,则还有其他选择。”
另一家采用软件组成分析(SCA)的大型金融服务机构的用户也表达了这样的观点。他们说,“我们不再盲目地使用易受攻击的组件。我们已经意识到正在向开发人员推广这种意识,并且认为我们对威胁的前景有了更好的了解。我们甚至都不知道哪些是错误或漏洞,而现在我们已经知道了,并且可以很快地补救。”
误报率低
误报会浪费时间,并导致用户在软件组成分析(SCA)工作中不堪重负。与其相反,假否定会在代码中引入安全性和许可问题。由于这些原因,软件组成分析(SCA)解决方案需要尽可能精确。
一家解决方案服务商的一位高级主管指出了此问题的重要性,。他说,“这有助于我们避免在现场暴露关键漏洞。它为我们节省了部署之后可能进行的补救活动的时间,因为如果我们在应用程序完全开发和部署之后发现了安全问题,那么需要进行更改或重新使用将变得更加困难。”
提高开发人员的生产力和投资回报率
软件组成分析(SCA)不仅仅是保护代码。它也应该是提高开发人员生产力的驱动力。
这位主管还发现在解决问题时,由于明确列出了问题,解决方案提高了开发人员的生产力。如果按数字计算,可以将开发人员的生产力提高5%至10%。
他表示,采用软件组成分析(SCA)技术可能支付一定的成本,因为修复开发生命周期中的安全漏洞将花费大量资金。
开源代码政策
软件组成分析(SCA)实践和解决方案的最终目的是将安全策略强制应用到代码库的所有部分。因此,首选的软件组成分析(SCA)解决方案是可以强制实施开源代码策略的解决方案。
这位主管补充说:“由于它具有主动性和实时数据,可以立即知道应用程序的任何部分现在是否容易受到攻击。”
尽管确实需要强大的安全策略,但是如果它们过于严格,则会对开发人员的生产率产生负面影响,它们甚至可能被完全规避。因此,如果软件组成分析(SCA)解决方案可提供灵活的政策实施,则很有用。
软件组成分析(SCA)是一个新的缓解控件,可以发现新的漏洞类别。它有助于实施安全的编码实践,在首次推出时可能会花费一些时间,但在应用一段时间后,将会降低成本,因为更多的开发人员对此非常熟悉。
此外,软件组成分析(SCA)工具甚至可以继承某些组件,因为在现实世界中,由于它不向后兼容,不能总是花费时间去更新。拥有这些功能使它变得更易于使用,并且更加实用,而无需采用全有或全无的方法。
很多用户希望软件组成分析(SCA)对开发活动的可见性和意识进行连续监控。他们还希望软件组成分析(SCA)具有来自多个来源的高质量数据、较低的误报率、提高开发人员生产率,投资回报率、灵活的策略执行、通过破坏构建来实施开源策略、集成功能和强大的供应商支持。