相似发现项 (Open Source)
虽然去重会在导入时自动运行,但相似发现项是位于查看发现项页面上的一个手动交互式工具。它会显示同一资产中与您正在查看的发现项相似的其他发现项,并允许您手动将它们链接为一个重复项集群。
当自动去重未能将您认为应属于同一组的发现项分组在一起时,或当您想探索资产中还有哪些内容与当前漏洞相似时,可以使用此工具。
Where to find it
打开任意发现项即可进入其查看发现项页面。向下滚动至相似发现项面板。标题中的数字表示该资产中与当前发现项的值相匹配的发现项数量。

该面板默认是折叠的。点击面板标题(或右侧的箭头/筛选按钮)即可展开面板并运行查询。
How Findings are matched
打开面板时,DefectDojo 会使用当前发现项的值预填筛选条件,并在同一资产中搜索其他匹配的发现项。用于初始匹配的字段包括:
- 漏洞 ID(例如 CVE 标识符)
- CWE
- 文件路径
- 行号
- 工具唯一 ID
- 测试类型
- 资产(及资产类型)
当前发现项始终会从其自身的匹配结果中排除。匹配范围限定在资产内,因此相似发现项不会跨资产进行匹配。如果任一测试活动启用了测试活动级别的去重,则跨越测试活动边界的匹配项将无法被链接(参见下方的操作)。
这与自动去重算法不同,后者通过比较 hash_code(或工具唯一 ID)来判定匹配。相似发现项有意采用更宽泛的匹配范围,以便您能发现严格哈希匹配可能遗漏的相关发现项。
Refining the match
初始值仅仅是一个起点。该区域顶部的筛选面板可让您使匹配更严格或更宽松:移除某个字段以扩大结果范围,或添加条件(严重程度、状态、端点、日期、EPSS 等)以缩小结果范围。

- 清除筛选条件会清空所有字段,以便您从头开始构建查询。
- 重新开始会返回到基于当前发现项值的默认匹配结果。
Reading the results
每个匹配的发现项都会列在一个表格中。关系列会告诉您该发现项与您正在查看的发现项之间的关系:
- 原始 – 当前发现项所属重复项集群的根/原始发现项
- 重复 – 已被标记为当前发现项重复项的发现项
- 相似 – 尚未被纳入当前发现项集群的匹配项

该表格还会显示严重程度、标题、日期、状态、测试、测试活动、CWE、漏洞 ID、EPSS 分数、文件(含行号),以及 JIRA(当启用了 JIRA 集成时)。每一列都支持排序,结果也可以导出(复制、Excel、CSV、PDF)。
Actions
如果您对某个发现项拥有编辑权限,操作列会提供一个下拉菜单,让您直接在此页面上管理重复项集群:

- 标记为重复 – 将相似发现项链接到当前发现项的重复项集群中。
- 设为原始 – 将某个发现项提升为原始发现项(集群的根节点)。
- 重置发现项重复状态 – 将某个发现项从其所属集群中移除。
当某项操作无效时,可能会不可用(显示为无),例如相似发现项位于不同的测试活动中且启用了测试活动级别的去重,或者该发现项已经是另一个集群的原始项。这些操作所处理的重复关系与自动去重所使用的关系完全相同,因此您在此处标记的发现项,其表现与自动检测到的重复项完全一致。
Enabling and disabling Similar Findings
相似发现项功能由一个全局系统设置控制。前往配置 > 系统设置,切换启用相似发现项开关。此功能默认已启用。

由于该查询会遍历整个资产,因此在大型资产上可能会消耗较多资源。如果您发现查看发现项页面加载缓慢,可以在此处禁用该功能,或使用 DD_SIMILAR_FINDINGS_MAX_RESULTS 环境变量(默认值为 25)限制返回的结果数量。