使用软件组成分析进行漏洞扫描指南
每个软件应用程序都可能包含漏洞。事实上,根据2021年的一份报告,不少于100%的应用程序安全研究人员对漏洞进行了测试,其中85%被认为是关键漏洞。
幸运的是,使用软件组合分析(SCA)工具,可以在将软件部署到生产环境之前检测到大多数漏洞。SCA扫描器可以识别和分析潜伏在源代码和二进制文件中的漏洞,即使在开发人员不太可能通过手动代码审查捕获漏洞的情况下也是如此。

这就是为什么使用SCA工具进行漏洞扫描应该是任何应用程序交付管道中的核心步骤。请继续阅读本文,了解SCA的工作原理,以及如何利用SCA工具来增强所构建应用程序的安全性。
SCA漏洞扫描是如何工作的?
SCA扫描以一种直接的方式工作:通过解析源代码和/或二进制文件,SCA工具查找已知不安全的应用程序组件的存在。
在大多数情况下,SCA工具通过将应用程序组件与漏洞数据库进行匹配来实现这一点安全漏洞研究人员已经在开源库、模块、容器映像和其他资源中报告了这一点。2022世界杯阿根廷预选赛赛程通过识别应用程序中第三方组件的特定版本,然后确定这些版本是否与已知漏洞相关联,SCA工具可以标记安全风险。高级SCA工具还可以根据应用程序的特定配置或环境设置确定是否可以利用风险。有了这些信息,开发人员就可以修复风险,例如,将不安全的开放源代码库升级到安全的新版本。
重要的是要理解,尽管SCA工具可以检测许多类型的漏洞,但一个主要限制是它们通常只能识别与开源软件组件相关的风险。SCA工具无法捕获由开发人员自己编写的原始代码引起的安全问题,除非这些问题被记录在开源漏洞数据库中。开放源代码中存在的漏洞,但安全研究人员或开放源代码社区尚未发现,使用SCA工具也无法检测到这些漏洞。
何时执行漏洞扫描
尽管SCA漏洞扫描可以在软件开发生命周期的任何阶段执行,但在部署前执行时最有价值。换句话说,开发人员应该在将应用程序投入生产之前对其进行扫描,以便在风险影响最终用户之前捕获漏洞。
还要注意,SCA扫描可以在软件交付周期的多个阶段执行。在许多情况下,首先在开发生命周期的早期扫描源代码是有意义的,以便检测可能通过将第三方代码导入应用程序代码库而引入的漏洞。
然后,可以在预生产阶段环境中针对二进制应用程序组件(如容器映像)再次运行SCA扫描。通过扫描二进制文件,开发人员可以检测到其他类型的漏洞,例如在容器化的应用程序中使用不安全的基本映像,这在扫描应用程序源代码时不一定很明显。
SCA漏洞扫描示例
作为SCA如何在应用程序部署之前帮助检测漏洞的示例,请考虑以下SCA用例。
检测源代码中的漏洞
假设您正在开发一个Python应用程序,并且包含了urllib。解析模块中的源代码。本模块受a已知的漏洞这会导致注入攻击。
SCA工具可以扫描您的Python源代码,检测不安全模块的使用,并提醒您注意风险,以便您可以采取补救措施(在urllib的情况下是这样)。解析漏洞,将涉及升级到较新的版本)。
容器图像漏洞检测
创建容器时,通常使用所谓的基地图片,其中包含各种库和工具,您可以将其用作容器化应用程序环境的基础。
如果您选择了一个基本映像(例如Docker Hub上的Ubuntu 18.04基本映像),那么目前包含21个已知漏洞),包括已知漏洞,SCA工具可以标记风险。然后,您可以采取措施来降低风险,例如,通过在容器中包含代码来将基本映像的易受攻击组件更新到较新的版本。
舵图漏洞检测
舵图,这是用来在Kubernetes中安装应用程序,也可能包含各种漏洞。SCA工具可以在将Helm图表部署到Kubernetes集群之前对其进行扫描,从而允许开发人员对其中的安全风险做出反应。
结论
源组合分析是在应用程序源代码和二进制文件中检测源自开源软件的漏洞的最佳方法。如果将任何类型的第三方资源导入到构建的软件中,则应该运行SCA漏洞扫描,以便2022世界杯阿根廷预选赛赛程在安全风险被利用之前捕获它们。
作为一个SCA扫描工具可以无缝集成到您的DevOps软件交付管道中,JFrog x光当代码从开发流向生产时,可以很容易地执行连续的漏洞扫描。使用Xray,您可以放心地在黑客利用漏洞之前发现漏洞。