更新规则
编辑更新规则
编辑当与 API 密钥 身份验证一起使用时,用户的密钥将分配给受影响的规则。如果用户的密钥被删除或用户变得不活跃,则规则将停止运行。
如果用于授权的 API 密钥与创建或最近更新规则的密钥具有不同的权限,则规则行为可能会发生变化。
更新现有的检测规则。
您可以使用 PUT
或 PATCH
方法更新规则,其中
-
PUT
替换原始规则并删除未指定的字段。 -
PATCH
更新指定的字段。
请求 URL
编辑PUT <kibana 主机>:<端口>/api/detection_engine/rules
PATCH <kibana 主机>:<端口>/api/detection_engine/rules
请求正文
编辑一个包含以下内容的 JSON 对象:
- 您要更新的规则的
id
或rule_id
字段。 - 您要修改的字段。
如果您调用 PUT
来更新规则,则所有未指定的字段都将被删除。您无法修改 id
或 rule_id
值。
对于 PATCH
调用,可以修改任何字段,而对于 PUT
调用,某些字段是必需的。
PUT
调用所需的字段
编辑名称 | 类型 | 描述 |
---|---|---|
description |
字符串 |
规则的描述。 |
name |
字符串 |
规则的名称。 |
risk_score |
整数 |
警报严重程度的数字表示,范围为 0 到 100,其中
|
severity |
字符串 |
规则生成的警报的严重程度级别,必须是以下之一:
|
type |
字符串 |
规则基于的数据类型
|
阈值规则 PUT
调用所需的字段
编辑名称 | 类型 | 描述 |
---|---|---|
threshold |
对象 |
定义生成警报的字段和阈值,其中
|
已保存查询规则 PUT
调用所需的字段
编辑名称 | 类型 | 描述 |
---|---|---|
saved_id |
字符串 |
规则用于创建警报的 Kibana 已保存搜索。 |
EQL 规则 PUT
调用所需的字段
编辑名称 | 类型 | 描述 |
---|---|---|
language |
字符串 |
必须为 |
ES|QL 规则 PUT
调用所需的字段
编辑名称 | 类型 | 描述 |
---|---|---|
language |
字符串 |
必须为 |
机器学习规则 PUT
调用所需的字段
编辑名称 | 类型 | 描述 |
---|---|---|
anomaly_threshold |
整数 |
规则创建警报的异常分数阈值。有效值为 |
machine_learning_job_id |
字符串 |
规则监控异常分数的机器学习作业 ID。 |
威胁匹配规则 PUT
调用所需的字段
编辑名称 | 类型 | 描述 |
---|---|---|
threat_index |
字符串数组 |
用于检查哪些字段值生成警报的 Elasticsearch 索引。 |
threat_query |
字符串 |
用于确定 Elasticsearch 索引中哪些字段用于生成警报的查询。 |
threat_mapping |
对象数组 |
定义源事件字段与 Elasticsearch 威胁索引中的值之间的映射的
您可以使用布尔 |
新术语规则 PUT
调用所需的字段
编辑名称 | 类型 | 描述 |
---|---|---|
new_terms_fields |
字符串数组 |
要监控新值的字段。必须包含 1-3 个字段名称。 |
history_window_start |
字符串 |
检查术语是否以前出现过时要使用的开始日期。支持相对日期 - 例如, |
所有规则类型的可选字段
编辑名称 | 类型 | 描述 |
---|---|---|
actions |
定义生成警报时采取的自动化操作(通知)的数组。 |
|
author |
字符串数组 |
规则的作者。 |
building_block_type |
字符串 |
确定规则是否充当构建块。默认情况下,构建块警报不会显示在 UI 中。这些规则用作生成警报的其他规则的基础。其值必须为 |
enabled |
布尔值 |
确定规则是否启用。默认为 |
false_positives |
字符串数组 |
用于描述规则可能发出误报警报的常见原因的字符串数组。默认为空数组。 |
from |
字符串 |
每次规则执行时分析数据的开始时间,使用 日期数学范围。例如, |
interval |
字符串 |
规则执行频率,使用 日期数学范围。例如, |
license |
字符串 |
规则的许可证。 |
max_signals |
整数 |
规则在单次运行期间可以创建的最大警报数(规则的 每次运行的最大警报数 高级设置 值)。默认为 此设置可能被 Kibana 配置设置 |
元数据 |
对象 |
规则元数据的占位符。 注意:保存规则设置的更改时,此字段会被覆盖。 |
备注 |
字符串 |
有助于调查规则生成的警报的备注。 |
参考 |
字符串数组 |
包含关于规则的相关信息或参考的数组。默认为空数组。 |
必需字段 |
对象数组 |
规则正常运行所需的 Elasticsearch 字段及其类型。该对象具有以下字段
注意: |
设置 |
字符串 |
使用说明填充规则的设置指南,例如规则先决条件(如必需的集成、配置步骤以及规则正常运行所需的任何其他内容)。 |
标签 |
字符串数组 |
包含有助于对规则进行分类、过滤和搜索的单词和短语的字符串数组。默认为空数组。 |
威胁 |
包含有关规则监控的威胁类型的攻击信息的object,请参阅 ECS 威胁字段。默认为空数组。 |
|
节流 |
字符串 |
确定采取操作的频率 规则级别的 在 Elastic Security 8.8 及更高版本中,您可以使用 (
当使用 |
版本 |
整数 |
规则的版本号。如果未提供此版本号,则规则的版本号将递增 1。
|
相关集成 |
对象数组 |
规则依赖的 Elastic 集成。该对象具有以下字段
|
威胁匹配规则的可选字段
编辑名称 | 类型 | 描述 |
---|---|---|
威胁过滤器 |
对象数组 |
用于从包含威胁值的 Elasticsearch 索引中过滤文档的 查询和过滤器上下文 数组。 |
威胁指标路径 |
字符串 |
类似于摄取处理器,用户可以使用此字段定义其威胁指标在其指标文档中的位置。默认为 |
查询、威胁匹配、阈值和新术语规则的可选字段
编辑名称 | 类型 | 描述 |
---|---|---|
language |
字符串 |
确定查询语言,该语言必须是 |
EQL、查询、阈值、指标匹配、新术语规则和 ES|QL 规则的可选字段
编辑名称 | 类型 | 描述 |
---|---|---|
过滤器 |
对象数组 |
用于定义何时从事件创建警报的条件的 查询和过滤器上下文 数组。默认为空数组。 此字段不支持 ES|QL 规则。 |
索引 |
字符串数组 |
规则在其上运行的索引。默认为 Kibana 高级设置页面上定义的安全解决方案索引(Kibana → 堆栈管理 → 高级设置 → 此字段不支持 ES|QL 规则。 |
风险评分映射 |
对象数组 |
使用源事件中的值覆盖生成的警报的
|
规则名称覆盖 |
字符串 |
设置源事件中哪个字段用于填充警报的 |
严重性映射 |
对象数组 |
使用源事件中的值覆盖生成的警报的
|
时间戳覆盖 |
字符串 |
设置用于查询索引的时间字段。如果未指定,则规则查询 |
异常列表 |
对象数组 |
异常容器 数组,定义即使满足规则的其他条件,也阻止规则生成警报的异常。该对象具有以下字段
|
EQL 规则的可选字段
编辑名称 | 类型 | 描述 |
---|---|---|
事件类别字段 |
字符串 |
包含事件分类,例如 |
决胜符字段 |
字符串 |
设置用于对事件进行排序的辅助字段(按升序、词典顺序),如果它们具有相同的时间戳。 |
时间戳字段 |
字符串 |
包含用于对事件序列进行排序的事件时间戳。这与 |
actions
架构
编辑调用 PUT
修改 actions
对象时,这些字段是必需的
名称 | 类型 | 描述 |
---|---|---|
操作类型 ID |
字符串 |
用于发送通知的操作类型,可以是
|
组 |
字符串 |
根据用例对操作进行可选分组。对于警报通知,请使用 |
ID |
字符串 |
连接器 ID。 |
参数 |
对象 |
包含允许的连接器字段的对象,根据连接器类型而异
|
可选的action
字段
编辑名称 | 类型 | 描述 |
---|---|---|
频率 |
字符串 |
包含操作频率的对象
|
alerts_filter |
对象 |
包含操作条件筛选器对象
|
threat
模式
编辑调用PUT
修改threat
对象时,需要这些字段
名称 | 类型 | 描述 |
---|---|---|
框架 |
字符串 |
相关的攻击框架。 |
策略 |
对象 |
包含攻击类型信息的对象
|
技术 |
对象 |
包含攻击技术信息的对象
|
仅在UI中显示使用MITRE ATT&CKTM框架描述的威胁(规则 → 检测规则(SIEM) → 规则名称)。
查询、指标匹配、事件关联(仅非序列查询)、新术语、ES|QL和机器学习规则的可选警报抑制字段
编辑事件关联规则的警报抑制处于技术预览阶段。此功能可能会在将来的版本中更改或删除。Elastic将努力解决任何问题,但技术预览中的功能不受正式GA功能的支持SLA的约束。
查询、指标匹配、事件关联(仅非序列查询)、新术语、ES|QL和机器学习规则
编辑名称 | 类型 | 描述 |
---|---|---|
alert_suppression |
对象 |
定义警报抑制配置。可用字段
|
示例请求
编辑更新threat
对象
PATCH api/detection_engine/rules { "rule_id": "process_started_by_ms_office_program_possible_payload", "threat": [ { "framework": "MITRE ATT&CK", "tactic": { "id": "TA0001", "reference": "https://attack.mitre.org/tactics/TA0001", "name": "Initial Access" }, "technique": [ { "id": "T1193", "name": "Spearphishing Attachment", "reference": "https://attack.mitre.org/techniques/T1193" } ] } ] }
响应代码
编辑-
200
- 指示调用成功。
响应有效负载
编辑规则更新后的JSON对象,包括规则更新时间和递增的版本号。
示例响应
{ "created_at": "2020-01-05T09:56:11.805Z", "updated_at": "2020-01-05T09:59:59.129Z", "created_by": "elastic", "description": "Process started by MS Office program - possible payload", "enabled": false, "false_positives": [], "filters": [ { "query": { "match": { "event.action": { "query": "Process Create (rule: ProcessCreate)", "type": "phrase" } } } } ], "from": "now-6m", "id": "4f228868-9928-47e4-9785-9a1a9b520c7f", "interval": "5m", "rule_id": "process_started_by_ms_office_program_possible_payload", "language": "kuery", "max_signals": 100, "risk_score": 50, "name": "MS Office child process", "query": "process.parent.name:EXCEL.EXE or process.parent.name:MSPUB.EXE or process.parent.name:OUTLOOK.EXE or process.parent.name:POWERPNT.EXE or process.parent.name:VISIO.EXE or process.parent.name:WINWORD.EXE", "references": [], "severity": "low", "updated_by": "elastic", "tags": [ "child process", "ms office" ], "related_integrations": [ { "package": "o365", "version": "^2.3.2"} ], "required_fields": [ { "name": "process.parent.name", "type": "keyword", "ecs": true } ], "setup": "", "type": "query", "threat": [ { "framework": "MITRE ATT&CK", "tactic": { "id": "TA0001", "reference": "https://attack.mitre.org/tactics/TA0001", "name": "Initial Access" }, "technique": [ { "id": "T1193", "name": "Spearphishing Attachment", "reference": "https://attack.mitre.org/techniques/T1193" } ] } ], "execution_summary": { "last_execution": { "date": "2022-03-23T16:06:12.787Z", "status": "partial failure", "status_order": 20, "message": "This rule attempted to query data from Elasticsearch indices listed in the \"Index pattern\" section of the rule definition, but no matching index was found.", "metrics": { "total_search_duration_ms": 135, "total_indexing_duration_ms": 15, "execution_gap_duration_s": 0, } } }, "version": 2 }