从调查指南启动时间线编辑

检测规则调查指南建议了对潜在安全问题进行分类、分析和响应的步骤。 对于自定义规则,您可以创建一个交互式调查指南,其中包含用于在 时间线 中启动运行时查询的按钮,使用警报数据和硬编码的字面量。 这使您可以使用相关数据直接从警报开始详细的时间线调查。

交互式调查指南在 Elastic Stack 8.7.0 及更高版本之间兼容。 在 8.6.x 中创建的查询按钮使用不同的语法,并且无法在更高版本中正确呈现,反之亦然。

Alert details flyout with interactive investigation guide

在“调查”部分下,单击 显示调查指南 以打开警报详细信息弹出窗口左侧面板中的 调查 选项卡。

Alert details flyout with interactive investigation guide

调查 选项卡显示查询按钮,每个查询按钮显示找到的事件文档数量。 单击查询按钮,根据调查指南中的配置设置自动在时间线中加载查询。

Timeline with query pre-loaded from investigation guide action

向规则添加调查指南操作编辑

您只能使用自定义规则创建交互式调查指南,因为 Elastic 预构建规则无法编辑。 但是,您可以复制预构建规则,然后为复制的规则配置调查指南。

您可以在 创建新规则编辑现有规则 时配置交互式调查指南。

  1. 配置规则的设置时(新规则的 关于规则 步骤或现有规则的 关于 选项卡),展开 高级设置,然后向下滚动到 调查指南 Markdown 编辑器。

    Investigation guide editor field
  2. 将编辑器光标放在要在调查指南中添加查询按钮的位置,然后在工具栏中选择“调查”图标 (调查图标)。 此时将出现 添加调查查询 构建器表单。

    Add investigation guide UI
  3. 完成查询构建器表单以创建调查查询

    1. 标签:输入要显示在查询按钮上的文本。
    2. 描述:(可选)输入要包含在按钮中的附加文本。
    3. 过滤器:选择字段、运算符和值以构建查询。 单击 以创建多个过滤器并定义它们的关系。

      要使用来自警报的字段值作为查询参数,请输入用双大括号括起来的字段名称(例如 {{kibana.alert.example}})作为过滤器值的自定义选项。

      Add investigation guide UI
    4. 相对时间范围:(可选)选择一个时间范围以限制查询,相对于警报的创建时间。
  4. 单击 保存更改。 语法将添加到调查指南编辑器中。

    如果需要更改查询按钮的配置,可以直接在编辑器中编辑语法(请参阅下面的 语法参考),也可以删除语法并使用查询构建器表单重新创建查询。

  5. 保存并启用规则。
查询按钮语法编辑

以下语法定义了交互式调查指南中的查询按钮。

字段 描述

!{investigate{ }}

包含查询按钮的所有配置属性的容器对象。

标签

按钮上的标识文本。

描述

包含在按钮中的附加文本。

提供程序

一个两级嵌套数组,用于定义要在时间线中运行的查询。 与时间线中查询的结构类似,外层中的项通过 关系连接,内层中的项通过 关系连接。

提供程序 中的每个项目都对应于在查询构建器 UI 中创建的过滤器,并由以下属性定义

  • 字段:要查询的字段的名称。
  • 排除:查询结果是排除(例如 不是以下之一)还是包含(例如 是以下之一)。
  • 查询类型:用于根据过滤器的运算符过滤事件的查询类型。 例如,短语范围
  • :要搜索的值。 可以是硬编码的字面量,也可以是要使用其值作为查询参数的警报字段的名称(用双大括号括起来)。
  • 值类型 的数据类型,例如 字符串布尔值

relativeFromrelativeTo

(可选)查询的相对时间范围的开始和结束时间(分别)。 时间是相对于警报的创建时间,在 日期数学 格式中表示为 now。 例如,在查询构建器表单中选择 过去 15 分钟 会创建语法 "relativeFrom": "now-15m", "relativeTo": "now"

某些字符必须使用反斜杠进行转义,例如 \" 表示引号,\\ 表示字面量反斜杠。 使用双反斜杠分隔 Windows 路径(例如,C:\\Windows\\explorer.exe),并且已经包含双反斜杠的路径可能需要为每个分隔符使用四个反斜杠。 如果有任何语法错误,Markdown 编辑器下方会显示一个可点击的错误图标 (错误图标)。

语法示例编辑
!{investigate{
  "label": "Test action",
  "description": "Click to investigate.",
  "providers": [
    [
      {"field": "event.id", "excluded": false, "queryType": "phrase", "value": "{{event.id}}", "valueType": "string"}
    ],
    [
      {"field": "event.action", "excluded": false, "queryType": "phrase", "value": "rename", "valueType": "string"},
      {"field": "process.pid", "excluded": false, "queryType": "phrase", "value": "{{process.pid}}", "valueType": "string"}
    ]
  ],
  "relativeFrom": "now-15m",
  "relativeTo": "now"
}}

此示例创建以下时间线查询,如下所示

(event.id : <警报值>)
或 (event.action : "重命名" 和 process.pid : <警报值>)

Timeline query
时间线模板字段编辑

在与特定警报无关的上下文中查看交互式调查指南时(例如规则的详细信息页面),查询将作为 时间线模板 打开,并且 参数 字段将被视为时间线模板字段。

Timeline template