创建检测规则
编辑创建检测规则编辑
要创建新的检测规则,请按照以下步骤操作
- 定义规则类型。此步骤的配置会根据规则类型而有所不同。
- 配置基本规则设置。
- 配置高级规则设置(可选)。
- 设置规则的计划。
- 设置警报通知(可选)。
- 设置响应操作(可选)。
在任何步骤中,您都可以预览规则,然后再保存它以查看您可以预期的结果。
使用跨集群搜索的检测规则需要额外的配置。请参阅跨集群搜索和检测规则。
创建机器学习规则编辑
要创建或编辑机器学习规则,您必须拥有合适的许可证或使用云部署。此外,您必须具有machine_learning_admin
用户角色,并且选择的机器学习作业必须正在运行,以便规则正常运行。
- 转到 规则 → 检测规则 (SIEM) → 创建新规则。此时会显示 创建新规则 页面。
-
要基于机器学习异常阈值创建规则,请选择 机器学习,然后选择
-
所需的机器学习作业。
如果所需的作业当前未运行,则在完成配置并启用规则后,它将自动启动。
- 创建警报的异常分数阈值。
-
- 单击 继续 以配置基本规则设置。
创建自定义查询规则编辑
- 转到 规则 → 检测规则 (SIEM) → 创建新规则。此时会显示 创建新规则 页面。
-
要基于 KQL 或 Lucene 查询创建规则,请选择 自定义查询,然后
- 定义规则搜索警报的 Elasticsearch 索引或数据视图。
-
使用过滤器和查询字段创建用于检测警报的条件。
以下示例(基于预构建规则 通过 VssAdmin 删除或调整大小的卷影副本)检测到何时执行
vssadmin delete shadows
Windows 命令-
索引模式:
winlogbeat-*
Winlogbeat 将 Windows 事件日志发送到 Elastic Security。
-
自定义查询:
event.action:"Process Create (rule: ProcessCreate)" and process.name:"vssadmin.exe" and process.args:("delete" and "shadows")
搜索
winlogbeat-*
索引以查找具有delete
和shadow
参数的vssadmin.exe
执行,这些参数用于删除卷的卷影副本。
-
-
您可以使用 Kibana 保存的查询()和保存的时间轴中的查询(从保存的时间轴导入查询)作为规则条件。
当您使用保存的查询时,在每次规则执行时动态加载保存的查询“查询名称” 复选框会出现
- 选择此选项以在规则每次运行时使用保存的查询。这将规则链接到保存的查询,您将无法修改规则的 自定义查询 字段或过滤器,因为规则将只使用保存的查询中的设置。要进行更改,请修改保存的查询本身。
- 取消选择此选项以将保存的查询作为一次性方式加载,以填充规则的 自定义查询 字段和过滤器。这会将设置从保存的查询复制到规则,因此您可以在需要时进一步调整规则的查询和过滤器。如果稍后更改保存的查询,规则将不会继承这些更改。
- (可选,白金或更高订阅 要求)使用 通过以下方式抑制警报 来减少规则创建的重复或重复警报的数量。有关详细信息,请参阅抑制检测警报。
- 单击 继续 以配置基本规则设置。
创建阈值规则编辑
- 转到 规则 → 检测规则 (SIEM) → 创建新规则。此时会显示 创建新规则 页面。
-
要基于源事件字段阈值创建规则,请选择 阈值,然后
- 定义规则分析警报的 Elasticsearch 索引。
-
使用过滤器和查询字段创建用于检测警报的条件。
您可以使用 Kibana 保存的查询()和保存的时间轴中的查询(从保存的时间轴导入查询)作为规则条件。
-
使用 按...分组 和 阈值 字段来确定使用哪个源事件字段作为阈值以及阈值的值。
嵌套字段不支持与 按...分组 一起使用。
-
使用 计数 字段来限制特定字段的基数的警报。
例如,如果 按...分组 是
source.ip, destination.ip
并且其 阈值 是10
,则每对出现在规则搜索结果中至少 10 次的源 IP 地址和目标 IP 地址都会生成警报。您还可以保留 按...分组 字段未定义。当搜索结果的数量等于或大于阈值时,规则会生成警报。如果您将 计数 设置为限制
process.name
>= 2 的结果,则只会为在所有事件中至少出现 2 个唯一进程名称的源/目标 IP 对生成警报。由阈值规则创建的警报是合成警报,不类似于源文档。警报本身只包含有关聚合字段(按...分组 字段)的数据。其他字段被省略,因为它们可以在被计入阈值的源文档中有所不同。此外,您可以从
kibana.alert.threshold_result.count
字段引用超过阈值的文档的实际计数。
- [预览] 此功能处于技术预览阶段,可能会在将来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览中的功能不受官方 GA 功能支持 SLA 的约束。 (可选,白金或更高订阅 要求)选择 抑制警报 来减少规则创建的重复或重复警报的数量。有关详细信息,请参阅抑制检测警报。
- 单击 继续 以配置基本规则设置。
创建事件关联规则编辑
- 转到 规则 → 检测规则 (SIEM) → 创建新规则。此时会显示 创建新规则 页面。
-
要使用 EQL 创建事件关联规则,请选择 事件关联,然后
- 定义规则在查询事件时搜索的 Elasticsearch 索引或数据视图。
-
编写一个EQL 查询,用于搜索匹配的事件或一系列匹配的事件。
要查找序列中缺失的事件,请使用缺失的事件 语法。
例如,以下规则检测到
msxsl.exe
何时进行出站网络连接-
索引模式:
winlogbeat-*
Winlogbeat 将 Windows 事件发送到 Elastic Security。
-
EQL 查询:
sequence by process.entity_id [process where event.type in ("start", "process_started") and process.name == "msxsl.exe"] [network where event.type == "connection" and process.name == "msxsl.exe" and network.direction == "outgoing"]
搜索
winlogbeat-*
索引以查找msxsl.exe
进程启动事件后跟由msxsl.exe
进程启动的出站网络连接事件的序列。对于序列事件,Elastic Security 应用程序在检测到序列中列出的所有事件后会生成一个警报。要更详细地查看匹配的序列事件,您可以在时间轴中查看警报,并且如果所有事件都来自同一个进程,则可以在“分析事件”视图中打开警报。
-
-
(可选)单击 EQL 设置图标()以配置 EQL 搜索 使用的其他字段
-
事件类别字段: 包含事件分类,例如
process
、file
或network
。此字段通常映射为 关键字族 中的字段类型。默认值为event.category
ECS 字段。 - 仲裁字段: 设置一个用于排序事件的辅助字段(按升序、字典顺序),如果它们具有相同的 timestamps。
-
时间戳字段: 包含用于排序事件序列的事件时间戳。这不同于 时间戳覆盖 高级设置,后者用于在范围内查询事件。默认值为
@timestamp
ECS 字段。
-
事件类别字段: 包含事件分类,例如
- [预览] 此功能处于技术预览阶段,可能会在将来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览中的功能不受官方 GA 功能支持 SLA 的约束。 (可选,白金或更高订阅 要求)使用 通过以下方式抑制警报 来减少规则创建的重复或重复警报的数量。有关详细信息,请参阅抑制检测警报。
- 单击 继续 以配置基本规则设置。
创建指标匹配规则编辑
Elastic Security 对指标匹配规则的支持有限。有关详细信息,请参阅对指标匹配规则的支持有限。
- 转到 规则 → 检测规则 (SIEM) → 创建新规则。此时会显示 创建新规则 页面。
-
要创建搜索其指定字段值与指标索引模式中指定指标字段值匹配的事件的规则,请选择 指标匹配,然后填写以下字段
- 来源: 指定要搜索数据的单个索引模式或数据视图。
-
自定义查询: 用于从 Elastic Security 事件索引中检索所需结果的查询和过滤器。例如,如果您想匹配仅包含
destination.ip
地址字段的文档,请添加destination.ip : *
。如果您希望规则检查索引中的每个字段,请使用此通配符表达式:
*:*
。您可以使用 Kibana 保存的查询()和保存的时间轴中的查询(从保存的时间轴导入查询)作为规则条件。
-
指标索引模式: 包含要为其生成警报的字段值的指标索引模式。此字段会自动填充在
securitySolution:defaultThreatIndex
高级设置中指定的索引。有关更多信息,请参阅 更新默认 Elastic Security 威胁情报索引。指标索引中的数据必须与 ECS 兼容,因此它必须包含
@timestamp
字段。 -
指标索引查询: 用于过滤指标索引模式中的字段的查询和过滤器。默认查询
@timestamp > "now-30d/d"
搜索指定的指标索引,以查找过去 30 天内摄取的指标,并将开始时间四舍五入到最近的一天(解析为 UTC00:00:00
)。 -
指标映射: 比较指定的事件和指标字段的值,如果值相同,则生成警报。
仅支持单值字段。
要定义从索引中比较哪些字段值,请添加以下内容
- 字段: 用于比较 Elastic Security 事件索引中值的字段。
- 指标索引字段: 用于比较指标索引中值的字段。
-
您可以添加
AND
和OR
子句来定义何时生成警报。例如,要创建一个规则,当
logs-*
或packetbeat-*
Elastic Security 索引中的host.name
和destination.ip
字段值与mock-threat-list
指标索引中的对应字段值相同时生成警报,请在以下图像中输入规则参数在创建规则之前,请创建 时间线模板,以便可以选择它们。当规则生成的警报在时间线中进行调查时,时间线查询值将替换为其相应的警报字段值。
- [预览] 此功能处于技术预览阶段,可能会在将来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览中的功能不受官方 GA 功能支持 SLA 的约束。 (可选,白金或更高订阅 要求)选择 抑制警报 来减少规则创建的重复或重复警报的数量。有关详细信息,请参阅抑制检测警报。
- 单击 继续 以配置基本规则设置。
在指标匹配规则中使用值列表编辑
虽然有多种方法可以将数据添加到指标索引中,但您可以使用值列表作为指标匹配规则中的指标匹配索引。例如,以下场景
您上传了一个已知勒索软件域名的值列表,并且希望在这些域名中的任何一个与安全事件索引模式中包含的域名字段的值匹配时收到通知。
- 上传指标值列表。
-
创建指标匹配规则并填写以下字段
- 索引模式: 规则运行的 Elastic Security 事件索引。
-
自定义查询: 用于从 Elastic Security 事件索引中检索所需结果的查询和过滤器(例如,
host.domain :*
)。 -
指标索引模式: 值列表存储在名为
.items-<Kibana space>
的隐藏索引中。在此字段中输入此规则将运行的 Kibana 空间的名称。 -
指标索引查询: 输入值
list_id :
,后跟要用作指标索引的值列表的名称(在上面的步骤 1 中上传)。 -
指标映射
- 字段: 输入要用于比较值的 Elastic Security 事件索引中的字段。
-
指标索引字段: 输入创建的值列表的类型(即
keyword
、text
或IP
)。如果您不记得此信息,请转到 规则 → 检测规则 (SIEM) → 管理值列表。找到相应的值列表并记下对应
Type
列中的字段。(示例包括关键字、文本和 IP。)
创建新的术语规则编辑
- 转到 规则 → 检测规则 (SIEM) → 创建新规则。此时会显示 创建新规则 页面。
-
要创建一个搜索源文档中检测到的每个新术语的规则,请选择 新术语,然后
- 通过输入单个 Elasticsearch 索引模式或选择现有数据视图来指定要搜索的数据。
-
使用过滤器和查询字段创建用于检测警报的条件。
您可以使用 Kibana 保存的查询()和保存的时间轴中的查询(从保存的时间轴导入查询)作为规则条件。
-
使用 字段 菜单选择一个字段来检查新的术语。您也可以选择最多三个字段来检测新的术语组合(例如,以前从未一起观察过的
host.ip
和host.id
)。检查多个字段时,将分别评估这些字段中值的每个唯一组合。例如,具有
host.name: ["host-1", "host-2", "host-3"]
和user.name: ["user-1", "user-2", "user-3"]
的文档具有 9(3x3)个host.name
和user.name
的唯一组合。具有host.name
中 11 个值和user.name
中 10 个值的文档具有 110(11x10)个唯一组合。新术语规则每个文档仅评估 100 个唯一组合,因此选择具有大量值数组的字段可能会导致结果不正确。 -
使用 历史窗口大小 菜单指定要搜索的时间范围(以分钟、小时或天为单位),以确定术语是否为新的。历史窗口大小必须大于规则间隔加上额外的回溯时间,因为规则将查找术语,其中术语仅在历史窗口内出现的时间也位于规则间隔和额外的回溯时间内。
例如,如果规则的间隔为 5 分钟,没有额外的回溯时间,并且历史窗口大小为 7 天,则只有当术语在过去 7 天内出现的时间也在过去 5 分钟内时,才会认为该术语是新的。在 设置规则的计划 时,配置规则间隔和额外的回溯时间。
- [预览] 此功能处于技术预览阶段,可能会在将来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览中的功能不受官方 GA 功能支持 SLA 的约束。 (可选,白金或更高订阅 要求)使用 通过以下方式抑制警报 来减少规则创建的重复或重复警报的数量。有关详细信息,请参阅抑制检测警报。
- 单击 继续 以配置基本规则设置。
创建 ES|QL 规则编辑
使用 ES|QL 查询源事件并聚合事件数据。查询结果以包含行和列的表格形式返回。每行都成为一个警报。
要创建 ES|QL 规则
- 转到 规则 → 检测规则 (SIEM) → 创建新规则。将出现 创建新规则 页面。
-
选择 ES|QL,然后编写一个查询。
请参阅以下部分以了解有关 ES|QL 查询类型、查询设计注意事项 和 规则限制 的更多信息。
单击帮助图标()以打开所有 ES|QL 命令和函数的产品内参考文档。
- 单击 继续 以配置基本规则设置。
ES|QL 查询类型编辑
ES|QL 规则查询大致分为两种类型:聚合和非聚合。
聚合查询编辑
聚合查询使用 STATS...BY
函数来聚合源事件数据。使用聚合查询的规则生成的警报仅包含 ES|QL 查询返回的字段以及查询创建的任何新字段。
新字段是指查询的源索引中不存在的字段,而是规则运行时创建的。您可以在由规则生成的任何警报的详细信息中访问新字段。例如,如果您使用 STATS...BY
函数创建一列包含聚合值的列,则该列将在规则运行时创建,并作为新字段添加到由规则生成的任何警报中。
以下是一个聚合查询示例
FROM logs-* | STATS host_count = COUNT(host.name) BY host.name | SORT host_count DESC | WHERE host_count > 20
- 此查询首先从与模式
logs-*
匹配的索引中搜索日志。 - 然后,查询按
host.name
聚合事件计数。 - 接下来,它按
host_count
降序排序结果。 - 然后,它过滤
host_count
字段在指定规则间隔内出现超过 20 次的事件。
使用聚合查询的规则可能会创建重复的警报。这可能发生在额外的回溯时间内发生的事件在当前规则执行和先前规则执行中都进行聚合时。
非聚合查询编辑
非聚合查询不使用 STATS...BY
函数,也不聚合源事件数据。由非聚合查询生成的警报包含查询返回的源事件字段、查询创建的新字段以及源事件文档中的所有其他字段。
新字段是指查询的源索引中不存在的字段,而是规则运行时创建的。您可以在由规则生成的任何警报的详细信息中访问新字段。例如,如果您使用 EVAL
命令追加包含计算值的新的列,则这些列将在规则运行时创建,并作为新字段添加到由规则生成的任何警报中。
以下是一个非聚合查询示例
FROM logs-* METADATA _id, _index, _version | WHERE event.category == "process" AND event.id == "8a4f500d" | LIMIT 10
- 此查询首先从与模式
logs-*
匹配的索引中查询日志。METADATA _id, _index, _version
运算符允许 警报去重。 - 接下来,查询过滤
event.category
是进程且event.id
为8a4f500d
的事件。 - 然后,它将输出限制为前 10 个结果。
为使用非聚合查询的规则打开警报去重编辑
要对警报进行去重,查询需要访问查询的源事件文档的 _id
、_index
和 _version
元数据字段。您可以通过在 FROM
源命令之后添加 METADATA _id, _index, _version
运算符来允许此操作,例如
FROM logs-* METADATA _id, _index, _version | WHERE event.category == "process" AND event.id == "8a4f500d" | LIMIT 10
当提供这些元数据字段时,将为由查询生成的每个警报创建唯一的警报 ID。
在开发查询时,请确保您不会DROP
或过滤掉 _id
、_index
或 _version
元数据字段。
以下是一个无法对警报进行重复数据消除的查询示例。它使用 DROP
命令从结果表中省略 _id
属性
FROM logs-* METADATA _id, _index, _version | WHERE event.category == "process" AND event.id == "8a4f500d" | DROP _id | LIMIT 10
以下是一个无效查询的另一个示例,它使用 KEEP
命令仅在结果表中返回 event.*
字段
FROM logs-* METADATA _id, _index, _version | WHERE event.category == "process" AND event.id == "8a4f500d" | KEEP event.* | LIMIT 10
查询设计注意事项edit
编写查询时,请考虑以下事项
-
该
LIMIT
命令指定 ES|QL 查询返回的最大行数以及每个规则执行创建的最大警报数。类似地,检测规则的max_signals
设置指定它每次运行时可以创建的最大警报数。如果
LIMIT
值低于max_signals
值,则该规则使用LIMIT
值来确定该规则生成的警报的最大数量。如果LIMIT
值高于max_signals
值,则该规则使用max_signals
值。max_signals
的默认值为 100。您可以使用 创建规则 API 修改它。 - 编写聚合查询时,请使用
STATS...BY
命令,使用您希望在创建警报后搜索和筛选的字段。例如,使用host.name
、user.name
、process.name
字段以及STATS...BY
命令的BY
运算符将在警报文档中返回这些字段,并允许您从警报表中搜索和筛选它们。
ES|QL 规则限制edit
如果您的 ES|QL 查询创建了不是 ECS 架构一部分的新字段,则不会将它们映射到警报索引,因此您无法在警报表中搜索或筛选它们。作为一种解决方法,请创建 运行时字段。
突出显示 ES|QL 规则查询返回的字段edit
在配置 ES|QL 规则的 自定义突出显示的字段 时,您可以指定规则的聚合或非聚合查询返回的任何字段。这有助于确保返回的字段在您调查警报时在警报详细信息弹出窗口中可见。
配置基本规则设置edit
-
在 关于规则 窗格中,填写以下字段
- 名称:规则的名称。
- 描述:描述规则的作用。
-
默认严重性:选择该规则创建的警报的严重性级别
- 低:值得注意的警报,但通常不被视为安全事件。有时,多个低严重性警报的组合可能表明有可疑活动。
- 中:需要调查的警报。
- 高:需要立即调查的警报。
- 严重:表明很可能已发生安全事件的警报。
-
严重性覆盖(可选):选择使用源事件值覆盖生成的警报中的 默认严重性。选中后,将显示一个 UI 组件,您可以在其中将源事件字段值映射到严重性级别。以下示例展示了如何将严重性级别映射到
host.name
值对于阈值规则,并非所有源事件值都可以用于覆盖;只有聚合的字段(
分组依据
字段)才会包含数据。另外请注意,事件关联规则不支持覆盖。 -
默认风险评分:介于 0 到 100 之间的数值,表示该规则检测到的事件的风险。更改 严重性 级别时,此设置将更改为默认值,但您可以根据需要调整风险评分。一般准则如下
-
0
-21
表示低严重性。 -
22
-47
表示中等严重性。 -
48
-73
表示高严重性。 -
74
-100
表示严重性。
-
-
风险评分覆盖(可选):选择使用源事件值覆盖生成的警报中的 默认风险评分。选中后,将显示一个 UI 组件以选择用于风险评分的源字段。例如,如果您想在警报中使用源事件的风险评分
对于阈值规则,并非所有源事件值都可以用于覆盖;只有聚合的字段(
分组依据
字段)才会包含数据。 - 标签(可选):用于对规则进行分类、筛选和搜索的词语和短语。
-
继续以下 一个 操作
配置高级规则设置(可选)edit
-
单击 高级设置,并在适用情况下填写以下字段
- 参考 URL(可选):与规则相关的信息的参考。例如,指向背景信息的链接。
- 误报示例(可选):可能产生误报警报的常见场景列表。
- MITRE ATT&CKTM 威胁(可选):添加相关的 MITRE 框架战术、技术和子技术。
-
自定义突出显示的字段(可选):指定个性化警报调查流程的突出显示字段。具有值的字段将添加到警报详细信息弹出窗口中的 突出显示的字段 部分。没有值的字段不会添加。创建规则后,您可以在规则详细信息页面“关于”部分找到所有自定义突出显示的字段。
您可以添加的自定义突出显示的字段数量没有限制。
- 设置指南(可选):关于规则先决条件的说明,例如所需的集成、配置步骤以及规则正常运行所需的任何其他内容。
- 调查指南(可选):用于分析人员调查该规则创建的警报的信息。您还可以添加操作按钮以 运行 Osquery 或 启动时间线调查,使用警报数据。
- 作者(可选):规则的作者。
- 许可证(可选):规则的许可证。
-
Elastic 端点异常(可选):将所有 Elastic 端点安全规则异常添加到此规则(有关添加端点异常的更多信息,请参阅 添加 Elastic 端点异常)。
如果您选择此选项,您可以在规则详细信息页面上添加 端点异常。此外,添加到端点安全规则的所有未来异常也会影响此规则。
- 构建块(可选):选择创建构建块规则。默认情况下,从构建块规则生成的警报不会显示在 UI 中。有关更多信息,请参阅 关于构建块规则。
-
指标前缀覆盖:定义指标数据在指标文档结构中的位置。指标匹配规则执行时,它会查询指定的指标索引并引用此设置以查找包含指标数据的字段。此数据用于使用有关匹配的威胁指标的元数据来丰富指标匹配警报。此设置的默认值为
threat.indicator
。如果您的威胁指标数据位于其他位置,请相应地更新此设置,以确保仍然可以执行警报丰富。
-
规则名称覆盖(可选):选择一个源事件字段,用作 UI(警报表)中的规则名称。这对于快速查看有关警报的更多信息非常有用。例如,如果规则从 Suricata 生成警报,选择
event.action
允许您直接在警报表中看到导致事件的操作(Suricata 类别)。对于阈值规则,并非所有源事件值都可以用于覆盖;只有聚合的字段(
分组依据
字段)才会包含数据。 -
时间戳覆盖(可选):选择一个源事件时间戳字段。选中后,规则的查询将使用所选字段(而不是默认的
@timestamp
字段)来搜索警报。这有助于减少由于网络或服务器故障而导致的丢失警报。具体来说,如果您的摄取管道在将事件发送到 Elasticsearch 时添加时间戳,这将避免由于摄取延迟而导致的丢失警报。但是,如果您知道您的数据源具有不准确的@timestamp
值,建议您选择 不要使用 @timestamp 作为后备时间戳字段 选项以完全忽略@timestamp
字段。该 Microsoft 和 Google Workspace Filebeat 模块具有一个
event.ingested
时间戳字段,可以用作默认@timestamp
字段的替代字段。
-
单击 继续。将显示 计划规则 窗格。
- 继续 设置规则的计划。
设置规则的计划edit
- 选择规则运行的频率。
-
可选地,向规则添加
附加回溯时间
。定义后,该规则将搜索具有附加时间的索引。例如,如果您将规则设置为每 5 分钟运行一次,附加回溯时间为 1 分钟,则该规则每 5 分钟运行一次,但会分析在过去 6 分钟内添加到索引的文档。
建议将
附加回溯时间
设置为至少 1 分钟。这将确保在规则没有完全按照计划时间运行时不会丢失警报。Elastic Security 可防止重复。在
附加回溯时间
内发现的任何重复警报都 *不会* 被创建。 -
单击 继续。将显示 规则操作 窗格。
-
执行以下任一操作
设置警报通知(可选)编辑
使用 Kibana Actions 设置生成警报时通过其他系统发送的通知。
-
选择一个连接器类型来确定通知的发送方式。例如,如果您选择 Jira 连接器,则通知将发送到您的 Jira 系统。
每个操作类型都需要一个连接器。连接器存储从外部系统发送通知所需的信息。您可以在创建规则时或在 堆栈管理 → 连接器 中配置连接器。有关更多信息,请参见 操作和连接器类型。
-
选择连接器后,设置其操作频率以定义何时发送通知
-
警报摘要:选择此选项以获取汇总生成的警报的报告,您可以随时查看。警报摘要将在指定的间隔时间内发送。
设置自定义通知频率时,请勿选择比规则执行计划短的时间。
- 对于每个警报:选择此选项以确保每次生成新警报时都发送通知。
-
-
(可选)指定发送通知时需要满足的其他条件。单击切换按钮以启用设置,然后添加所需的详细信息
- 如果警报与查询匹配:输入一个 KQL 查询,该查询定义必须满足以发送通知的字段值对或查询条件。查询仅搜索规则指定索引中的警报文档。
- 如果警报在时间范围内生成:设置时间范围详细信息。仅当在您定义的时间范围内生成警报时才会发送通知。
-
填写所需的连接器类型字段。以下是用 Jira 的示例
- 使用默认通知消息或自定义它。您可以通过单击消息文本框上方的图标并从可用 警报通知变量 列表中选择来向消息添加更多上下文。
-
创建规则(激活或不激活)。
激活规则后,它将被排队,并且其时间表由其初始运行时间决定。例如,如果您激活一个每 5 分钟运行一次的规则,在 14:03 开始运行,但直到 14:04 才运行,它将在 14:09 再次运行。
警报通知占位符编辑
您可以使用 mustache 语法 将变量添加到通知消息中。您选择的操作频率决定了您可以从中选择的变量。
以下变量可以传递给所有规则
请参考 操作频率:警报摘要 以了解如果规则的操作频率为 警报摘要,可以传递的额外变量。
-
{{context.alerts}}
:检测到的警报数组 -
{{{context.results_link}}}
:Kibana 中警报的 URL -
{{context.rule.anomaly_threshold}}
:生成警报的异常阈值分数(仅限机器学习规则) -
{{context.rule.description}}
:规则描述 -
{{context.rule.false_positives}}
:规则误报 -
{{context.rule.filters}}
:规则过滤器(仅限查询规则) -
{{context.rule.id}}
:创建规则后返回的唯一规则 ID -
{{context.rule.index}}
:规则运行的索引(仅限查询规则) -
{{context.rule.language}}
:规则查询语言(仅限查询规则) -
{{context.rule.machine_learning_job_id}}
:关联的机器学习作业的 ID(仅限机器学习规则) -
{{context.rule.max_signals}}
:每次规则执行允许的最大警报数量 -
{{context.rule.name}}
:规则名称 -
{{context.rule.query}}
:规则查询(仅限查询规则) -
{{context.rule.references}}
:规则引用 -
{{context.rule.risk_score}}
:默认规则风险分数即使使用 风险分数覆盖 选项,此占位符也包含规则的默认值。
-
{{context.rule.rule_id}}
:生成的或用户定义的规则 ID,可以在不同系统中用作标识符 -
{{context.rule.saved_id}}
:保存的搜索 ID -
{{context.rule.severity}}
:默认规则严重性即使使用 严重性覆盖 选项,此占位符也包含规则的默认值。
-
{{context.rule.threat}}
:规则威胁框架 -
{{context.rule.threshold}}
:规则阈值(仅限阈值规则) -
{{context.rule.timeline_id}}
:关联的时间线 ID -
{{context.rule.timeline_title}}
:关联的时间线名称 -
{{context.rule.type}}
:规则类型 -
{{context.rule.version}}
:规则版本 -
{{date}}`
:规则安排操作的日期 -
{{kibanaBaseUrl}}
:配置的server.publicBaseUrl
值,如果未配置则为空字符串 -
{{rule.id}}
:规则的 ID -
{{rule.name}}
:规则的名称 -
{{rule.spaceId}}
:规则的空间 ID -
{{rule.tags}}
:规则的标签 -
{{rule.type}}
:规则的类型 -
{{state.signals_count}}
:检测到的警报数量
以下变量仅当规则的操作频率为每个警报时才能传递
-
{{alert.actionGroup}}
:为规则安排操作的警报的操作组 -
{{alert.actionGroupName}}
:为规则安排操作的警报的操作组的人类可读名称 -
{{alert.actionSubgroup}}
:为规则安排操作的警报的操作子组 -
{{alert.id}}
:为规则安排操作的警报的 ID -
{{alert.flapping}}
:警报上的标志,指示警报状态是否反复更改
警报占位符示例编辑
要了解要解析哪些字段,请参阅 检测 API 以查看规则的 JSON 表示。
使用 {{context.rule.filters}}
输出过滤器列表的示例
{{#context.rule.filters}} {{^meta.disabled}}{{meta.key}} {{#meta.negate}}NOT {{/meta.negate}}{{meta.type}} {{^exists}}{{meta.value}}{{meta.params.query}}{{/exists}}{{/meta.disabled}} {{/context.rule.filters}}
使用 {{context.alerts}}
作为数组的示例,该数组包含自上次执行操作以来生成的每个警报
{{#context.alerts}} Detection alert for user: {{user.name}} {{/context.alerts}}
使用 mustache "当前元素" 符号 {{.}}
输出 signal.rule.references
数组中的所有规则引用的示例
{{#signal.rule.references}} {{.}} {{/signal.rule.references}}
设置响应操作(可选)编辑
使用响应操作设置每次规则执行时将运行的其他功能
- Osquery:包含带有自定义查询规则的实时 Osquery 查询。生成警报时,Osquery 会自动收集与警报相关的系统数据。有关更多信息,请参阅 添加 Osquery 响应操作。
- Elastic Defend:在满足规则条件时自动在端点上运行响应操作。例如,当在主机上检测到特定活动或事件时,您可以自动隔离主机或终止进程。有关更多信息,请参阅 自动响应操作。
主机隔离涉及将主机与网络隔离,以防止威胁进一步传播并限制潜在的损害。请注意,自动主机隔离可能会导致意外后果,例如中断合法用户的活动或阻止关键业务流程。
预览您的规则(可选)编辑
您可以预览任何自定义规则或预构建规则,以了解其将有多吵。对于自定义规则,您可以调整规则的查询或其他设置。
要预览规则,您需要对 .preview.alerts-security.alerts-<space-id>
和 .internal.preview.alerts-security.alerts-<space-id>-*
索引拥有 read
权限,以及对 Security 功能拥有 All
权限。有关更多信息,请参阅 检测先决条件和要求。
创建或编辑规则时,单击 规则预览 按钮。预览将在侧边栏中打开,显示直方图和表格,其中包含基于定义的规则设置和索引中过去事件的预期警报。
预览还包括规则例外和覆盖字段的影响。在直方图中,警报按 event.category
(或机器学习规则的 host.name
)堆叠,具有多个值的警报将被计算多次。
要与规则预览进行交互
-
使用日期和时间选择器定义预览的时间范围。
避免使用短规则间隔设置长时间范围,否则规则预览可能会超时。
-
单击 刷新 以更新预览。
- 编辑规则设置或预览的时间范围时,按钮将从蓝色 () 更改为绿色 (),表示自上次预览以来规则已进行编辑。
- 对于相对时间范围(例如
Last 1 hour
),刷新预览以检查最新结果。(预览不会自动刷新新传入数据。)
- 单击警报表中的 查看详细信息 图标 () 以查看特定警报的详细信息。
- 要调整预览大小,请将鼠标悬停在规则设置和预览之间,然后单击并拖动边框。您也可以单击边框,然后单击折叠图标 () 以折叠和展开预览。
- 要关闭预览,请再次单击 规则预览 按钮。