全局组件去重(专业版) (Pro)
全局组件去重是 DefectDojo Pro 的一种算法,它根据发现项所引用的组件名称和版本,在所有产品范围内识别重复的发现项。它适用于软件成分分析(SCA)工具场景:同一个存在漏洞的依赖项(例如 timespan@2.3.0)可能出现在多个产品中,而您希望 DefectDojo 将这些出现情况都视为同一个原始发现项的重复项。
与其他去重算法不同,全局组件匹配并不局限于单个产品或测试活动范围内。导入到产品 B 中的发现项可以被标记为产品 A 中某个较早发现项的重复项,即使这两个产品彼此无关。
全局组件 与 全局位置的对比: 全局组件仅根据组件名称和版本进行匹配。如果您的实例使用了位置(Locations)数据模型,全局位置去重是更精确的后继方案——它以完整的 Package URL 作为依赖项的键,并且还能在各产品之间对 URL/DAST 发现项进行去重。请参阅该页面的对比表以确定应选择哪种方案。
启用全局组件算法
全局组件去重由一个功能开关控制,默认关闭。超级用户可以在云端和本地部署实例上通过设置 > 功能开关将其启用。请参阅功能开关。
启用该功能后,全局组件将会在调优器中的同工具去重和跨工具去重设置的去重算法下拉菜单中显示为可选项。
配置全局组件去重
全局组件可以应用于同工具去重、跨工具去重,或两者兼用,并按安全工具在设置 > 发现项工作流程中进行配置(在仍使用旧版菜单布局的实例上为设置 > Pro 设置 > 去重设置;请参阅设置菜单)。
同工具
当您希望对单个 SCA 工具在多个产品中产生的发现项进行去重时,请使用搭配全局组件算法的同工具去重。
- 打开同工具去重选项卡。
- 从安全工具下拉菜单中选择该 SCA 工具(例如
Dependency Track Finding Packaging Format (FPF) Export)。 - 将去重算法设置为全局组件。
- 提交表单。
此算法不使用哈希代码字段,选择该算法后哈希代码字段会被隐藏。
跨工具
当您希望在不同的 SCA 工具和产品之间对同一组件的发现项进行去重时,请使用搭配全局组件算法的跨工具去重。
跨工具匹配要求在每一个需要参与的工具上都配置全局组件。
- 打开跨工具去重选项卡。
- 对于每一个需要纳入的工具:从安全工具下拉菜单中选择该工具,将算法设置为全局组件,然后提交。
匹配原理
在以下情况下,新的发现项会被标记为现有发现项的重复项:
- 组件名称和组件版本完全匹配,并且
- 在 DefectDojo 实例的任何位置——任何产品或测试活动中——存在具有相同组件名称和版本的较早发现项。
组件版本匹配是精确匹配。timespan@2.3.0 的发现项不会与 timespan@2.3.1 的发现项去重。
此算法会忽略测试活动范围的去重设置;匹配始终是全局性的。
示例
假设已在 Dependency Track Finding Packaging Format (FPF) Export(同工具)以及某个通用发现项导入工具(跨工具)上启用了全局组件:
| Step | Import | Into Product | Result |
|---|---|---|---|
| 1 | 针对 timespan@2.3.0 的 Dependency Track 扫描 | Application 0 | 创建 1 个活动发现项 |
| 2 | 同样的 Dependency Track 扫描 | Application 1 | 创建 1 个发现项,标记为 Application 0 中发现项的重复项 |
| 3 | 针对 timespan@2.3.0 的通用发现项导入 | Application 2 | 创建 1 个发现项,标记为 Application 0 中发现项的重复项(跨工具匹配) |
| 4 | 针对 timespan@2.3.1 的 Dependency Track 扫描 | Application 3 | 创建 1 个活动发现项——版本不同,未匹配 |
每个重复的发现项都会在发现项页面底部的重复项链中显示其原始发现项。
跨产品可见性
由于全局组件匹配会跨越产品边界,重复项链中的原始发现项可能位于查看该重复项的用户无权访问的产品中。
在这种情况下,该发现项仍然可见并被标记为重复项,但用户将无法打开或跳转到原始发现项。在为发现项对产品级访问控制较为敏感的工具启用全局组件之前,请考虑这一点。
恢复原设置
要停止对某个工具使用全局组件,请打开其去重设置,并将算法切换回某个作用域受限的选项。
对于同工具去重:
- 哈希代码
- 来自工具的唯一 ID
- 来自工具的唯一 ID 或哈希代码
对于跨工具去重:
- 哈希代码
- 已禁用
更改算法会触发对该工具现有发现项的去重哈希值进行后台重新计算。