使用 select 和 unselect 关键字控制列

支持:

在“搜索”和“信息中心”中,您可以使用 selectunselect 关键字自定义 结果 标签页(在“搜索”中)的 事件 表格以及信息中心 widget 中的表格中显示的列。

虽然默认显示时间戳事件 列,但您可以使用 selectunselect 关键字添加或移除特定的统一数据模型 (UDM) 字段、outcome 变量或 match 变量,以优化视图。

selectunselect 关键字是可选的,并且在规则中不可用。

  • select:指定要在查询结果中包含的 UDM 字段、outcome 变量或 match 变量的列表。
  • unselect:指定要从查询结果中排除的 UDM 字段或变量的列表。

用法示例

本部分中的示例演示了在搜索查询中使用 selectunselect 关键字的常见语法。

以下查询会搜索与 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 关键字用于定义列输出,而 selectunselect 用于管理显示的特定字段。

metadata.event_type = "USER_LOGIN"
select:
  principal.hostname

聚合查询和统计查询

在 YARA-L 中,您通常将聚合函数和统计函数放在 outcome 部分,而 match 部分用于定义聚合基数。

selectunselect 部分是互斥的,可让用户包含或排除结果 变量、匹配变量、事件字段或实体字段。

所有 UDM 搜索都是单个事件搜索或聚合搜索(也称为“事件统计信息” )。聚合搜索会指定 match 关键字,或在输出中使用聚合函数(例如 sumcount)。

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 专业人士的解答。