为什么以及如何执行开源安全扫描?

开源软件在很多方面都很棒。它通常是免费的,很容易修改或扩展,并且借用开源代码可以减少开发应用程序所需的时间。

另一方面,使用开源软件的一个主要挑战是安全性。虽然从安全性的角度来看,开源软件并不比闭源软件具有更多(或更少)的内在风险,但始终存在开源软件将漏洞引入您的组织的风险。

这就是为什么开源安全扫描对于任何使用开源的组织都是至关重要的。请继续阅读有关开源安全扫描如何工作、它们为什么重要以及如何将它们集成到您的安全策略中的提示。

为什么要扫描开源软件

开源代码中可能存在各种各样的安全漏洞。例如,它可能包含无法正确验证输入的函数,攻击者可以利用这些函数来获得对敏感数据的未经授权的访问。或者,开源库或模块中的编码缺陷可能使任意代码得以执行,从而使攻击者能够控制应用程序或承载应用程序的系统。

同样,这些类型的漏洞也可能存在于闭源软件中。但是开源的挑战在于第三方开发人员可以很容易地重用开源代码;这不是闭源代码的典型情况。这意味着依赖外部组织编写的开源软件的组织最终可能会将安全漏洞导入到他们的代码库中——通常甚至没有意识到这一点。

还要注意,实际上任何类型的开源项目都可能存在开源安全风险。大型、知名的开源项目,如Linux和Kubernetes,管理得很好,往往比你在GitHub上发现的小型、不知名的项目有更少的安全漏洞。但无论哪种方式,始终存在这样的风险,即您的开源代码将包含漏洞,无论它来自何处。

关于开源代码扫描的第二个考虑因素是许可遵从性。在某些情况下,开发人员可能无意中以违反管理代码的许可的方式使用开源代码。他们甚至可能在自己的应用程序中插入开源代码的片段,而不跟踪这些代码的来源,从而导致潜在的许可违规。

开源安全扫描可以防止这两种类型的风险。它可以帮助您发现您使用的开源函数、库或模块中的不安全代码。它还提醒您注意与您的业务所依赖的开源代码相关的潜在许可问题。

SCA扫描保护开源软件

理论上可以手动扫描开源代码。您的开发人员可以手工检查它,以查找可能产生漏洞的编码错误。

然而,这种方法很难大规模实施。更好的解决方案是部署自动化软件组成分析(SCA)工具。这些工具会自动解析开源代码,然后将其与已知漏洞的数据库进行比较,以确定代码中是否存在风险。一些SCA工具还可以评估代码,以检测可能产生漏洞的不良实践,即使这些漏洞以前没有被披露。更重要的是,它们可以提醒您注意代码库中已知受特定开放源代码许可约束的代码,这有助于识别与组织内使用开放源代码相关的潜在许可问题。

高级SCA工具(如JFrog Xray)也可以扫描的二进制文件,例如容器的图片应用程序可执行文件.这意味着即使您通过二进制分发渠道(例如公共容器注册中心)借用开源软件,它们也可以检测到风险。这允许您检查它的漏洞之前在您的环境中部署它。

如何设置开源安全扫描

虽然SCA工具的部署流程因工具而异,但通常可以归结为:

  1. 获取工具。
  2. 如果需要在本地托管工具,请设置该工具。另外,如果它是SaaS解决方案(Xray支持的部署选项),您可以使用它,而无需自己设置。
  3. 将该工具与您的软件交付管道集成,以便在将开放源代码集成到代码库中时执行扫描。理想情况下,您将同时对源代码和二进制文件运行扫描,以便最大限度地检测安全性或许可问题。

有关将JFrog Xray设置为开源漏洞扫描解决方案的详细信息,欢迎您参考此文档文档