发现项 (Pro)
组织 → 资产 → 测试活动 → 测试 → 发现项
概述
发现项是产品层级结构中的最底层,用于跟踪和管理各个漏洞,是 DefectDojo 规范并指导安全工具报告与修复流程的主要方式。无论漏洞是由 SonarQube、Acunetix 报告,还是由您团队的自定义工具报告,发现项都能让您以相同的方式管理每一个漏洞。
发现项示例包括:
- Cookie 未标记为 HttpOnly
- 版本过旧(PHP)
- 带外代码执行(PHP)
- 版本过旧(MySQL)
- 检测到备份源代码
- 盲跨站脚本
除了存储漏洞数据并提供修复框架外,DefectDojo 还通过以下方式增强您的发现项:
- 自动为发现项添加相关的 EPSS 分数,以描述其可利用性
- 自动将安全工具的严重程度指标转换为每个发现项的严重程度分数,并根据您资产的 SLA 配置为该发现项设定 SLA。有关 SLA 配置的更多信息,请点击此处。
总体而言,发现项旨在与产品层级结构协同工作,规范您的工作,并对每个资产应用一致的方法。
访问发现项
可以通过侧边栏访问发现项。子菜单提供对活动和已缓解发现项、所有发现项(无论开启或关闭状态)、发现项组、发现项模板以及新建发现项工作流程的访问。也可以在包含相应发现项的测试内访问各个发现项。
[风险已接受的发现项] (/triage_findings/findings_workflows/os__risk_acceptance/) 可以从侧边栏的风险接受部分访问。

权限
每个发现项都属于某个测试,这使 DefectDojo 能够保留最初发现该漏洞的扫描或评估记录。
由于发现项属于测试,对发现项的访问权限由用户对包含该测试的资产的访问权限决定。测试没有独立的访问控制列表。
发现项视图
发现项视图包含多种表格,帮助您一目了然地了解发现项的状态。
发现项概览
- 描述:发现项的描述(根据发现项类型自动添加,或手动创建)。
- 缓解措施:建议的缓解步骤。
- 通用缓解策略:所选发现项的标准化缓解策略。 缓解策略可以在侧边栏的配置 → 缓解策略中查找和编辑。
- 影响:未解决该发现项可能造成的潜在影响。
- 参考资料:用于交叉引用第三方扫描工具对该发现项具体描述的 URL。例如,参考资料可以是指向发现项目录中相关条目的链接,或单个公告 URL。
- 文件:为该发现项添加的用于提供背景信息的任何文件。
- 备注:用户就该发现项留下的备注。将备注标记为私密将意味着它不会包含在任何包含所选发现项的生成报告中。
元数据
- ID:DefectDojo 的唯一发现项 ID。
- 组织、资产、测试活动和测试:所选发现项的父级对象。
- 状态:发现项的状态(例如,活动、已验证、误报、重复、超出范围和缺陷审查中)。
- 严重程度:该发现项的严重程度等级,自动应用。
- 如上所述,DefectDojo 会自动将安全工具的严重程度指标转换为每个发现项的严重程度分数,并根据您资产的 SLA 配置为该发现项设定 SLA。
- 风险:一个考虑发现项可利用性的 4 级排名系统,自动应用。
- 优先级:应用于所有发现项的计算数值排名,使您能够在上下文中快速了解漏洞情况。
- 存续时间:所选发现项存在的时长。
- SLA:发现项计划解决的截止日期。
- 类型:发现项是通过静态还是动态应用安全工具检测到的(静态、动态或静态/动态)。
- 位置和行号:发现所选发现项的文件和行号。
- 组件名称和版本:发现所选发现项的组件的名称和版本。
- 发现日期:发现该发现项的日期。
- 计划修复日期和版本:计划修复该发现项的日期,以及将实施修复的受影响组件版本。
- 服务:受所选发现项影响的关联服务(资产内自成一体的功能单元)。填写该字段后,它将被纳入去重匹配(即服务字段相同的发现项将被去重)。
- 报告人:发现该发现项的用户。
- CWE:发现项的 CWE 弱点分类。一个发现项可以携带多个 CWE——一个主要 CWE,加上报告工具提供的任何附加 CWE。主要 CWE 用于传统去重和哈希码计算;完整的 CWE 集合还可以通过 Pro 版基于集合的哈希码字段用于匹配(参见去重调优)。
- CWE 描述的是一类弱点(例如“SQL 注入”),而不是特定的漏洞实例——后者是漏洞 ID 的作用。
- 漏洞 ID:与发现项关联的公开认可的漏洞标识符,例如 CVE、GHSA 或其他标准化公告引用。在 DefectDojo Pro 中,它们还用于执行 EPSS 和 KEV 查询。
- 漏洞 ID 作为一等记录存储,因此同一个 CVE 只会被跟踪一次,并由引用它的每个发现项共享。您可以在漏洞浏览器中查看它们及其 EPSS 和 KEV 值。参见 EPSS / KEV。
- 来自工具的唯一 ID:由来源工具分配给特定发现项实例的稳定标识符。唯一 ID 旨在跨重复扫描保持一致,使工具能够长期识别同一发现项。
- 与漏洞 ID 不同,该值是报告工具专有的,不是公开的漏洞引用。
- 示例:
finding-12345
- 示例:
- 与漏洞 ID 不同,该值是报告工具专有的,不是公开的漏洞引用。
- 来自工具的漏洞 ID:由来源工具分配的专有漏洞或规则标识符,用于描述所检测到的漏洞类型。
- 与来自工具的唯一 ID 不同,该标识符并非某个发现项独有,可能出现在多个匹配同一检测规则的发现项上。
- 与漏洞 ID 不同,这些标识符特定于报告工具,并未公开标准化。
- 示例:
semgrep.rule.lang.security.sql-injection
- 示例:
- EPSS 分数/百分位:该 CVE 的 EPSS 分数和百分位。
- 已知被利用:是否已确认该漏洞已被利用。
- 涉及勒索软件:该漏洞的利用是否涉及勒索软件。
- KEV 日期:该发现项被添加到 KEV 目录的日期。
- 发现工具:识别该漏洞的工具类型。
- CVSSv3 和 CVSSv4 向量与分数:所选发现项的 CVSS3 和 CVSS4 向量与分数。
- 集成器工单:与发现项关联的第三方问题跟踪系统工单编号。
易受攻击的端点
本节包含所选发现项所影响的端点表格,以及任何相关的元数据。
其他详情
- 请求/响应对:客户端发送的消息副本及服务器对该请求的回复。
- 重现步骤:重现该发现项的步骤。
- 严重程度说明:说明为何该发现项被赋予特定严重程度等级的书面描述。
发现项数据
发现项需要以下元数据:
- 名称
- 日期
- 严重程度
- 描述
除了与发现项视图中的表格相对应的元数据外,可选元数据字段还包括:
- 标签:已添加到该发现项的任何标签。
- 负责人:将负责所选发现项的用户组。
- 推送到 Jira:将发现项推送到 Jira 以创建工单。
- 推送到集成器:将发现项推送到任何已集成的第三方问题跟踪系统。
- 风险和优先级设置:提供覆盖 DefectDojo 对发现项风险和优先级自动计算结果的选项。
- 要添加的端点:可能受所选发现项影响、但未反映在上述系统/端点列表中的易受攻击端点。
- 缺陷审查请求人:记录是谁请求对相关缺陷进行审查。
- SAST 源对象、行号和文件路径:攻击向量的源对象、行号和文件路径。
- SAST 汇聚对象:攻击向量的汇聚对象。
- 出现次数:当扫描器发现并聚合多个漏洞时,源工具中记录的出现次数。
- 发布日期:该漏洞的发布日期。
- 工作量估计:修复该发现项所需的工作量级别(例如,低、中或高)。
具体可用的元数据取决于揭示该发现项的解析器/扫描器。有些解析器/扫描器只提供标题和严重程度等基本信息,而另一些则包括 CVSS 向量、易受攻击的组件、端点、请求/响应对以及其他特定于扫描器的元数据。
这些元数据可改善您整个安全计划中的筛选、报告和优先级排序,并支持长期跟踪和趋势分析。更多详情和元数据说明,请参见此处。
去重
DefectDojo 具备去重功能,可帮助识别和管理代表同一底层漏洞的发现项。当扫描结果从一个或多个工具导入时,DefectDojo 会使用可配置的匹配逻辑来识别代表同一漏洞的发现项。
去重可防止同一漏洞在被相同或不同扫描器反复发现时多次出现,从而使修复历史记录始终附属于单一发现项。
有关去重的更多信息,请参见此处。
重新导入
DefectDojo 的重新导入功能允许在导入新扫描结果时更新发现项。当扫描被重新导入时,DefectDojo 会将传入的结果与现有发现项进行比较,并更新匹配的记录,而不是创建全新的记录。这保留了状态变更、修复历史、评论和归属信息等有价值的背景信息,为发现项在多个测试周期中的生命周期提供了连续记录。
有关重新导入功能的更多信息,请参见此处。
风险接受
风险接受是一种可应用于发现项的特殊状态,用于正式记录并落实在不立即修复的情况下确认发现项的决定。
有关风险接受的更多信息,请参见此处。
状态
在 DefectDojo 中创建的每个发现项都有一个状态,用于传达相关信息,并帮助您的团队跟踪问题解决的进度。
有关状态的更多信息,请参见此处。
使用发现项
创建发现项
虽然大多数发现项是通过扫描导入和集成自动生成的,但 DefectDojo 也支持手动创建发现项。手动发现项适用于跟踪通过渗透测试、架构审查、合规评估、漏洞赏金计划、顾问咨询或其他不产生扫描器输出的活动所识别出的漏洞和安全问题。
可以通过点击侧边栏发现项部分中的新建发现项,或在您希望添加发现项的测试的齿轮菜单中选择添加发现项来手动添加发现项。
编辑发现项
发现项旁边的 ⋮ 竖排菜单包含以下功能:
- 编辑发现项:编辑该发现项。
- 复制发现项:在另一个测试中创建该发现项的副本。副本可以保存到您有编辑权限的同一测试活动内的任何测试。当同一漏洞需要在多个测试环境中分别跟踪时,复制功能很有用。
- 关闭发现项:启动关闭该发现项的流程。
- 请求审查:启动同行审查流程,并将发现项的状态更改为“审查中”。有关同行审查的更多信息,请参见此处。
- 添加风险接受:启动风险接受流程。更多信息请参见此处。
- 添加文件:启动向发现项添加文件的流程(见下文)。
- 添加备注:启动向发现项添加备注的流程。
- 添加自定义字段:弹出窗口,允许您添加并定义要应用于该发现项的自定义字段。
- 推送到 Jira:将发现项推送到 Jira 以创建工单。
- 推送到集成器:将发现项推送到任何已集成的第三方问题跟踪系统。
- 删除发现项:删除所选发现项。
- 发现项历史:显示所选发现项的历史记录。
向发现项附加文件
您可以为任何发现项附加文件,以提供额外的背景信息——例如漏洞实际发生时的截图或概念验证图片。
支持的文件类型包括:
.txt .pdf .json .xml .csv .yml .png .jpeg
.sarif .xlsx .doc .html .js .nessus .zip .fpr要向发现项附加文件,请在所选发现项的 ⋮ 竖排菜单或齿轮菜单中点击添加文件。为文件输入标题,从您的计算机中选择文件,然后点击提交。
该文件随后将出现在发现项视图中测试概览表格的文件部分。
批量编辑发现项
可以从发现项列表(例如从侧边栏访问的所有发现项表格)或特定测试内的发现项表格中批量编辑发现项。
有关如何批量编辑发现项的更多信息,请参见此处。
关闭发现项
完成某发现项的相关工作后,您可以在该发现项的 ⋮ 竖排菜单或齿轮菜单中点击关闭发现项来手动关闭它。或者,如果重新导入到 DefectDojo 的扫描不包含先前记录的某个发现项,该先前记录的发现项将自动关闭。
如果您不希望关闭任何发现项,可以在重新导入扫描表单中禁用此行为:
- 如果使用界面,请取消勾选“关闭旧发现项”复选框
- 如果使用 API,请将 close_old_findings 设置为 False
删除发现项
可以在发现项的 ⋮ 竖排菜单或齿轮菜单中删除该发现项。此操作无法撤消。
出于审计目的,建议关闭已修复的发现项,而不是删除它们。
发现项组
发现项组允许您将多个相关的发现项视为单个逻辑单元,以便进行分诊、报告和修复协调。
例如,一次扫描可能会在不同端点上生成 10 个 SQL 注入发现项。您可以将它们归入代表更广泛 SQL 注入问题的单个发现项组,而不必单独管理每一个。
发现项组并不会取代各个发现项。每个发现项仍然保留其自身的严重程度、状态、元数据、评论和修复历史。发现项组只是在其包含的发现项之上提供了一层额外的组织结构。
访问发现项组
可以通过侧边栏访问发现项组。子菜单提供对开启和关闭发现项组以及所有发现项组(无论开启状态)的访问。

创建发现项组
发现项组可以手动或自动创建。
需要注意的是,发现项组只能由单个测试内所包含的发现项创建。来自不同测试、测试活动或产品的发现项不能添加到同一个发现项组。
手动发现项组
要手动执行发现项组操作:
- 导航到某个测试内的发现项列表。
- 点击相应发现项的复选框,选择您希望添加到发现项组的一个或多个发现项。
- 点击发现项列表顶部出现的发现项组按钮。
- 点击您希望执行的相应操作。
- 添加到新发现项组:创建一个包含所选发现项的新发现项组。
- 添加到现有发现项组:将所选发现项添加到已存在的发现项组。
- 从发现项组中移除:将所选发现项从其先前所属的任何发现项组中移除。
- 点击提交。
请注意,除非所选的每个发现项都是可编辑的、未分组的且属于同一测试,否则分组功能将被禁用。
此外,请注意,从所有发现项列表中选择发现项时,唯一可执行的操作是将所选发现项从任何发现项组中移除。这是因为,如前所述,发现项组只能由单个测试内所包含的发现项创建。
自动发现项组
导入扫描时,可折叠的可选字段菜单中的分组依据功能可以根据所选的分组方式自动创建发现项组。当扫描器生成许多应统一管理的相关发现项时,此功能非常有用。
相邻的为所有发现项创建发现项组复选框具有两个功能:
- 勾选:为每个导入的发现项创建一个发现项组,即使该发现项是该组中唯一的成员。
- 未勾选:仅在确实有多个发现项需要归为一组时才创建发现项组。

如果在导入过程中未从“分组依据”下拉菜单中选择选项(例如上方截图中的发现项标题等),则不会进行分组。
如果发现项中未填写分组标准(例如组件名称、漏洞 ID、发现项标题等),则不会为其创建分组,也不会将其添加到已存在的发现项组中。
如果导入的扫描揭示了 10 个未分组的发现项,而随后重新导入同一扫描且发现项被分组,那么最初的 10 个发现项将不会被添加到该发现项组中(即,该发现项组只会包含来自重新导入的 10 个发现项,而不包含来自初始导入的 10 个发现项)。
发现项模板
发现项模板允许用户为常见的漏洞和安全问题创建可重复使用的模板。模板可以包含标题、描述、影响、重现步骤、缓解措施、参考资料及其他发现项元数据等标准化信息。
发现项模板在用户需要反复手动创建发现项、并希望避免每次重新输入相同支持信息的情况下最为有用。
访问发现项模板
发现项模板位于侧边栏的发现项子菜单中。

创建发现项模板
可以通过点击发现项模板视图左上方的新建发现项模板按钮来创建发现项模板。
随后出现的页面概述了使用发现项模板时将应用于发现项的元数据。
应用发现项模板
发现项模板在开源版 DefectDojo 和 DefectDojo Pro 之间有所不同。在 Pro 版中,发现项模板无法应用于已存在的发现项,也无法基于已存在的发现项创建。
不过,您可以使用父测试活动视图中测试旁边的 ⋮ 竖排菜单,或测试视图中的齿轮菜单,基于发现项模板手动向测试添加发现项。


报告
DefectDojo 的报告构建器允许您通过一组内容小部件组装自定义报告,运行报告,并导出结果(例如,打印为 PDF)。自定义报告可以汇总您希望与外部受众分享的发现项或端点,并可以包含品牌标识和样板文字。
有关 DefectDojo 报告构建器的更多信息,请参见此处。
导出发现项
显示发现项列表或测试活动列表的页面在左上方提供 CSV 和 Excel 导出选项。对于发现项,还可以执行快速导出,该操作将打开一个包含每个发现项相关元数据表格的新标签页。