使用选择和取消选择关键字来控制列

支持的平台:

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

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

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

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

用法示例

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

以下查询会搜索与 alex-laptop 关联的事件,并将 security_result.about.email 添加为 Events 表中的一列:

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