在 playbook 中使用反应触发器

支持:

回应触发器在初始 playbook 设置期间配置,作为注入后触发器。标准触发器会在注入后立即执行,而反应触发器会根据实时修改或在活跃调查期间发生的特定事件自动执行 playbook。

特定反应触发器的可用性取决于剧本范围。 配置 playbook 时,选择提醒范围会显示提醒级事件触发器,而选择案例范围会显示案例级触发器。

通过引入基于事件的逻辑,反应触发器无需在提醒状态发生变化时手动附加 playbook。

使用场景

以下示例展示了如何使用反应触发器在提醒和支持请求级别自动执行常见的调查工作流程:

自动丰富新发现的实体(提醒范围)

  • 目标:确保与调查相关的所有实体都会自动丰富,即使这些实体是在初始提醒提取后添加的。
  • 场景:将新实体附加到活跃调查。
  • 结果:添加了实体反应触发器会检测到新实体,并自动执行富化 playbook 以提供即时声誉数据。

动态突发事件上报和通知(提醒范围)

  • 目标:在调查的严重程度增加时自动通知高级利益相关方。
  • 场景:提醒优先级从 Medium 更改为 Critical。
  • 结果:提醒优先级已更改触发器会执行一个工作流,该工作流会向支持请求分配对象发送自动电子邮件,并向突发事件响应 Slack 渠道发送通知。

跨平台工单同步(支持服务请求范围)

  • 目标:在所有权转移期间,保持平台与外部 IT 服务管理 (ITSM) 平台之间的严格一致性。
  • 场景:安全支持请求从常规队列重新分配给专门的 SOC 角色或用户。
  • 结果:Case Assignee Changed(案例分配对象已更改)响应触发器触发,自动更新相应外部工单系统中的所有者字段,并向新所有者发送操作摘要。

可用的回应触发器

回应标签页下提供的选项会根据在 playbook 设置期间选择的运营范围进行动态过滤:

支持范围内的反应触发器

如果 playbook 配置为具有支持请求范围,则菜单会显示监控总体支持请求容器的触发器:

  • Case Assignee Changed:当所有权在分析师或 SOC 角色之间转移时触发。
  • 案例自定义字段更改:当案例级自定义字段或案例上下文值更新时触发。
  • 支持请求优先级已更改:当支持请求的全局严重程度或优先级发生更新时触发。
  • Case Stage Changed:当支持请求在调查生命周期的各个阶段之间转换时(例如从 Triage 变为 Containment),系统会触发此事件。
  • 添加了支持请求标记:当向支持请求添加标记时触发。您可以将此触发器配置为监听任何标记,也可以过滤特定标记值。
  • 添加了支持请求备注:当有新评论发布到支持请求时触发。 您可以配置条件,以便仅当评论文本或附件的文件名符合特定条件时才触发。

提醒范围回应触发器

如果 Playbook 配置了提醒范围,您可以从以下基于事件的触发器中进行选择:

  • 实体已添加:在初始注入后,当新实体附加到活跃提醒时触发。
  • 提醒优先级已更改:当分析师或系统工作流修改提醒的优先级时触发。
  • 提醒自定义字段更改:当指定的提醒级自定义字段或上下文值更新时触发。

配置反应触发器

如需配置剧本以响应特定平台事件或数据修改,请按以下步骤操作:

  1. 点击添加新 playbook 或区块以创建新的 playbook。
  2. 在新建对话框中,选择 playbook 范围:
    • 选择提醒以配置提醒级事件触发器。
    • 选择支持请求以配置支持请求级触发器。
  3. 点击创建。
  4. 在步骤选择面板中,选择触发器。
  5. 选择反应标签页,查看所选范围的可用基于事件的触发器。
  6. 选择适当的触发器,并将其拖动到 playbook 设计器中的触发器目标区域。
  7. 双击触发器即可打开侧边抽屉。条件标签页中提供的参数会自动更新,以匹配您选择的触发器。
  8. 根据您选择的触发器和 playbook 范围,配置以下逻辑:

    • 如果使用实体已添加(提醒范围):根据添加到提醒中的新实体(在提取后)定义触发条件。

      • 选择添加任何实体,以便在每次添加新实体时触发。
      • 选择添加特定实体以定义过滤逻辑。您可以从实体属性列表中进行选择,并使用逻辑运算符(AND 和 OR)配置多个条件。例如,Entity.Identifier 包含 @google.com 且 Entity.Type 为 USERUNIQNAME。
    • 如果使用提醒优先级已更改(提醒范围)或支持请求优先级已更改(支持请求范围):请配置 Priority changed from 和 Priority changed to 状态。

      • 您可以从列表中选择特定优先级,也可以使用 ANY 来匹配任何状态值。
      • 您可以使用 OR 逻辑运算符创建多种状态组合(例如,当优先级从 Medium 变为 High 或从 Medium 变为 Critical 时触发)。
    • 如果使用提醒自定义字段更改(提醒范围)或自定义支持请求字段更改(支持请求范围):请从菜单中选择相应字段,然后配置 From 和 To 状态。使用每个值旁边的切换开关来确定是否验证状态更改的相应部分。

      • 切换到“关闭”(已停用):系统不会检查此状态的值。停用此切换开关实际上会匹配任何值,从而允许触发器触发,而无论字段在更改之前或之后包含什么内容。
      • 切换为开启(已启用):系统会检查特定值。如果该字段留空,但切换开关处于开启状态,则表示搜索空字符串(例如,在之前为空的字段更新时触发)。
    • 如果使用支持请求受理人已更改(支持请求范围):请配置 Assignee changed from 和 Assignee changed to 参数以跟踪所有权转移。您可以隔离特定分析师或 SOC 角色之间的轮班。

    • 如果使用案例阶段已更改(案例范围):配置 Stage changed from 和 Stage changed to 参数,以检测案例在调查生命周期的不同阶段之间转换时(例如从 Triage 变为 Containment)的情况。

    • 如果使用添加了支持请求标记(支持请求范围):配置参数以检测何时向支持请求容器添加了标记。从菜单中选择相应的代码,并定义触发逻辑是否验证添加事件。

  9. 如需减少不必要的执行次数,请前往定义其他条件(可选)部分,定义与反应触发器本身没有直接关联的条件。

    • 示例:配置一个 playbook,使其仅在提醒优先级发生更改且支持请求优先级也设置为 High 时触发 Critical。
  10. 点击保存。参数详细信息会显示在触发器说明中。

回应触发器优先级

当发生受支持的事件(例如案例分配对象更改或提醒优先级更改)时,平台会评估所有响应 playbook,以确定哪些 playbook 符合事件条件。

如果多个 playbook 与同一触发事件匹配,平台会根据其配置的优先级执行这些 playbook:

  • 优先执行:优先级较高的 playbook 会先运行。例如,优先级 1 高于优先级 2 和优先级 3。
  • 同等优先级的打破平局机制:如果多个匹配的 playbook 具有相同的优先级,平台会自动选择并执行其中一个。

为确保在事件触发时,特定或关键 playbook 先于更通用的 playbook 执行,请相应地调整其各自的优先级设置。

反应执行模式

由于调查数据可能会快速变化,因此反应触发器可让您定义在 playbook 已经运行的情况下,系统应如何处理连续发生的事件。如需选择执行模式,请点击触发器侧边抽屉中的设置标签页:

  • 重新开始(默认):终止正在运行的 playbook,并立即使用最新数据重新开始运行。如果状态发生变化,您不想完成执行,请使用此模式。
  • 已加入队列:允许活跃 playbook 在处理下一个触发事件之前完成其当前运行。如果即使触发器已更改,您也必须完成执行,请使用此模式。已加入队列的 playbook 会显示在案例概览 playbook 查看器中。

联动链条限制

反应触发器包含一个内置机制,用于强制执行最大执行深度,防止出现无限循环或冗余运行(例如,反应 playbook 执行的操作会重新触发同一 playbook)。

如需配置联动链条限制,请执行以下操作:

  1. 双击 Playbook 设计器画布上的触发器卡片,以打开其配置面板。
  2. 选择设置标签页。
  3. 在 Reaction Chain Limit 下,配置 Max number 参数(默认值为 5)。

如果您想阻止 playbook 触发任何后续 playbook 链,请将此值设置为 1。

使用模拟器测试反应触发器

您可以在 playbook 设计器中使用 playbook 模拟器测试和验证反应触发器逻辑:

  1. 打开包含反应触发器的剧本,然后点击模拟器。
  2. 在模拟器面板中,选择一个测试用例,并根据所选触发器配置模拟事件参数。模拟器面板会根据放置在画布上的特定反应触发器(例如优先级更改、自定义字段更新或实体添加)自动更新其布局和参数。

  3. 点击运行。

    • 匹配的事件:如果模拟事件条件与您的反应触发条件相符,触发步骤会显示一个绿色对勾标记,并且动态触发占位符(例如 [trigger.from_state] 和 [trigger.to_state])可用于后续步骤。
    • 不匹配的事件:如果模拟事件与触发条件不匹配,触发步骤会显示失败状态,并且触发占位符不可用,但剧本的其余部分会继续执行。

动态回应占位符

反应触发器使用特定占位符来捕获修改时触发器的确切快照。这样可确保即使在 playbook 执行过程中提醒数据再次发生变化,playbook 逻辑仍保持准确:

  • 状态更改:使用 [trigger.from_state] 和 [trigger.to_state] 捕获属性变化(例如,捕获新旧优先级值)。
  • 事件专属详情:使用 [trigger.EntityIdentifier] 和 [trigger.EntityType] 动态定位新附加的实体。
  • 触发器元数据:使用 [trigger.TriggeredBy] 标识启动者。 对于手动界面操作或手动 playbook 运行,此占位符会显示完整用户名。如果更改是由 playbook 执行的,则会显示系统自动化。使用 [trigger.DateTime] 表示精确的活动时间戳,格式为 YYYY-MM-DD HH:MM:SS UTC+偏移量。

限制

  • 唯一 playbook 数量限制:您最多可以为每个提醒或案例附加 30 个唯一 playbook。
  • 重新运行限制:每个 playbook 针对每个提醒或案例最多可运行 30 次。 如果触发器针对已附加的剧本触发,则会注册为重新运行。后续的激活会被注册为跳过。
  • 报告和导出排除项:反应触发型剧本的执行会从旧版监控信息中心和 SOAR 数据导出(包括受管 BigQuery 和自带 BigQuery [BYOBQ])中排除。

现在,您可以继续使用操作构建 playbook。如需了解详情,请参阅管理 playbook 中的操作。

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。