管理记录

注意:上游连接器是 DefectDojo Pro 专属功能。

首次运行 Discover(发现)操作后,您应该会在 Manage Records and Operations 页面上看到已映射或未映射记录的列表。

什么是记录?

记录(Record)是 DefectDojo 产品与**供应商对等产品(Vendor-Equivalent-Product)**之间的一种关联。您可以通过记录列表来控制数据在您的工具与 DefectDojo 之间的流动方式。

记录会在**Discover**操作期间创建和更新,DefectDojo 每天都会运行该操作以查找新的供应商对等产品。

image

记录具有多种属性,包括:

  • 记录的状态
  • 记录导入数据所指向的产品
  • 记录被(Discover 流程)首次发现最近发现的时间
  • 记录映射被用户最终确定的时间
  • 指向 DefectDojo 产品的链接

记录是如何映射的

每条记录都需要指定一个映射。映射会告诉 DefectDojo 应将该工具的扫描数据存储到何处。已映射的记录会将供应商对等产品关联到某个 DefectDojo 产品,并通知连接器开始向该位置导入扫描数据(以测试活动和测试的形式)。

您可以自行指定映射,也可以让 DefectDojo 自动指定映射。

自动映射

如果您启用了自动映射(Auto-Mapping),新记录会自动映射到相应产品。每当 DefectDojo 发现(Discover)一条新记录时,系统会自动为该记录创建一个匹配的 DefectDojo 产品。该记录随后会存放在已映射记录中,表示它已准备好向 DefectDojo 导入数据。

如果您未启用自动映射,则可以自行决定数据应流向何处。每当连接器(通过 Discover)发现一个新的供应商对等产品时,都会在您的未映射记录列表中添加一条新记录,随后您可以手动将该记录分配给 DefectDojo 中一个新建或已有的产品。

映射 - 示例工作流程:

David 刚刚为他的 BurpSuite 工具完成了连接器设置,并运行了一次 Discover 操作。David 将 Burp 配置为扫描 4 个不同的“站点(Sites)”,因此 DefectDojo 会为每个站点创建一条新记录。

  • 如果 David 决定使用自动映射,DefectDojo 会为每个站点创建一个新产品。此后,每当 DefectDojo 运行 Synchronize(同步)操作时,连接器都会通过该记录映射,直接将扫描数据从该站点导入到对应产品中。
  • 如果 David 保持自动映射为关闭状态,DefectDojo 仍会发现这 4 个站点并创建记录,但在 David 自行创建映射之前不会导入任何数据。
  • David 随时可以更改这些映射的设置方式。也许他希望将几个不同 Burp 站点的输出合并到一个产品中;也许他希望有一个产品能记录来自多个工具(包括 Burp)的扫描数据。David 只需更改这些记录的映射,就可以轻松改变 Burp 扫描数据在 DefectDojo 中的存储位置。

记录如何与产品交互

记录一旦被映射,DefectDojo 就会准备好通过同步操作导入您工具的扫描结果。连接器可以与其他 DefectDojo 导入流程或交互式测试并行工作。

  • 记录映射的设计是非侵入式的。如果您将某个产品映射到一条已包含现有测试活动或发现项的记录,数据同步过程不会影响或覆盖这些现有的测试活动和发现项。
  • 通过连接器创建的所有数据都会存储在一个名为 Global Connectors 的测试活动下。该测试活动会为映射到该产品的每个连接器分别创建一个单独的测试。

image

这样一来,就可以将来自多个连接器的扫描数据发送到同一个产品。所有数据都会存储在同一个测试活动中,但每个连接器会将数据存放在各自单独的测试里。

如需详细了解产品、测试活动和测试,请参阅我们的产品层级概述

记录状态 - 术语表

每条记录都有一个关联状态,用于说明该记录的工作情况。

要查看某个连接器的完整记录列表,请从 Connect > Upstream 打开该连接器 —— 该页面标题为 All <Connector> Records。尽管名称如此,它列出的是该连接器的所有记录,而不是该实例上的全部记录。

该列表可以通过状态(State)列按状态筛选,并且可以同时选择多个状态。这是在大规模连接器体系中回答最常见问题的最快方式 —— 哪些记录在等待我进行映射?(New)以及哪些记录已停止报告?(MissingError)—— 而无需逐条查看每条记录。

并非每个状态都适用于所有连接器。Stale 状态由发现项导入流水线设置,因此只会出现在导入发现项的连接器上;**资产连接器(Asset Connectors)**永远不会进入该状态,因此在其筛选选项中不会提供该状态。

New

New 状态表示这是一条 DefectDojo 已发现的未映射记录。它可以被映射到某个产品,也可以被忽略。要将新记录映射到产品,请参阅我们的编辑记录指南。

Good

Good 表示某条记录已被映射且运行正常。后续的 Discover 操作会检查对应的供应商对等产品是否仍然存在,以确保同步操作能够正常运行。

Ignored

Ignored 状态表示该记录已被成功发现,但 DefectDojo 用户决定不将其数据映射到任何产品。

警告状态:Stale 或 Missing

如果工具与 DefectDojo 之间的连接发生变化,记录的状态会随之改变,以便让您知晓。

Stale

当相关的产品、测试活动或测试从 DefectDojo 中被删除后,映射会变为“Stale”状态。映射本身仍然存在,但 DefectDojo 中已没有可供该工具数据导入的位置。

Stale 记录可以重新映射到现有产品,如果该扫描数据已不再相关,也可以选择忽略。

Missing

如果某条记录已被映射,但 DefectDojo 未能检测到其源数据(或供应商对等产品),该记录将被标记为 Missing

DefectDojo 连接器能够适应名称变更、目录变更及其他数据变化,因此出现该状态很可能是因为相关的供应商对等产品已从您所使用的工具中被删除。

如果您确实打算从工具中移除该供应商对等产品,可以删除这条 Missing 记录。否则,您需要在该工具内排查问题,以便源数据能够被正确发现。

Error

Error 表示 DefectDojo 无法处理该记录。所有连接器类型都会提供此状态,并且可以与上述其他状态一起在状态筛选器中选择,因此它是在一次运行后快速检查某个连接器是否有需要关注的问题的最快方式。

编辑记录:重新映射、忽略或删除

记录可以在Manage Records & Operations Page页面中被编辑、忽略或删除。

尽管已映射和未映射的记录位于不同的表格中,但它们的编辑方式是相同的。

在记录表格中,点击某条记录状态列旁边的蓝色 ▼ 箭头。在弹出的菜单中,您可以选择编辑记录删除记录

image

更改记录的映射

点击编辑记录会打开一个窗口,您可以在其中更改该记录在 DefectDojo 中的目标产品。您既可以从下拉菜单中选择一个现有产品,也可以输入您想要创建的新产品名称。

image

通过更改映射,可以将某条记录关联的扫描数据导向流入不同的产品。

从右侧的下拉菜单中选择,或输入一个新产品的名称。

编辑记录的状态

也可以在此菜单中更改记录的状态。通过在状态下拉列表中选择相应选项,可以将记录在 Good 与 Ignored 之间切换。

忽略一条记录

如果您希望“关闭”某条记录,或不再理会它发送给 DefectDojo 的数据,可以选择将该记录设为“Ignore(忽略)”。被“Ignored”的记录会移动到未映射记录列表中,并且不会再向 DefectDojo 推送任何新数据。

您可以忽略一条已映射的记录(这将移除其映射),也可以忽略一条新记录(从未映射记录列表中操作)。

恢复已忽略的记录

如果您想取消某条记录的 Ignored 状态,可以通过同一个状态下拉菜单将其改回 New。

  • 如果启用了自动映射记录(Auto-Map Records),那么在下一次 Discover 操作运行后,该记录会恢复到其原来的映射。
  • 如果未启用自动映射记录,DefectDojo 不会自动恢复此前的映射,您需要为该记录重新设置映射。

删除一条记录

您也可以删除记录,这会将其从未映射或已映射记录表格中移除。

请注意,Discover 功能始终会导入工具中的全部记录 —— 也就是说,即使某条记录从 DefectDojo 中被删除,它之后仍会被重新发现(并再次出现在待映射的记录列表中)。

  • 如果您打算从扫描工具中移除相应的供应商对等产品,那么删除该记录是一个不错的选择。否则,下一次 Discover 操作会发现相关数据缺失,该记录的状态将变为“Missing”。
  • 但是,如果相应的供应商对等产品仍然存在,它会在未来的 Discover 操作中被再次发现。为避免这种情况,您可以选择忽略该记录。

这会影响已导入的数据吗?

不会。即使某条同步记录被删除,由它创建的所有发现项、测试和测试活动仍会保留在 DefectDojo 中。删除一条记录或一项配置只会移除数据流转过程,不会删除 DefectDojo 或您工具中的任何漏洞数据。