创建规则
编辑创建规则编辑
当与 API 密钥 身份验证一起使用时,用户的密钥将分配给受影响的规则。如果用户的密钥被删除或用户变为非活动状态,规则将停止运行。
如果用于授权的 API 密钥与创建或最近更新规则的密钥具有不同的权限,则规则的行为可能会发生变化。
创建新的检测规则。
您可以创建以下类型的规则
- 自定义查询: 搜索定义的索引,并在文档与规则的 KQL 查询匹配时创建警报。
- 事件关联: 搜索定义的索引,并在结果与 事件查询语言 (EQL) 查询匹配时创建警报。
-
阈值: 搜索定义的索引,并在指定字段的值在单次执行期间达到阈值时创建警报。当存在多个满足阈值的值时,将为每个值生成警报。
例如,如果阈值
field
是source.ip
,其value
是10
,则将为在规则的搜索结果中至少出现 10 次的每个源 IP 地址生成警报。如果您有兴趣,请参阅 术语聚合 以了解更多信息。 -
指标匹配: 当字段与指定 Elasticsearch 索引 中定义的值匹配时创建警报。例如,您可以为 IP 地址创建一个索引,并使用此索引在事件的
destination.ip
等于索引中的值时创建警报。索引的字段映射应符合 ECS 规范。 - 新术语: 在指定的时间范围内,为在源文档中检测到的每个新术语生成警报。
- ES|QL: 使用 Elasticsearch 查询语言 (ES|QL) 查找事件并聚合搜索结果。
- 机器学习规则: 当机器学习作业发现超过定义的阈值的异常时创建警报(请参阅 异常检测)。
要检索机器学习作业 ID(创建机器学习作业时需要),请调用 Elasticsearch 获取作业 API。包含 siem
在 groups
字段中的机器学习作业可用于创建规则
... "job_id": "linux_anomalous_network_activity_ecs", "job_type": "anomaly_detector", "job_version": "7.7.0", "groups": [ "auditbeat", "process", "siem" ], ...
此外,您还可以设置当规则创建警报时的通知。通知使用 Kibana 警报和操作框架。每种操作类型都需要一个连接器。连接器存储通过外部系统发送通知所需的信息。以下连接器类型受规则通知支持
- Slack
- 电子邮件
- PagerDuty
- Webhook
- Microsoft Teams
- IBM Resilient
- Jira
- ServiceNow ITSM
有关 PagerDuty 字段的更多信息,请参阅 发送 v2 事件。
要检索配置规则通知所需的连接器 ID,请使用请求有效负载中包含 "type": "action"
的 Kibana 查找对象 API。
有关 Kibana 操作和警报以及其他 API 调用的详细信息,请参阅
请求 URL编辑
POST <kibana 主机>:<端口>/api/detection_engine/rules
请求主体编辑
定义规则值的 JSON 对象
所有规则类型所需的字段编辑
名称 | 类型 | 描述 |
---|---|---|
description |
字符串 |
规则的描述。 |
name |
字符串 |
规则的名称。 |
risk_score |
整数 |
警报严重程度的数值表示,范围为 0 到 100,其中
|
severity |
字符串 |
规则产生的警报的严重程度级别,必须是以下之一
|
type |
字符串 |
规则基于的数据类型
|
查询、指标匹配、阈值、新术语、事件关联和 ES|QL 规则所需的字段编辑
名称 | 类型 | 描述 |
---|---|---|
query |
字符串 |
规则用于创建警报的 查询。
|
阈值规则所需的字段编辑
名称 | 类型 | 描述 |
---|---|---|
threshold |
对象 |
定义生成警报的字段和阈值,其中
|
保存的查询规则所需的字段编辑
名称 | 类型 | 描述 |
---|---|---|
saved_id |
字符串 |
规则用于创建警报的 Kibana 保存的搜索。 |
事件关联规则所需的字段编辑
名称 | 类型 | 描述 |
---|---|---|
language |
字符串 |
必须是 |
ES|QL 规则所需的字段编辑
名称 | 类型 | 描述 |
---|---|---|
language |
字符串 |
必须是 |
机器学习规则所需的字段编辑
名称 | 类型 | 描述 |
---|---|---|
anomaly_threshold |
整数 |
规则创建警报的异常得分阈值。有效值为 |
machine_learning_job_id |
String[] |
规则监控异常得分的机器学习作业 ID。 |
指标匹配规则所需的字段编辑
名称 | 类型 | 描述 |
---|---|---|
threat_index |
String[] |
用于检查哪些字段值会生成警报的 Elasticsearch 索引。 |
threat_query |
字符串 |
用于确定 Elasticsearch 索引中哪些字段用于生成警报的查询。 |
threat_mapping |
Object[] |
定义源事件字段与 Elasticsearch 威胁索引中的值之间的映射的
您可以使用布尔 |
新术语规则所需的字段编辑
名称 | 类型 | 描述 |
---|---|---|
new_terms_fields |
String[] |
需要监控以获取新值的字段。必须包含 1-3 个字段名称。 |
history_window_start |
字符串 |
用于检查术语是否已被查看过的开始日期。支持相对日期 - 例如, |
所有规则类型可选字段edit
名称 | 类型 | 描述 |
---|---|---|
actions |
定义在生成警报时采取的自动化操作(通知)的数组。 |
|
author |
String[] |
规则的作者。 |
building_block_type |
字符串 |
确定规则是否充当构建块。默认情况下,构建块警报不会显示在 UI 中。这些规则用作其他规则的基础,这些规则确实会生成警报。其值必须为 |
enabled |
布尔值 |
确定规则是否启用。默认值为 |
false_positives |
String[] |
用于描述规则可能发出误报警报的常见原因的字符串数组。默认值为一个空数组。 |
from |
字符串 |
每次规则执行时分析数据的开始时间,使用 日期数学范围。例如, |
interval |
字符串 |
规则执行频率,使用 日期数学范围。例如, |
license |
字符串 |
规则的许可证。 |
max_signals |
整数 |
规则在单个执行期间可以创建的最大警报数量。默认值为 注意: 为了避免规则失败,请勿将 |
meta |
对象 |
规则元数据的占位符。 注意: 当您保存对规则设置的更改时,此字段将被覆盖。 |
note |
字符串 |
有助于调查规则产生的警报的说明。 |
references |
String[] |
包含有关规则的相关信息的说明或参考的数组。默认值为一个空数组。 |
rule_id |
字符串 |
用于标识规则的唯一 ID。例如,当规则从第三方安全解决方案转换时。在未提供时自动创建。 |
setup |
字符串 |
使用规则先决条件(例如所需的集成、配置步骤以及规则正常工作所需的任何其他内容)的说明填充规则的设置指南。 |
tags |
String[] |
包含用于对规则进行分类、筛选和搜索的词语和短语的字符串数组。默认值为一个空数组。 |
threat |
包含有关规则监控的威胁类型的攻击信息的 Object,请参阅 ECS 威胁字段。默认值为一个空数组。 |
|
throttle |
字符串 |
确定采取操作的频率 规则级 在 Elastic Security 8.8 及更高版本中,您可以使用 (
当 |
version |
整数 |
规则的版本号。默认值为 |
investigation_fields |
对象 |
指定突出显示的字段,以用于个性化警报调查流程
|
指标匹配规则可选字段edit
名称 | 类型 | 描述 |
---|---|---|
threat_filters |
Object[] |
查询和筛选上下文 数组,用于从包含威胁值的 Elasticsearch 索引中筛选文档。 |
threat_indicator_path |
字符串 |
与摄取处理器类似,用户可以使用此字段来定义其威胁指标在其指标文档上的位置。默认值为 |
查询、指标匹配、阈值和新术语规则可选字段edit
名称 | 类型 | 描述 |
---|---|---|
language |
字符串 |
确定查询语言,必须为 |
事件关联、查询、阈值、指标匹配、新术语和 ES|QL 规则可选字段edit
名称 | 类型 | 描述 |
---|---|---|
filters |
Object[] |
查询和筛选上下文 数组,用于定义创建警报的条件。默认值为一个空数组。 此字段不支持 ES|QL 规则。 |
index |
String[] |
规则运行的索引。默认值为 Kibana 高级设置页面(Kibana → 堆栈管理 → 高级设置 → 此字段不支持 ES|QL 规则。 |
risk_score_mapping |
Object[] |
使用源事件中的值覆盖生成的警报的
|
rule_name_override |
字符串 |
设置源事件中哪个字段用于填充警报的 |
severity_mapping |
Object[] |
使用源事件中的值覆盖生成的警报的
|
timestamp_override |
字符串 |
设置用于查询索引的时间字段。如果未指定,规则将查询 |
exceptions_list |
Object[] |
异常容器 数组,定义异常,即使满足其他条件,也会阻止规则生成警报。该对象具有以下字段
|
事件关联规则可选字段edit
名称 | 类型 | 描述 |
---|---|---|
event_category_field |
字符串 |
包含事件分类,例如 |
tiebreaker_field |
字符串 |
设置用于对事件进行排序(按升序、字典序)的辅助字段,如果它们具有相同的时间戳。 |
timestamp_field |
字符串 |
包含用于对事件序列进行排序的事件时间戳。这不同于 |
查询、指标匹配、阈值、事件关联(仅非序列查询)和新术语规则的可选警报抑制字段edit
警报抑制处于阈值、指标匹配、事件关联和新术语规则的技术预览阶段。此功能可能会在将来的版本中发生更改或删除。Elastic 将努力解决任何问题,但技术预览中的功能不受正式 GA 功能支持 SLA 的约束。
查询、指标匹配、事件关联(仅非序列查询)和新术语规则edit
名称 | 类型 | 描述 |
---|---|---|
alert_suppression |
对象 |
定义警报抑制配置。可用字段
|
actions
架构edit
所有字段都是必需的
名称 | 类型 | 描述 |
---|---|---|
action_type_id |
字符串 |
用于发送通知的连接器类型,可以为
|
group |
字符串 |
可以选择按用例对操作进行分组。使用 |
id |
字符串 |
连接器 ID。 |
参数 |
对象 |
包含允许的连接器字段的对象,根据连接器类型而有所不同
|
可选 action
字段edit
名称 | 类型 | 描述 |
---|---|---|
频率 |
字符串 |
包含操作频率的对象
|
alerts_filter |
对象 |
包含操作的条件过滤器的对象
|
警报通知占位符edit
您可以使用 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}}
: 警报上的标志,指示警报状态是否反复变化
response actions
模式edit
所有字段都是必需的
名称 | 类型 | 描述 |
---|---|---|
action_type_id |
字符串 |
您要添加到规则的响应操作。
|
参数 |
对象 |
包含允许的响应操作字段的对象,根据响应操作而有所不同。 Osquery 对于 Osquery (
有关运行 Osquery 查询和包的更多信息,请参阅 创建实时查询 API。 端点安全 对于端点安全 (
|
threat
模式edit
所有字段都是必需的
名称 | 类型 | 描述 |
---|---|---|
框架 |
字符串 |
相关的攻击框架。 |
策略 |
对象 |
包含攻击类型信息的 对象
|
技术 |
数组 |
包含攻击技术信息的数组(可选)
|
子技术 |
数组 |
包含更具体的攻击技术信息的数组
|
仅使用 MITRE ATT&CKTM 框架描述的威胁显示在 UI 中 (规则 → 检测规则 (SIEM) → 规则名称)。
示例请求edit
示例 1
搜索由 MS Office 启动的进程的查询规则
POST api/detection_engine/rules { "rule_id": "process_started_by_ms_office_program", "risk_score": 50, "description": "Process started by MS Office program - possible payload", "interval": "1h", "name": "MS Office child process", "severity": "low", "tags": [ "child process", "ms office" ], "type": "query", "from": "now-70m", "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", "language": "kuery", "filters": [ { "query": { "match": { "event.action": { "query": "Process Create (rule: ProcessCreate)", "type": "phrase" } } } } ], "enabled": false }
如果规则在 15:00 开始运行,它将分析从 13:50 到 15:00 的数据。下一次运行时,在 16:00,它将分析从 14:50 到 16:00 的数据。
示例 2
检测来自同一外部源 IP 地址的多个 Windows 主机登录失败尝试的阈值规则,并将 severity
值映射到自定义源事件字段
POST api/detection_engine/rules { "description": "Detects when there are 20 or more failed login attempts from the same IP address with a 2 minute time frame.", "enabled": true, "exceptions_list": [ { "id": "int-ips", "namespace_type": "single", "type": "detection" } ], "from": "now-180s", "index": [ "winlogbeat-*" ], "interval": "2m", "name": "Windows server prml-19", "query": "host.name:prml-19 and event.category:authentication and event.outcome:failure", "risk_score": 30, "rule_id": "liv-win-ser-logins", "severity": "low", "severity_mapping": [ { "field": "source.geo.city_name", "operator": "equals", "severity": "low", "value": "Manchester" }, { "field": "source.geo.city_name", "operator": "equals", "severity": "medium", "value": "London" }, { "field": "source.geo.city_name", "operator": "equals", "severity": "high", "value": "Birmingham" }, { "field": "source.geo.city_name", "operator": "equals", "severity": "critical", "value": "Wallingford" } ], "tags": [ "Brute force" ], "threshold": { "field": "source.ip", "value": 20 }, "type": "threshold" }
示例 3
机器学习规则,当 linux_anomalous_network_activity_ecs
机器学习作业发现阈值为 70 或更高的异常时,创建警报并发送 Slack 通知
POST api/detection_engine/rules { "anomaly_threshold": 70, "rule_id": "ml_linux_network_high_threshold", "risk_score": 70, "machine_learning_job_id": "linux_anomalous_network_activity_ecs", "description": "Generates alerts when the job discovers anomalies over 70", "interval": "5m", "name": "Anomalous Linux network activity", "note": "Shut down the internet.", "setup": "This rule requires data coming in from Elastic Defend." "severity": "high", "tags": [ "machine learning", "Linux" ], "type": "machine_learning", "from": "now-6m", "enabled": true, "actions": [ { "action_type_id": ".slack", "group": "default", "id": "5ad22cd5-5e6e-4c6c-a81a-54b626a4cec5", "params": { "message": "Urgent: {{context.rule.description}}" } } ] }
示例 4
当 Windows rundll32.exe
进程建立异常网络连接时创建警报的事件关联规则
POST api/detection_engine/rules { "rule_id": "eql-outbound-rundll32-connections", "risk_score": 21, "description": "Unusual rundll32.exe network connection", "name": "rundll32.exe network connection", "severity": "low", "tags": [ "EQL", "Windows", "rundll32.exe" ], "type": "eql", "language": "eql", "query": "sequence by process.entity_id with maxspan=2h [process where event.type in (\"start\", \"process_started\") and (process.name == \"rundll32.exe\" or process.pe.original_file_name == \"rundll32.exe\") and ((process.args == \"rundll32.exe\" and process.args_count == 1) or (process.args != \"rundll32.exe\" and process.args_count == 0))] [network where event.type == \"connection\" and (process.name == \"rundll32.exe\" or process.pe.original_file_name == \"rundll32.exe\")]" }
指标匹配规则,当以下任一条件成立时创建警报
- 事件的目标 IP 地址 和 端口号与
threat_index
索引中的目标 IP 和 端口值匹配。 - 事件的源 IP 地址与
threat_index
索引中的主机 IP 地址值匹配。
POST api/detection_engine/rules { "type": "threat_match", "actions": [], "index": [ "packetbeat-*" ], "query": "destination.ip:* or host.ip:*", "threat_index": [ "ip-threat-list" ], "threat_query": "*:*", "threat_mapping": [ { "entries": [ { "field": "destination.ip", "type": "mapping", "value": "destination.ip" }, { "field": "destination.port", "type": "mapping", "value": "destination.port" } ] }, { "entries": [ { "field": "source.ip", "type": "mapping", "value": "host.ip" } ] } ], "risk_score": 50, "severity": "medium", "name": "Bad IP threat match", "description": "Checks for bad IP addresses listed in the ip-threat-list index" }
用于匹配威胁值的 Elasticsearch 索引。 |
|
定义哪些威胁索引字段用于匹配值的查询。在本例中,将使用 |
|
单个 |
|
同级 |
示例 6
新术语规则,当检测到用户的新的 IP 地址时创建警报
POST api/detection_engine/rules { "risk_score": 21, "description": "Detects a user associated with a new IP address", "name": "New User IP Detected", "severity": "medium", "type": "new_terms", "language": "kuery", "query": "*", "new_terms_fields": ["user.id", "source.ip"], "history_window_start": "now-30d", "index": ["auditbeat*"] }
示例 7
ES|QL 规则,从与 Excel 父进程匹配的事件中创建警报
POST api/detection_engine/rules { "type": "esql", "language": "esql", "query": "from auditbeat-8.10.2 METADATA _id, _version, _index | where process.parent.name == \"EXCEL.EXE\"", "name": "Find Excel events", "description": "Find Excel events", "tags": [], "interval": "5m", "from": "now-360s", "to": "now", "enabled": false, "risk_score": 21, "severity": "low" }
示例 8
搜索由 MS Office 启动的进程的查询规则,并通过 process.parent.name
字段在 5 小时的时间段内抑制警报
POST api/detection_engine/rules { "rule_id": "process_started_by_ms_office_program", "risk_score": 50, "description": "Process started by MS Office program - possible payload", "interval": "1h", "name": "MS Office child process", "severity": "low", "tags": [ "child process", "ms office" ], "type": "query", "from": "now-70m", "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", "language": "kuery", "filters": [ { "query": { "match": { "event.action": { "query": "Process Create (rule: ProcessCreate)", "type": "phrase" } } } } ], "enabled": false, "alert_suppression": { "duration": { "unit": "h", "value": 5 }, "group_by": [ "process.parent.name" ], "missing_fields_strategy": "suppress" } }
响应代码edit
-
200
- 表示成功调用。
响应有效负载edit
一个 JSON 对象,其中包含唯一的 ID、规则创建的时间和版本号。如果请求有效负载不包含 rule_id
字段,则还会生成唯一的规则 ID。
查询规则的示例响应
{ "created_at": "2020-04-07T14:51:09.755Z", "updated_at": "2020-04-07T14:51:09.970Z", "created_by": "elastic", "description": "Process started by MS Office program - possible payload", "enabled": false, "false_positives": [], "from": "now-70m", "id": "6541b99a-dee9-4f6d-a86d-dbd1869d73b1", "immutable": false, "interval": "1h", "rule_id": "process_started_by_ms_office_program", "max_signals": 100, "risk_score": 50, "name": "MS Office child process", "references": [], "severity": "low", "updated_by": "elastic", "tags": [ "child process", "ms office" ], "to": "now", "type": "query", "threat": [], "version": 1, "actions": [], "filters": [ { "query": { "match": { "event.action": { "query": "Process Create (rule: ProcessCreate)", "type": "phrase" } } } } ], "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", "language": "kuery", "related_integrations": [], "required_fields": [], "setup": "" }
[dev] 此功能正在开发中,可能会在将来的版本中发生更改或完全删除。这些功能不受支持,并且不属于官方 GA 功能的支持 SLA。 这些字段正在开发中,其用法可能会改变: |
机器学习作业规则的示例响应
{ "created_at": "2020-04-07T14:45:15.679Z", "updated_at": "2020-04-07T14:45:15.892Z", "created_by": "elastic", "description": "Generates alerts when the job discovers anomalies over 70", "enabled": true, "false_positives": [], "from": "now-6m", "id": "83876f66-3a57-4a99-bf37-416494c80f3b", "immutable": false, "interval": "5m", "rule_id": "ml_linux_network_high_threshold", "max_signals": 100, "risk_score": 70, "name": "Anomalous Linux network activity", "references": [], "severity": "high", "updated_by": "elastic", "tags": [ "machine learning", "Linux" ], "to": "now", "type": "machine_learning", "threat": [], "version": 1, "actions": [ { "action_type_id": ".slack", "group": "default", "id": "5ad22cd5-5e6e-4c6c-a81a-54b626a4cec5", "params": { "message": "Urgent: {{context.rule.description}}" }, "frequency": { "summary": true, "notifyWhen": "onActiveAlert", "throttle": null } } ], "note": "Shut down the internet.", "status": "going to run", "status_date": "2020-04-07T14:45:21.685Z", "anomaly_threshold": 70, "machine_learning_job_id": "linux_anomalous_network_activity_ecs", "related_integrations": [], "required_fields": [], "setup": "" }
[dev] 此功能正在开发中,可能会在将来的版本中发生更改或完全删除。这些功能不受支持,并且不属于官方 GA 功能的支持 SLA。 这些字段正在开发中,其用法可能会改变: |
阈值规则的示例响应
{ "author": [], "created_at": "2020-07-22T10:27:23.486Z", "updated_at": "2020-07-22T10:27:23.673Z", "created_by": "elastic", "description": "Detects when there are 20 or more failed login attempts from the same IP address with a 2 minute time frame.", "enabled": true, "false_positives": [], "from": "now-180s", "id": "15dbde26-b627-4d74-bb1f-a5e0ed9e4993", "immutable": false, "interval": "2m", "rule_id": "liv-win-ser-logins", "max_signals": 100, "risk_score": 30, "risk_score_mapping": [], "name": "Windows server prml-19", "references": [], "severity": "low", "severity_mapping": [ { "field": "source.geo.city_name", "operator": "equals", "severity": "low", "value": "Manchester" }, { "field": "source.geo.city_name", "operator": "equals", "severity": "medium", "value": "London" }, { "field": "source.geo.city_name", "operator": "equals", "severity": "high", "value": "Birmingham" }, { "field": "source.geo.city_name", "operator": "equals", "severity": "critical", "value": "Wallingford" } ], "updated_by": "elastic", "tags": [ "Brute force" ], "to": "now", "type": "threshold", "threat": [], "version": 1, "exceptions_list": [ { "id": "int-ips", "namespace_type": "single", "type": "detection" } ], "actions": [], "index": [ "winlogbeat-*" ], "query": "host.name:prml-19 and event.category:authentication and event.outcome:failure", "language": "kuery", "threshold": { "field": "source.ip", "value": 20 }, "related_integrations": [], "required_fields": [], "setup": "" }
[dev] 此功能正在开发中,可能会在将来的版本中发生更改或完全删除。这些功能不受支持,并且不属于官方 GA 功能的支持 SLA。 这些字段正在开发中,其用法可能会改变: |
EQL 规则的示例响应
{ "author": [], "created_at": "2020-10-05T09:06:16.392Z", "updated_at": "2020-10-05T09:06:16.403Z", "created_by": "elastic", "description": "Unusual rundll32.exe network connection", "enabled": true, "false_positives": [], "from": "now-6m", "id": "93808cae-b05b-4dc9-8479-73574b50f8b1", "immutable": false, "interval": "5m", "rule_id": "eql-outbound-rundll32-connections", "max_signals": 100, "risk_score": 21, "risk_score_mapping": [], "name": "rundll32.exe network connection", "references": [], "severity": "low", "severity_mapping": [], "updated_by": "elastic", "tags": [ "EQL", "Windows", "rundll32.exe" ], "to": "now", "type": "eql", "threat": [], "version": 1, "exceptions_list": [], "throttle": "no_actions", "query": "sequence by process.entity_id with maxspan=2h [process where event.type in (\"start\", \"process_started\") and (process.name == \"rundll32.exe\" or process.pe.original_file_name == \"rundll32.exe\") and ((process.args == \"rundll32.exe\" and process.args_count == 1) or (process.args != \"rundll32.exe\" and process.args_count == 0))] [network where event.type == \"connection\" and (process.name == \"rundll32.exe\" or process.pe.original_file_name == \"rundll32.exe\")]", "language": "eql", "related_integrations": [], "required_fields": [], "setup": "" }
[dev] 此功能正在开发中,可能会在将来的版本中发生更改或完全删除。这些功能不受支持,并且不属于官方 GA 功能的支持 SLA。 这些字段正在开发中,其用法可能会改变: |
指标匹配规则的示例响应
{ "author": [], "created_at": "2020-10-06T07:07:58.227Z", "updated_at": "2020-10-06T07:07:58.237Z", "created_by": "elastic", "description": "Checks for bad IP addresses listed in the ip-threat-list index", "enabled": true, "false_positives": [], "from": "now-6m", "id": "d5daa13f-81fb-4b13-be2f-31011e1d9ae1", "immutable": false, "interval": "5m", "rule_id": "608501e4-c768-4f64-9326-cec55b5d439b", "max_signals": 100, "risk_score": 50, "risk_score_mapping": [], "name": "Bad IP threat match", "references": [], "severity": "medium", "severity_mapping": [], "updated_by": "elastic", "tags": [], "to": "now", "type": "threat_match", "threat": [], "version": 1, "exceptions_list": [], "index": [ "packetbeat-*" ], "query": "destination.ip:* or host.ip:*", "language": "kuery", "threat_query": "*:*", "threat_index": [ "ip-threat-list" ], "threat_mapping": [ { "entries": [ { "field": "destination.ip", "type": "mapping", "value": "destination.ip" }, { "field": "destination.port", "type": "mapping", "value": "destination.port" } ] }, { "entries": [ { "field": "source.ip", "type": "mapping", "value": "host.ip" } ] } ], "related_integrations": [], "required_fields": [], "setup": "" }
[dev] 此功能正在开发中,可能会在将来的版本中发生更改或完全删除。这些功能不受支持,并且不属于官方 GA 功能的支持 SLA。 这些字段正在开发中,其用法可能会改变: |
新术语规则的示例响应
{ "author": [], "created_at": "2020-10-06T07:07:58.227Z", "updated_at": "2020-10-06T07:07:58.237Z", "created_by": "elastic", "description": "Detects a user associated with a new IP address", "enabled": true, "false_positives": [], "from": "now-6m", "id": "eb7225c0-566b-11ee-8b4f-bbf3afdeb9f4", "immutable": false, "interval": "5m", "rule_id": "c6f5d0bc-7be9-47d4-b2f3-073d22641e30", "max_signals": 100, "risk_score": 21, "risk_score_mapping": [], "name": "New User IP Detected", "references": [], "severity": "medium", "severity_mapping": [], "updated_by": "elastic", "tags": [], "to": "now", "type": "new_terms", "threat": [], "version": 1, "exceptions_list": [], "index": [ "auditbeat*" ], "query": "*", "language": "kuery", "new_terms_fields": ["user.id", "source.ip"], "history_window_start": "now-30d", "related_integrations": [], "required_fields": [], "setup": "" }
[dev] 此功能正在开发中,可能会在将来的版本中发生更改或完全删除。这些功能不受支持,并且不属于官方 GA 功能的支持 SLA。 这些字段正在开发中,其用法可能会改变: |
ES|QL 规则的示例响应
{ "name": "Find Excel events", "description": "Find Excel events", "risk_score": 21, "severity": "low", "output_index": "", "tags": [], "interval": "5m", "enabled": false, "author": [], "false_positives": [], "from": "now-360s", "max_signals": 100, "risk_score_mapping": [], "severity_mapping": [], "threat": [], "to": "now", "references": [], "version": 1, "exceptions_list": [], "actions": [], "id": "d0f20490-6da4-11ee-b85e-09e9b661f2e2", "updated_at": "2023-10-18T10:55:14.269Z", "updated_by": "elastic", "created_at": "2023-10-18T10:55:14.269Z", "created_by": "elastic", "revision": 0, "rule_id": "e4b53a89-debd-4a0d-a3e3-20606952e589", "immutable": false, "related_integrations": [], "required_fields": [], "setup": "", "type": "esql", "language": "esql", "query": "from auditbeat-8.10.2 METADATA _id | where process.parent.name == \"EXCEL.EXE\"" }