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

JFrog支持
2023-01-22 11:06

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

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

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

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

为什么你应该扫描开源软件

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

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

还要注意,几乎任何类型的开源项目都可能存在开源安全风险。大型、著名的开源项目,如Linux和Kubernetes,管理良好,往往比你在GitHub上找到的小型、晦涩的项目有更少的安全漏洞。但无论哪种方式,你的开源代码总会有包含漏洞的风险,不管它来自哪里。

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

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

使用SCA运行开源安全扫描

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

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

高级SCA工具,比如JFrog x光,也可以扫描二进制文件,如容器映像和应用程序可执行文件。这意味着即使您通过二进制分发渠道(例如公共容器注册表)借用开源软件,它们也可以检测到风险。在将其部署到您的环境之前,您可以检查它是否存在开放源码漏洞。

设置开源安全扫描

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

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

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