从调查指南启动时间线

编辑

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

交互式调查指南与 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. 过滤器:选择字段、运算符和值来构建查询。单击ORAND以创建多个过滤器并定义它们之间的关系。

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

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

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

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

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

字段 描述

!{investigate{ }}

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

label

按钮上的标识文本。

description

与按钮一起包含的其他文本。

providers

一个两层嵌套数组,用于定义在时间线中运行的查询。类似于时间线中查询的结构,外层中的项目由OR关系连接,内层中的项目由AND关系连接。

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

  • field:要查询的字段名称。
  • excluded:查询结果是否被排除(例如不是其中之一)或包含(是其中之一)。
  • queryType:根据过滤器的运算符用于过滤事件的查询类型。例如,phraserange
  • value:要搜索的值。硬编码字面值或警报字段的名称(用双大括号括起来),其值用作查询参数。
  • valueTypevalue的数据类型,例如stringboolean

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 : <警报值>)
OR (event.action : "rename" AND process.pid : <警报值>)

Timeline query
时间线模板字段
编辑

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

Timeline template