虽然开源的最大好处是围绕它的大型开发者社区,但这也可能是它的缺陷。开源项目存在困扰维护不善的项目的漏洞。如果不加以控制,这些漏洞可能会危及依赖这些开源工具的整个系统。在下文中,我们将讨论保护应用程序堆栈免受此类漏洞的影响以及如何使用 OWASP Dependency-Check。

根据开源安全和风险分析 (OSSRA) 的 2021 安全报告,2020 年每个应用程序平均发现 528 个开源组件,比 2016 年的 84 个组件激增。

尽管有据可查,但开发人员往往会忽略此类漏洞从第三方库和框架中采用的应用程序安全挑战。这使黑客能够破坏项目。

因此,组织必须关注软件供应链,包括第三方组件。因此,开发人员需要一种可以与应用程序代码集成并用于跟踪外部依赖项中的漏洞的解决方案。一个这样的解决方案是 OWASP Dependency-Check,这是一种开源解决方案,旨在帮助开发人员管理和确保应用程序的安全性。

OWASP Dependency-Check 使开发团队能够减轻开源安全威胁,从而保护应用程序。

了解 OWASP 依赖检查

OWASP Dependency-Check 是一个软件组成分析(SCA) 工具,它主动扫描项目的依赖项,检测并报告公开披露的漏洞,确保应用程序安全。不幸的是,根据 White Source 的报告,2020 年已发布的开源软件漏洞数量猛增了 50% 以上。考虑到超过 95% 的开发人员在他们的项目中依赖开源组件,这令人担忧。

由于应用程序在整个执行过程中使用库,因此它们被赋予了访问和传输任何数据以及写入任何文件的绝对自由。因此,易受攻击的库会将整个应用程序暴露给黑客——执行交易、访问并将数据传输到互联网。

Dependency-Check 由开放 Web 应用程序安全项目 (OWASP) 构建,这是一个为应用程序安全而成立的非营利组织。该解决方案可免费使用、易于集成且可快速报告可操作信息,以确保您的应用程序的安全性。

依赖性检查:确定漏洞

在我们了解 Dependency-Check 如何确定漏洞之前,让我们先了解一下分析器是什么。

分析器是执行整个依赖扫描过程的专用项目。分析器也称为嗅探工具,负责检查每个数据包以验证其相关性并记录其信息。它们可用于数据检索和错误扫描。

OWASP Dependency-Check 提供了两种类型的分析器——文件类型分析器和实验分析器。

11 种不同的文件类型分析器

该工具包含多个执行特定任务的文件类型分析器:

1\。档案

提取和扫描存档内容

2\。集会

需要 .NET 框架或 Mono 运行时

3\。罐

扫描存档清单元数据和 Maven 项目对象模型文件

4.退休JS

检查 JavaScript 文件

5\。节点.js

解析package.json后收集物料清单

6.节点审计

需要互联网访问并使用 API 公开易受攻击的 node.js库

7\。 NugetConf

使用 XPath 解析规范 XML

8\。努斯佩克

使用 XPath 解析规范 XML

9\。 OpenSSL

解析 OPENSSL_VERSION_NUMBER 宏定义

10\。开放源码软件索引

与 Node Audit 类似,它使用 Internet 使用 API 并报告未在 NVD 中列出的漏洞

11\。 Ruby 捆绑器审计

负责执行捆绑审计报告并将结果添加到最终报告中

实验分析仪

除此之外,Dependency-Check 还具有一些实验性分析器。由于产生误报和误报的可能性很高,因此这些没有被广泛使用。开发团队需要注意以下分析器:

1\。自动配置

扫描项目配置文件以获取 AC_INIT 元数据

2\。制作

提取项目初始化和版本设置命令

3\。可可豆荚

扫描规范文件以提取依赖信息

4\。作曲家锁

通过解析 PHP Composer Lock 文件提取准确版本的依赖项

5\。去语言模组

确定使用的依赖项

6\。去语言部门

直接从锁文件解析依赖文件

7\。 PE分析仪

从 PE Headers 中获取依赖信息

8\。 Python

扫描 Python 源文件以获取 setuptools 元数据

9\。点:正则表达式

扫描 Python Pip requirements.txt 文件

10\。红宝石宝石

扫描 Gemspec 初始化块以获取元数据

11\。迅速

处理 swift 包文件

Dependency-Check 扫描文件并通过一系列分析器收集有关项目依赖关系的信息。收集的这些信息(称为证据)分为三类:供应商、平台和版本信息。然后将其标记为置信度级别(低、中、高和最高)。置信度评级是一种标记必须验证的潜在漏洞的方法。

示例:Dependency-Check 的 JarAnalyzer 从 Manifest、pom.xml 和扫描的 JAR 文件中的包名称中累积数据。在收集了必要的信息后,它会采用一个流程将这些信息放入一个或多个证据桶中。

确定依赖项的通用平台枚举 (CPE),并为结果分配一个置信度。该置信水平基于所用证据的最低置信等级。已识别的 CPE 记录在 Lucene 索引中,随后与国家漏洞数据库 (NVD) 中的常见漏洞和暴露(CVE) 条目进行交叉检查,NVD 是一个免费使用的已知信息安全漏洞数据库。

Dependency-Check 会在运行后立即使用 NVD 数据自动更新。这些更新可确保报告仅显示最新数据。

对结果进行比较,并以 HTML、XML、CSV 和 JSON 等各种格式提供给开发人员以采取适当的措施。但是,在报告漏洞分数时,依赖项检查工具不会考虑您的依赖项的上下文。因此,开发人员必须验证漏洞是否暴露了他们的代码。

依赖检查报告

熟悉以下术语将有助于您阅读 Dependency-Check 报告:

● 依赖

扫描的依赖文件名

● CPE

通用平台枚举标识符

● CVE 计数

关联 CVE 的数量

● CPE 信心

确定 CPE 的可靠性

● 证据数量

从依赖项中提取的用于识别 CPE 的数据

一旦开发人员在依赖检查之后收到报告,他们需要通过对误报和误报进行排序来验证 CPE 是否被正确识别。这种排序解释如下:

误报

依赖性检查方法可能会在报告中引发误报,可以使用 HTML 报告中标识的每个 CPE 旁边的抑制按钮来抑制这种情况。通过单击该按钮,您可以将 XML 复制到抑制 XML 文件中。

假阴性

要识别漏报,您可以使用数据库的“显示:显示易受攻击的依赖项”功能来查看没有 CPE 匹配的依赖项。在识别出没有 CPE 匹配的易受攻击的依赖项后,您可以创建证据来确定 CPE。

一旦开发人员解决了误报和误报,他们需要检查已识别的 CVE 是否易受其软件环境的影响。但是,需要注意的关键一点是,即使多次找到 CPE,报告也只会列出一次。这将责任转移到开发人员身上,以确定需要缓解漏洞的位置。

OWASP 依赖检查:优势

OWASP Dependency-Check 使开发人员能够跟踪和消除从开源载入的任何已知漏洞。

它通过保护软件供应链来确保应用程序的安全性。因此,Dependency-Check 已成为开发人员的首选工具,因为它具有以下优点:

1. 免费工具

由于 OWASP 基金会是一个非营利组织,因此依赖检查工具是免费的。开发团队不必经历审批周期或面临预算限制。他们可以从互联网上下载该工具,并在构建应用程序时毫不费力地开始使用它来应对外部威胁。

2. 易用性

由于不涉及概念证明 (POC) 过程,因此开始使用 Dependency-Check 工具是一个三步过程——下载、安装和执行。开发人员不必通过任何文档来部署它。只要您有良好的互联网连接,它大约需要十分钟才能运行。

但是,如果每周使用 Dependency-Check 工具,开发人员必须定期下载 JSON 文件来更新数据的本地副本。同时,每次美国国家标准与技术研究院 (NIST) 托管信息时,该工具都会更新 NVD 提要。

3. 轻量级

虽然 Dependency-Check 工具为开发人员管理开源安全带来了庞大的支持生态系统,但它非常轻量级。它的尺寸相对较小,扫描代码的过程很简单。如前所述,定期更新本地副本是开发人员所需的所有维护时间。

4. 报告

Dependency-Check 为开发人员提供了多种报告选项,以有效地检查和纠正任何开源漏洞。该工具的导出功能允许团队专注于关键指标并审查他们的漏洞管理计划。开发团队可以选择可靠的漏洞指标来减轻安全威胁,而不是收集所有可用的指标。

Dependency-Check 工具不断更新数据库信息,以确保没有漏洞未报告。

5. 兼容性

该工具与各种语言、技术和平台的兼容性确保了无缝的软件安全管理。它还提供对基于 Java 和 .NET 的产品的完整支持,对 Node.js、Ruby 和 Python 项目的实验性支持,并且与 C 和 C++ 语言部分兼容。它可以通过插件与 Maven、Jenkins 和 Gradle 集成,也可以通过 CLI 作为 Ant 任务运行。其他 OWASP 工具或第三方解决方案可以补充 Dependency-Check 以提供全面的安全管理产品。当工具手动运行时,开发人员还可以拥有一个自动化插件。

总结

OWASP Dependency-Check是开发人员管理应用程序安全性的重要工具。它被认为是针对软件供应链威胁的最小或第一级检查点。该工具可以与其他付费工具集成,这些工具可提供额外的安全保护以抵御漏洞并发布安全产品。

Logo

CI/CD社区为您提供最前沿的新闻资讯和知识内容

更多推荐