监控响应和 playbook 运行状况
本指南适用于安全工程师、SOAR 工程师和安全运营中心 (SOC) 经理,他们希望在 Google Security Operations 中监控其 playbook 和集成的运行状况、性能和自动化效率。本文介绍了如何使用“响应健康状况中心”来识别、诊断和修复影响 playbook 执行、操作延迟时间和第三方集成的问题。
响应健康中心是 Google SecOps 中的中心位置,用于监控跨环境的自动响应工作流的运行状态和有效性。它可让您全面了解 playbook 执行量、队列积压、附加和重新运行率、操作级延迟以及故障诊断。
响应健康中心包含以下信息:
- playbook 执行量、队列积压和完成成功率
- 案例和提醒的 playbook 附加率和重新执行(重新运行)率
- 端到端 playbook 和操作执行延迟时间指标,包括最慢的单个 playbook 和操作运行
- Playbook 和集成健康指标,包括失败的 Playbook 摘要、已终止的 Playbook、一段时间内的失败趋势以及操作失败原因
- 集成和操作利用率排名、自动与手动关闭率以及平均解决时间 (MTTR) 比较
主要术语
- 响应健康状况中心:Google SecOps 中的中央界面,用于监控 playbook 和集成的状态、执行延迟时间、自动化有效性和健康状况。
- Playbook 执行时间:Playbook 运行的总端到端用时,从 Playbook 首次触发并附加到提醒或案例开始,直到所有步骤完成。此时长包括操作执行、步骤转换、队列延迟以及等待用户手动操作的时间。
- 操作执行时间:Playbook 中单个操作的有效执行时长,从操作开始运行到其结果保存为止。
- 附加的 playbook:在注入或创建提醒时触发并关联到案例或提醒的 playbook。
- 重新运行 playbook:在已附加 playbook 的支持请求或提醒上重新触发的 playbook 执行。
- Faulted:描述在执行期间遇到错误或超时的 playbook 操作(例如
FAULTED、FAULTED_AND_SKIPPED、UNHANDLED_TIMEDOUT或PENDING_ACTION_TIMEOUT)。 - 已终止:描述由分析人员手动停止的 playbook 运行 (
TERMINATED),或在 playbook 完成执行之前其关联的提醒或案例已关闭。 - 平均解决时间 (MTTR):从支持请求创建到关闭的平均时长(以分钟为单位)。响应健康中心会将由 playbook 自动关闭的工单 (
AUTOMATIC) 的平均解决时间 (MTTR) 与由分析师手动关闭的工单的平均解决时间进行比较。
准备工作
在使用 Response Health Hub 之前,请确认您已被分配一个角色,该角色包含查看信息中心和 playbook 数据所需的 Identity and Access Management (IAM) 和 SOAR 权限。如果您无法访问“响应健康中心”,请与您的管理员联系。
标准预定义角色
以下预定义的 IAM 角色包含对“响应健康状况中心”功能的访问权限:
- Chronicle API Admin (
roles/chronicle.admin) - Chronicle API Editor (
roles/chronicle.editor) - Chronicle API Viewer (
roles/chronicle.viewer)
特定权限和 SOAR 角色
如需查看 Response Health Hub,您需要拥有以下 IAM 权限和 SOAR 角色访问权限:
- 所需的 IAM 权限:
chronicle.nativeDashboards.get和chronicle.nativeDashboards.list可查看精选信息中心chronicle.playbooks.read,用于查看 playbook 执行情况和健康指标chronicle.nativeDashboards.create和chronicle.nativeDashboards.duplicate,用于复制和自定义信息中心
- SOAR 角色:用户还需要具有查看 playbook 和信息中心的权限的 SOAR 角色,例如 ChronicleSOAR Admin、ChronicleSOAR Threat Manager、ChronicleSOAR Vulnerability Manager 或 ChronicleSOAR Observer。如需了解详情,请参阅管理剧本权限。
访问回答健康中心
- 在导航菜单中,依次点击信息中心和报告 > 信息中心,然后在预定义的精选信息中心列表下选择响应健康状况中心。
“响应健康状况中心”是一个只读的精选信息中心,无法直接修改。如需自定义图表或查询,请复制 Response Health Hub,并根据您的具体应用场景修改复制的信息中心。
过滤 Response Health Hub
您可以使用页面顶部的以下信息中心级过滤条件来优化“响应健康状况中心”中显示的数据:
全局时间过滤条件:按所选时间范围(默认:
Past 7 days)过滤信息中心微件。Playbook Simulated(Playbook 模拟):按运行是否在 Playbook 模拟器 (
playbook.simulated) 中执行来过滤 Playbook 指标。默认情况下,此过滤条件设置为false,以便信息中心仅显示实际 Playbook 执行。将此过滤条件设置为true可检查模拟的测试运行。执行范围过滤条件:按 playbook 执行范围 (
playbook.metadata.execution_scope) 过滤指标。环境过滤条件:按一个或多个 Google SecOps 环境(
playbook.metadata.environments和case.environment)过滤信息中心微件。默认情况下,此过滤条件设置为Default Environment,并支持同时选择多个环境。
了解和使用 Response Health Hub 界面
本部分介绍了响应健康中心内的各个部分和微件,以便您监控 playbook 性能并诊断 SOAR 工作流中的问题。
响应健康中心分为以下几个部分:
数量和采用率
数量和采用率部分提供了有关剧本执行量、队列深度和总体完成率的概要指标:
- Playbook 执行总数:一个大数字微件,显示在所选时间范围内执行的 Playbook 运行总数。
- 执行次数最多的前 30 个 playbook:一个水平条形图,按所选时段内的总执行次数对前 30 个 playbook 进行排名。
- Playbooks Pending in Queue:一个大数字 widget,显示当前状态为
PENDING_IN_QUEUE且已加入队列并等待执行的 playbook 运行数量。 - playbook 执行成功率:一个饼图,显示已完成的 playbook 执行的细分数据,按状态(
COMPLETED与FAILED)进行分类。 - 每日 Playbook 执行量:一个折线图,显示一段时间内 Playbook 运行总量的每日趋势,按 Playbook 显示名称分组。
playbook 附加率
Playbook 附加率部分跟踪 Playbook 附加到案例或提醒的频率,以及重新执行的频率:
- 每个案例 / 提醒附加的平均 Playbook 数量:一个大数字 widget,显示每个不同案例或提醒附加的平均 Playbook 运行次数。
- 每个案例 / 提醒附加的 playbook 数量上限:一个大数字 widget,显示附加到任何单个案例或提醒的唯一 playbook 数量上限。
- 热门 playbook 附件 / 重新运行:按附件数量和重新运行频率对 playbook 进行排名。
响应执行时间
响应执行时间部分会衡量 playbook 和操作延迟时间,帮助您区分活跃集成执行时间和整体工作流等待时间:
- 平均 Playbook 执行时间:一个大数字微件,显示已完成的 Playbook 运行的平均端到端时长 (
Xh Ym Zs),即从初始触发和附加到所有步骤完成的时间。这包括操作执行时间、步骤转换、队列延迟和手动用户等待时间。 - 各剧本的平均执行时间:一个条形图,显示每个剧本的平均执行时长(以秒为单位)。
- 平均操作执行时间:一个大数字微件,显示各个 playbook 操作的平均活跃执行时长 (
Xh Ym Zs),从操作开始执行到其结果保存为止。 - 按操作划分的平均执行时间:一个条形图,显示每个操作(不包括内部循环标记
ForEachStartLoop和ForEachEndLoop)的平均执行时长(以秒为单位)。 - Top 30 Slowest Playbook Executions(执行速度最慢的前 30 个 playbook):列出执行时间最长的 30 个 playbook 运行作业。
- 执行速度最慢的前 30 个操作:列出运行时间最长的 30 个单独操作。
playbook 运行状况
playbook 健康状况部分提供了有关失败的 playbook、已终止的运行和集成操作错误的诊断信息和趋势图表:
- Latest 30 Failed Playbook Summary:列出最近 30 次失败的 playbook 运行 (
FAILED) 以及具体故障操作 (FAULTED) 和出错提示。 - 失败率排名前 30 的 Playbook:列出失败运行次数最多的前 30 个 Playbook 及其失败百分比。
- 已终止的前 30 个 playbook:跟踪运行次数占比最高的 playbook。
TERMINATED - 失败 Playbook 百分比随时间的变化:一个折线图,显示 Playbook 失败百分比的每日趋势,按 Playbook 名称分组。
- 随时间变化的集成失败百分比:一个折线图,显示按集成分组的每天操作失败百分比(
FAULTED操作)趋势。 - 操作失败率:详细说明每个集成和操作的操作失败次数、失败率、失败状态和最新出错提示。
集成利用率和自动化效果
集成利用率和自动化效果部分会突出显示您的 playbook 最依赖哪些工具,并量化自动化对案例关闭和解决时间的操作影响:
- Top 30 Most Frequently Used Integrations:一个条形图,按所有 playbook(不包括内部
Loop步骤)中的总操作执行次数对前 30 个集成进行排名。 - 最常使用的 30 项操作:一个条形图,用于按执行次数对所有 playbook 中的前 30 项单独操作进行排名(不包括
ForEachStartLoop和ForEachEndLoop)。 - 案例 / 提醒关闭方法(自动与手动):一个圆环图,显示已关闭案例 (
CLOSED) 中由 playbook 自动解决 (AUTOMATIC) 的比例与由 SOC 分析师手动解决的比例。 - Case MTTR: Automated vs. Manual Closure(案例 MTTR:自动关闭与手动关闭):一个条形图,比较了由 playbook 自动关闭的案例与手动关闭的案例的平均解决时间(MTTR,以分钟为单位,采用对数刻度)。
识别并调查 playbook 和集成问题
本部分介绍了如何使用 Response Health Hub 来识别、调查和排查常见的 playbook 和集成问题。
调查失败的 playbook 运行和出错的操作
当运行成功的 Playbook 占比或失败的 Playbook 占比随时间的变化图表显示 Playbook 失败率上升时,请执行以下操作:
- 前往失败率最高的前 30 个 Playbook,找出失败次数和失败百分比最高的 Playbook。
- 查看失败的 playbook 百分比随时间的变化折线图,确定失败是突然开始的(例如,在 playbook 修改或凭证过期后),还是持续存在的问题。
- 在最近 30 个失败的 Playbook 摘要中,找到失败 Playbook 的近期运行记录,然后查看操作、操作状态和操作消息字段,了解导致 Playbook 失败的确切步骤和出错提示。
- 点击最近 30 个失败的 Playbook 摘要中的支持请求 ID 链接,在新标签页中打开受影响的案例。
- 在案例页面上,选择相应提醒,打开 Playbook 标签页,然后点击 Playbook 名称以打开 Playbook 摘要侧边抽屉式导航栏。在抽屉的错误部分,您可以检查完整的步骤日志,并在解决根本原因后重新运行失败的操作或整个 playbook。
诊断集成和操作失败或超时问题
如果多个剧本同时失败,根本原因通常是共享的第三方集成问题(例如 API 凭据过期、网络连接问题或速率限制)。如需找出集成级问题,请执行以下操作:
- 查看失败集成百分比随时间的变化图表,了解失败峰值是否与 Playbook 中的特定集成相关。
- 在操作失败率视图中,找到受影响的集成,然后查看失败率、失败状态和最新失败原因:
FAULTED或FAULTED_AND_SKIPPED:表示操作返回了执行错误。查看最近一次失败的原因,了解401 Unauthorized、403 Forbidden或输入参数无效等详细信息。UNHANDLED_TIMEDOUT:表示操作或远程代理在完成执行之前超时。PENDING_ACTION_TIMEOUT:表示异步或手动待处理操作在收到响应之前超过了其配置的等待超时时间。
- 前往响应 > IDE 或设置 > SOAR 设置 > 环境,验证并测试受影响环境的集成实例配置和凭据。
调查 playbook 执行延迟和队列积压问题
响应时间缓慢可能是由于第三方集成操作缓慢,也可能是由于 Playbook 等待状态和队列积压。如需找出执行延迟的根源,请执行以下操作:
- 检查队列积压情况:在使用量和采用率部分中查看队列中待处理的 Playbook 微件。如果排队的 playbook 数量较多,则表示传入提醒触发 playbook 的速度快于其完成执行的速度。
- 比较 playbook 执行时间与操作执行时间:
- 在响应执行时间部分中,比较平均 Playbook 执行时间与平均操作执行时间。
- 集成操作缓慢:如果平均操作执行时间较长,请查看按操作划分的平均执行时间图表和最慢的 30 个操作执行,以确定哪些特定集成操作的运行时间最长。点击支持请求 ID 链接,检查运行缓慢的操作所对应的具体支持请求和提醒。
- 工作流等待时间或轮询延迟:如果平均 playbook 执行时间较高,而平均操作执行时间仍然较低,则延迟发生在有效操作执行之间,最常见的原因是 playbook 正在等待人工分析师确认步骤、待处理的异步操作或队列延迟。查看 Playbook 的平均执行时间和执行速度最慢的前 30 个 playbook,以找出受影响的 playbook 运行。
优化 playbook 触发器、重新运行和终止的运行
触发条件效率低下或 playbook 设计过于宽泛可能会导致不必要的执行、频繁重新运行或 playbook 提前终止。如需优化 playbook 工作流,请执行以下操作:
- 审核附件和重新运行次数:
- 在每个案例/提醒附加的 Playbook 数量部分中,查看每个案例/提醒附加的 Playbook 平均数量和每个案例/提醒附加的 Playbook 最大数量微件。
- 查看热门 Playbook 附件 / 重播。如果重新运行次数相对于附加次数较高,则可能表示分析师因临时操作失败或丰富数据不完整而反复重新触发 playbook。
- 调查已终止的 Playbook:
- 在 Playbook 运行状况部分中,查看终止的前 30 个 Playbook。
- 如果分析师手动停止 playbook,或者在 playbook 完成运行之前关闭了基础提醒或支持请求,则 playbook 会标记为
TERMINATED。如果 Playbook 的终止百分比较高,请验证是否有自动关闭规则或其他 Playbook 在长时间运行的丰富或遏制步骤完成之前关闭了提醒。
评估 SOC 自动化效果和平均解决时间 (MTTR)
如需衡量 playbook 在减轻分析人员工作负载和加快突发事件响应方面的效果,请执行以下操作:
- 在自动化效果部分,查看支持请求 / 提醒关闭方法(自动与手动)圆环图,跟踪自动解决 (
AUTOMATIC) 与手动解决的已关闭支持请求的比例。 - 查看支持请求 MTTR:自动关闭与手动关闭条形图,比较自动关闭和手动关闭的平均解决时间(以分钟为单位)。
- 使用环境过滤条件比较不同环境或租户的自动化关闭率和 MTTR,并确定哪些环境可以通过额外的自动分类或自动关闭 playbook 减少分析师的手动处理时间。
自行修复 playbook 和集成健康问题
如需修复“回答健康状况中心”中发现的常见 playbook 和集成问题,请查看以下症状、原因和建议的修复措施:
- 操作状态为
FAULTED或FAULTED_AND_SKIPPED,且存在身份验证错误(401/403):- 原因:为集成实例配置的 API 密钥、令牌或服务账号已过期或缺少所需权限。
- 建议的补救措施:查看操作失败率微件中的最新失败原因,以确定集成,在受影响环境的集成配置中更新凭据,并测试连接性。
- 操作状态为
UNHANDLED_TIMEDOUT:- 原因:第三方端点响应时间过长,或者执行操作的远程代理遇到连接或资源问题。
- 建议的修复措施:检查目标服务的运行状况,如果集成远程运行,请排查远程代理问题。请考虑增加操作超时时间或缩小传递给操作的查询范围。
- 操作状态为
PENDING_ACTION_TIMEOUT:- 原因:等待用户输入或外部异步回调的 playbook 步骤未在步骤超时之前完成。
- 建议的修复措施:点击最近 30 个失败的 Playbook 摘要 widget 中的支持请求 ID: 请求 ID,检查待处理步骤。在 playbook 设计器中调整相应步骤的超时设置,或为超时的待处理操作配置回退分支。
- 在终止的前 30 个 Playbook 中,终止百分比高 (
TERMINATED):- 原因:在 playbook 仍在运行时,系统正在关闭支持请求或提醒(手动关闭或通过其他自动化规则关闭),或者分析师正在手动停止 playbook。
- 建议的补救措施:在按 Playbook 划分的平均执行时间中查看 Playbook 的执行时长,并确保仅在所有必需的丰富和响应操作完成后才执行案例自动关闭步骤。
- 队列中待处理的高优先级 Playbook 数量 (
PENDING_IN_QUEUE):- 原因:提醒激增或 playbook 触发器过于宽泛,导致排队的 playbook 运行数量超出了执行流水线可同时处理的数量。
- 建议的补救措施:优化 playbook 触发条件,使其更具选择性;使用可重复使用的区块整合冗余的 playbook;以及查看 playbook 中的批量操作和过滤条件。
- Playbook 平均执行时间远高于操作平均执行时间:
- 原因:Playbook 的大部分生命周期都在等待用户手动操作或外部回调,而不是主动执行集成操作。
- 建议的补救措施:检查执行速度最慢的 30 个 playbook,以确定哪些 playbook 正在等待人工干预,并在适当的情况下自动执行常规审批或分类决策。
对 playbook 或集成配置进行更改后,请在“响应健康状况中心”内监控随时间变化的 playbook 失败百分比和随时间变化的集成失败百分比图表,以验证失败率是否恢复到预期水平。
问题排查
以下内容介绍了在分析数据时可能会遇到的“回答健康状况中心”界面行为:
- 调整全局时间过滤条件时,“队列中待处理的 Playbook”不会发生变化:队列中待处理的 Playbook widget 会衡量固定 7 天时间范围内的当前活跃积压工作 (
PENDING_IN_QUEUE),并有意忽略全局时间过滤条件,以便您始终看到实时队列状态。 - 默认情况下,系统不会显示模拟的 playbook 运行:“Playbook 模拟”过滤条件默认设置为
false,这样一来,playbook 模拟器的测试运行就不会影响生产环境健康状况指标。如需对模拟运行进行问题排查,请将 Playbook Simulated 更改为true。 - 循环操作和
Loop集成不会显示在热门操作或集成图表中:内部循环控制步骤(ForEachStartLoop、ForEachEndLoop和Loop集成)会自动从按操作划分的平均执行时间、最常使用的前 30 个集成和最常使用的前 30 个操作中排除,以便您的排名反映实际的安全集成和操作。 - “平均 playbook 执行时间”与“平均操作执行时间”之间的区别:“平均 playbook 执行时间”衡量的是 playbook 从开始到结束的整个实际运行时间(
playbook.end_time减去playbook.start_time),而“平均操作执行时间”仅计算各个操作的有效运行时间 (playbook.action.execution_time_ms) 的平均值。即使 playbook 的自动化操作在几秒内完成,如果它需要等待数小时才能获得分析师对待处理操作的批准,也会有较长的 playbook 执行时间。
后续步骤
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。