规则引擎自动化 (Pro)

注意:规则引擎是 DefectDojo Pro 专属功能。

DefectDojo 的规则引擎允许您构建自定义工作流和批量操作,用于处理发现项及其他对象。规则引擎允许您构建当某个对象匹配某条规则时被触发的自动化操作。

规则引擎只能通过 Pro UI 访问。

在寻找图形编辑器? 规则引擎 2.0 以可视化节点图的形式构建自动化流程,并新增了分支、诸如工单和消息等出站操作、按运行记录的执行痕迹,以及投递台账。两套引擎并行运行,现有规则也可以转换到新引擎。

启用规则引擎

规则引擎目前处于测试版,默认关闭。超级用户可以在云端实例和本地部署实例上,通过设置 > 功能开关将其启用。参见功能开关

目前,规则只能针对发现项创建,未来将支持更多对象类型。

规则可以在所有规则页面手动触发,也可以设置为按周期性排程自动运行。规则被触发后,会应用于所有匹配所设筛选条件的现有发现项。

可用的规则操作

每条规则在成功触发时(即匹配所设的筛选条件时),可以对一个发现项应用以下一项或多项更改。

字段修改

  • 设置发现项的字段,包括标题、描述、严重程度、CVSSv3 向量、活动、已验证、风险已接受、误报、已缓解
  • 在发现项的标题或描述中追加或前置文本
  • 设置优先级 — 覆盖发现项上计算得出的优先级值(覆盖自动优先级计算)
  • 设置风险 — 覆盖发现项上计算得出的风险级别(覆盖自动风险计算)
  • 按给定的数值对发现项的优先级值进行加、减、乘或除运算

分配与归属

  • 设置负责复核发现项的用户
  • 将某个组指定为发现项的所有者
  • 在发现项上设置缓解策略 — 为发现项分配一个预先配置好的缓解策略
  • 添加到风险接受 — 将发现项添加到现有的风险接受记录中(设置 risk_accepted=True、active=False,并处理 Jira 集成和端点状态)

标签、备注和提醒

  • 为发现项添加标签
  • 为发现项添加备注
  • 在 DefectDojo 中使用自定义文本创建提醒

筛选条件

当一个发现项满足特定的筛选条件时,规则会自动被触发。有关可用于创建规则操作的筛选条件的更多信息,请参阅筛选条件索引页面。

创建新规则

从"新建规则"页面开始此流程。在 Pro UI 中,在管理类别下,展开规则引擎下拉菜单,然后点击**+ 新建规则**。

image

步骤 1:为规则命名

输入一个标签,作为新规则的标识符,然后点击"下一步"。

image

步骤 2:使用筛选条件设置触发条件

您将看到一张"所有发现项"表格。使用该表格设置筛选条件,以筛选出您希望规则作用于的发现项集合。有关如何为表格应用筛选条件的更多信息,请参阅我们的 Pro UI 指南

该表格会预览您筛选出的现有发现项列表。

例如,在这张截图中,我们正在筛选出所有属于"Product One"的发现项。一旦我们应用此筛选条件(通过点击筛选条件菜单外部),它就会被添加到我们的适用筛选条件列表中。

image

在上面的截图中,所有属于产品"Product One"的发现项都将被执行相应操作。

设置好您想要应用的一组筛选条件后,点击"下一步"按钮。

步骤 3:设置规则操作

操作下拉菜单中,选择您希望应用于符合步骤 2 中所有筛选条件的发现项的操作。可以应用多个操作。

您还可以设置额外的条件值,以便在满足特定条件时执行额外的操作。

image

例如,在上面的截图中,我们设置了 4 个规则操作,其中两个是条件性操作。

所有符合筛选条件的发现项都会触发以下非条件性操作:

  • 该发现项将被分配给用户组"Group 1"
  • 该发现项将被打上 all_group_1 标签

除了上面列出的两个非条件性操作之外,任何同时满足筛选条件和以下附加条件的发现项,还会触发这些条件性操作:

  • 如果发现项的严重程度为严重,将被打上 critical_group_1 标签。
  • 如果发现项的严重程度为高,将被打上 high_group_1 标签。

步骤 4 - 预览您的规则

“规则预览"会显示此规则一旦运行后将会更改的所有发现项,以及将要执行的操作的预览。确认您对拟议的更改感到满意后,点击"提交"以保存您的规则。

如果您认为此规则没有被正确应用,可以点击"返回"按钮,回到之前的任意一个步骤。

image

例如,在上面的截图中,我们看到了一份此规则一旦运行后将受影响的发现项列表。从发现项列表右侧的列中可以看到,新的标签和所有者将被应用到这些发现项上。

系统会再次提示您确认要创建此规则。请注意,该规则不会立即生效,必须手动触发。

运行规则

在"所有规则"页面中,您可以选择希望运行的规则。点击规则标题即可查看其详细信息。

image

在此页面上,您可以在元数据下查看有关此规则的详细信息,包括该规则上次被触发的时间。您还可以在规则预览下查看此规则新一次运行将影响到的发现项预览。

要运行此规则,请点击绿色的"运行规则"按钮。确认要运行该规则后,会出现一条消息,提示该规则已排队,将在后台运行。

该规则成功运行完成后,规则描述中"规则元数据"部分的"已更改项目数"会随之更新。

规则元数据参考

  • 规则对象:该规则所管理的对象。
  • 规则名称:该规则的名称。
  • 筛选条件:该规则所应用的筛选条件数量。
  • 操作:该规则所执行的操作数量。
  • 所有者:创建该规则的用户。
  • 状态:该规则上一次执行时的状态报告。 “E” = “Error”(错误),“R” = “Running”(运行中),“S” = “Success”(成功)。
  • 上次运行:该规则上一次执行的时间戳。
  • 已更改项目数: 上一次规则执行中被更改的对象数量。
  • 已跳过项目数: 上一次规则执行中被跳过的对象数量。如果一个被筛选出的对象已经符合某个规则操作作用于它的"结果”(例如,它已经具有某个规则操作将要添加的标签),该对象就会被直接跳过。