使用 select 和 unselect 关键字控制列
在“搜索”和“信息中心”中,您可以使用 select 和 unselect 关键字自定义 结果 标签页(在“搜索”中)的 事件 表格以及信息中心 widget 中的表格中显示的列。
虽然默认显示时间戳 和事件 列,但您可以使用 select 和 unselect 关键字添加或移除特定的统一数据模型 (UDM) 字段、outcome 变量或 match 变量,以优化视图。
select 和 unselect 关键字是可选的,并且在规则中不可用。
select:指定要在查询结果中包含的 UDM 字段、outcome变量或match变量的列表。unselect:指定要从查询结果中排除的 UDM 字段或变量的列表。
用法示例
本部分中的示例演示了在搜索查询中使用 select 和 unselect 关键字的常见语法。
示例:搜索单个事件
以下查询会搜索与 alex-laptop 关联的事件,并将 security_result.about.email 作为一列添加到事件 表格中:
principal.hostname = "alex-laptop"
limit: 10
select: security_result.about.email
示例:多列
您可以使用英文逗号分隔来添加多列。列会按照您列出的顺序显示。
principal.hostname = "alex-laptop"
limit: 10
select: network.sent_bytes, security_result.about.email
示例:表定义
在信息中心内,table 关键字用于定义列输出,而 select 或 unselect 用于管理显示的特定字段。
metadata.event_type = "USER_LOGIN"
select:
principal.hostname
聚合查询和统计查询
在 YARA-L 中,您通常将聚合函数和统计函数放在 outcome 部分,而 match 部分用于定义聚合基数。
select 和 unselect 部分是互斥的,可让用户包含或排除结果
变量、匹配变量、事件字段或实体字段。
所有 UDM 搜索都是单个事件搜索或聚合搜索(也称为“事件统计信息” )。聚合搜索会指定 match 关键字,或在输出中使用聚合函数(例如 sum 或 count)。
聚合搜索
stats 命令是数据聚合的主要工具。它会将原始事件数据转换为汇总的安全指标。虽然 eval 命令会处理字段级、逐行转换,但 stats 会执行集级聚合(类似于 SQL 中的 GROUP BY)。
示例:聚合搜索
以下查询会从最终显示中排除 $count_hostname 变量,以专注于 $count_id metric。
events:
$e.metadata.event_type != "RESOURCE_CREATION"
$e.principal.hostname = $hostname
$id = $e.network.session_id
match:
$hostname over 1h
outcome:
$count_hostname = count($hostname)
$count_id = count($id)
unselect:
$count_hostname
示例:搜索中的结果变量
您还可以将变量与 select 关键字搭配使用,以显示特定计算。以下示例将 $seconds 声明为结果变量。然后,Events 表格会将 $seconds 值显示为一列。
principal.hostname = "alex-laptop"
outcome:
$seconds = metadata.event_timestamp.seconds
limit: 10
select: $seconds, security_result.about.email
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。