更新规则
编辑更新规则
编辑当与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 配置设置 |
meta |
对象 |
规则元数据的占位符。 注意:当您保存对规则设置的更改时,此字段将被覆盖。 |
note |
字符串 |
帮助调查规则生成的警报的注释。 |
references |
字符串[] |
包含关于规则的相关信息的注释或参考的数组。默认为空数组。 |
required_fields |
对象[] |
规则要起作用所需的 Elasticsearch 字段及其类型。该对象具有以下字段
注意: |
setup |
字符串 |
使用有关规则先决条件的说明(例如所需集成、配置步骤以及规则正确运行所需的任何其他内容)填充规则的设置指南。 |
tags |
字符串[] |
包含用于分类、过滤和搜索规则的单词和短语的字符串数组。默认为空数组。 |
威胁 |
包含有关规则监控的威胁类型的攻击信息的对象,请参阅ECS 威胁字段。默认为空数组。 |
|
节流 |
字符串 |
确定执行操作的频率 规则级别的 在 Elastic Security 8.8 及更高版本中,您可以使用 (
当使用 |
版本 |
整数 |
规则的版本号。如果未提供此项,规则的版本号将递增 1。
|
related_integrations |
对象[] |
规则所依赖的 Elastic 集成。该对象具有以下字段
|
威胁匹配规则的可选字段
编辑名称 | 类型 | 描述 |
---|---|---|
threat_filters |
对象[] |
用于从包含威胁值的 Elasticsearch 索引中筛选文档的查询和筛选上下文数组。 |
threat_indicator_path |
字符串 |
与 ingest processor 非常相似,用户可以使用此字段定义其威胁指示器在指示器文档中的位置。默认为 |
查询、威胁匹配、阈值和新术语规则的可选字段
编辑名称 | 类型 | 描述 |
---|---|---|
language |
字符串 |
确定查询语言,必须为 |
EQL、查询、阈值、指示器匹配、新术语规则和 ES|QL 规则的可选字段
编辑名称 | 类型 | 描述 |
---|---|---|
filters |
对象[] |
用于定义从事件创建警报的条件的查询和筛选上下文数组。默认为空数组。 ES|QL 规则不支持此字段。 |
index |
字符串[] |
规则在其上运行的索引。默认为 Kibana 高级设置页面上定义的 Security Solution 索引(Kibana → 堆栈管理 → 高级设置 → ES|QL 规则不支持此字段。 |
risk_score_mapping |
对象[] |
使用源事件中的值覆盖生成的警报的
|
rule_name_override |
字符串 |
设置用于填充警报 |
severity_mapping |
对象[] |
使用源事件中的值覆盖生成的警报的
|
timestamp_override |
字符串 |
设置用于查询索引的时间字段。未指定时,规则查询 |
exceptions_list |
对象[] |
异常容器的数组,用于定义防止规则生成警报的异常,即使满足其其他条件也是如此。该对象具有以下字段
|
EQL 规则的可选字段
编辑名称 | 类型 | 描述 |
---|---|---|
event_category_field |
字符串 |
包含事件分类,例如 |
tiebreaker_field |
字符串 |
如果事件具有相同的时间戳,则设置用于对事件进行排序(按升序、字典顺序)的辅助字段。 |
timestamp_field |
字符串 |
包含用于对一系列事件进行排序的事件时间戳。这与 |
actions
架构
编辑调用 PUT
来修改 actions
对象时,这些字段是必需的
名称 | 类型 | 描述 |
---|---|---|
action_type_id |
字符串 |
用于发送通知的操作类型,可以是
|
group |
字符串 |
(可选)按用例对操作进行分组。对于警报通知,请使用 |
id |
字符串 |
连接器 ID。 |
params |
对象 |
包含允许的连接器字段的对象,这些字段根据连接器类型而有所不同
|
可选的 action
字段
编辑名称 | 类型 | 描述 |
---|---|---|
frequency |
字符串 |
包含操作频率的对象
|
alerts_filter |
对象 |
包含操作的条件筛选器的对象
|
threat
架构
编辑当调用 PUT
来修改 threat
对象时,这些字段是必需的
名称 | 类型 | 描述 |
---|---|---|
framework |
字符串 |
相关的攻击框架。 |
tactic |
对象 |
包含有关攻击类型的信息的对象
|
technique |
对象 |
包含有关攻击技术的信息的对象
|
只有使用 MITRE ATT&CKTM 框架描述的威胁才会显示在 UI 中(规则 → 检测规则 (SIEM) → 规则名称)。
用于查询、指示器匹配、阈值、事件关联(仅限非序列查询)、新术语、ES|QL 和机器学习规则的可选警报抑制字段
编辑事件关联规则的警报抑制功能处于技术预览阶段。该功能可能会在未来的版本中更改或删除。Elastic 将努力修复任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。
查询、指示器匹配、事件关联(仅限非序列查询)、新术语、ES|QL 和机器学习规则
编辑名称 | 类型 | 描述 |
---|---|---|
alert_suppression |
对象 |
定义警报抑制配置。可用字段
|
阈值规则
编辑名称 | 类型 | 描述 |
---|---|---|
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 }