从调查指南启动时间线

编辑

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

交互式调查指南在 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{ }}

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

label

按钮上的标识文本。

description

按钮中包含的其他文本。

providers

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

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

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

relativeFrom, relativeTo

(可选)查询的相对时间范围的开始时间和结束时间。时间相对于警报的创建时间,在 日期数学格式中表示为 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 : <alert value>)
OR (event.action : "rename" AND process.pid : <alert value>)

Timeline query
时间线模板字段
编辑

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

Timeline template