使用情况或状况部分
支持的平台:
Google SecOps
SIEM
本文档介绍了如何使用 or 运算符在查询的 condition 部分中编写灵活简洁的检测逻辑。
在事件变量或占位符变量之间使用 or 可让您组合多个条件,从而降低查询语法的总体复杂性:
- 检查是否存在任一指定变量。例如,
$e1 or $e2需要至少一个$e1实例或一个$e2实例。
条件部分中的 or 语法
直接在变量之间使用 or 关键字。以下示例与 COUNT($e1)>0 or COUNT($e2)>0 等效:
condition:
$e1 or $e2 // True if $e1 exists or $e2 exists
规则示例:存在风险的 IP 或不良哈希执行
以下示例规则会在检测到来自风险 IP 地址的进程启动或执行已知不良哈希时检测到威胁:
rule MultiEventOr {
meta:
author = "google-secops"
events:
$e1.principal.ip = "1.1.1.1"
$e1.metadata.event_type = "PROCESS_LAUNCH"
$e2.target.file.sha256 = "badhash..."
$user = $e1.principal.user.userid
$user = $e2.principal.user.userid
match:
$user over 5m
condition:
$e1 or $e2
}
搜索示例:有风险的 IP 或不良哈希执行
以下示例展示了如何将示例规则重新格式化为搜索查询。
$e1.principal.ip = "1.1.1.1"
$e1.metadata.event_type = "PROCESS_LAUNCH"
$e2.target.file.sha256 = "badhash..."
$user = $e1.principal.user.userid
$user = $e2.principal.user.userid
match:
$user over 5m
condition:
$e1 or $e2
已知限制
资源消耗:在事件变量之间使用
or比使用and消耗更多资源,并可能导致查询执行时间更长。事件变量限制:对于搜索和信息中心,您可以在多事件
or语法中使用最多 3 个事件。对于规则,您可以在多事件or语法中使用最多 2 个事件。必需的事件存在:使用
or的表达式不能是不受限的。事件的存在必须是子句为 true 的必要条件(例如,$e1或#e1 > 0)。变量类型混合:您无法在同一
or列表中将非 UDM 变量与 UDM 事件变量结合使用。窗口限制:您无法将滚动窗口与
or语法搭配使用。
后续步骤
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。