配置信息中心过滤条件

支持的平台:

本文档介绍了如何对数据源字段应用过滤条件,以优化相应图表中显示的数据。

添加过滤条件

如需添加过滤条件,请执行以下操作:

  1. 修改信息中心页面上,点击 过滤条件以添加过滤条件。

  2. 管理过滤条件窗口中,点击 添加以添加新的过滤条件。

  3. 过滤字段字段中,输入要用于过滤数据的字段。如需详细了解支持的数据源和字段,请参阅支持的数据源

  4. 过滤条件名称字段中,输入过滤条件的名称。

  5. “应用到”字段中,选择要应用过滤条件的图表。

  6. 可选:为过滤条件设置默认值。

  7. 点击完成以添加过滤条件并关闭管理过滤条件窗口。

高级过滤

Google Security Operations 在其内置的信息中心平台中提供高级过滤功能。与绑定到特定字段的基本过滤条件不同,高级过滤条件作为查询变量(也称为令牌)运行。借助此功能,安全分析师可以在运行时直接将动态值、复杂的正则表达式或布尔值逻辑注入 YARA-L 查询中。

主要特性

  • 灵活的过滤:使用单个过滤条件输入(例如 $token$)可同时根据信息中心内多个图表中的多个字段进行过滤。
  • 动态下拉选项:使用单独的 YARA-L 查询的结果动态填充过滤条件选项。这样可确保用户始终从最新数据中进行选择。
  • 灵活的格式设置:定义自定义前缀、后缀和分隔符(例如,用于正则表达式的 / 或用于 IN 子句的 ,),以便在将用户选择的值注入查询之前对其进行格式设置。
  • 默认值:配置默认值,以确保信息中心能够立即加载数据,并支持无需用户互动的自动安排的报告。
  • 多选支持:允许用户为单个令牌选择多个值,并使用用户定义的分隔符进行连接。

安全性和权限

高级过滤功能使用现有的基于角色的访问控制 (RBAC) 权限,不需要新权限。以下 Identity and Access Management (IAM) 权限相关:

IAM 权限 用途
nativedashboards.update 在信息中心内创建和配置高级过滤条件。
nativeDashboards.get 查看信息中心并使用过滤条件输入控件。
dashboardQueries.execute 执行替换了令牌的最终已解析查询。

对于数据 RBAC 强制执行,用于填充动态下拉菜单的查询是在查看用户的上下文中执行的。这样可确保用户只能看到他们有权访问的值(例如特定 IP)。

配置和使用高级过滤条件

以下部分详细介绍了如何在 Google SecOps 信息中心内设置和使用高级过滤条件。

创建新的高级过滤条件

如需创建新的高级过滤条件,请按以下步骤操作:

  1. 在信息中心内打开管理过滤条件对话框。
  2. 选择 ,然后选择高级过滤条件作为过滤条件类型
  3. 输入过滤条件名称(标签)和令牌变量(例如 token)。
    • 令牌变量语法限制:令牌变量名称仅允许使用字母数字字符和下划线 (^[a-zA-Z0-9_]+$)。
    • 唯一性:令牌名称必须是唯一的。冲突会阻止保存过滤条件。
  4. 选择 Generate from Query(动态 YARA-L 结果)或 Manual Entry(静态列表)。
    1. 选择根据查询生成后:
      1. 输入查询,然后定义时间范围
      2. 点击运行搜索
      3. 选择列下拉菜单中选择一列。
      4. 预览过滤条件下拉菜单中选择一个值。
    2. 选择手动输入后,在手动输入字段中输入一个值,然后点击添加
  5. 选择前缀后缀来封装特定逻辑(例如正则表达式)的值。
    • 如果令牌在 YARA-L 查询中用于正则表达式分隔符内(例如 principal.ip = /$token$/),您通常不需要指定前缀后缀
    • 如果令牌在未使用正则表达式分隔符的情况下使用,但旨在充当锚定正则表达式(例如 principal.ip = $token$),请将 Prefix 设置为 /^,并将 Suffix 设置为 $/
  6. 切换允许选择多个选项按钮,以定义定界符(例如,对于正则表达式 OR 逻辑,定界符为 |)。
  7. 从下拉菜单中选择默认值
  8. 选中或取消选中为默认值应用前缀/后缀复选框。
  9. 点击完成

在图表查询中使用令牌

信息中心创建者必须手动将令牌(用 $ 符号括起来)插入图表的查询中。

示例

  • principal.hostname = $hostname$
  • re.regex(target.ip, $ip_regex$)

对于令牌验证,如果查询使用了未定义的令牌,系统会显示黄色警告横幅。在这种情况下,系统会将令牌视为字面量字符串。

加载时的默认行为

Google SecOps 信息中心内的高级过滤条件只能通过字符串替换来运行。与标准过滤条件不同,系统不会为您解读逻辑,而是在编译查询之前,将 $token$ 替换为所选值。查询充当模板,用户负责确保最终的令牌替换查询在语法上正确无误。

默认值和查询有效性

由于系统不会在未提供任何输入的情况下自动忽略令牌,因此您必须定义默认值,以在初始加载和预定报告中保持有效的查询结构。

以下是有效的默认值配置示例:

使用场景 查询上下文 默认值配置 生成的逻辑
完全匹配 principal.hostname = $host$ 错误:留空会导致语法无效 (principal.hostname =)。正确:使用可保持有效语法的占位符。 使用空默认值的示例:失败,因为 principal.hostname = 是无效的 YARA-L。
完全匹配 principal.hostname = "$host$" 留空 成功:评估为 principal.hostname = "",这不会返回任何结果,但在语法上有效。
通配符(显示全部) principal.hostname = /.*$host$.*/ .* 成功:评估为 principal.hostname = /.*/,一种“包罗万象”的正则表达式,可返回所有结果。
正则表达式(显示全部) principal.hostname = $host$ /.*/ 成功:评估结果为 principal.hostname = /.*/,与所有主机名匹配。
正则表达式锚 metadata.product_name = /^$token$$/ .* 成功:在加载时评估为 metadata.product_name = /^.*$/,与所有商品匹配。
整数(显示全部) principal.host = $token$ 0 or 1=1 成功:评估结果为 principal.host = 0 or 1=1,有效返回所有结果。
整数(显示全部) cast.as_string(principal.host) = $token$ /.*/ 成功:评估结果为 cast.as_string(principal.host) = /.*/,与主机整数的所有字符串表示形式匹配。
具有默认“全部”逻辑的单选令牌 $log = metadata.log_type \n $log = if($log$ = "", metadata.log_type, $log$)\n match: $log 留空(前缀:",后缀:" 成功:如果默认值为空,$log 会变为 ""if 语句变为 $log = if("" = "", metadata.log_type, ""),简化为 $log = metadata.log_type。然后,该查询会匹配所有日志类型。
单个特定默认值 $et = metadata.event_type \n $et = $et2$ \n match: $et EMAIL_TRANSACTION(前缀:",后缀:" 成功:加载时评估结果为 $et = "EMAIL_TRANSACTION",将默认结果限制为特定事件类别。
多选正则表达式 $log = metadata.log_type \n $log = $logs$ \n match: $log .*(前缀:/,后缀:/,分隔符:| 成功:在加载时评估为 $log = /.*/,匹配所有日志类型。选择多个值(例如 DNSDHCP)的评估结果为 $log = /DNS|DHCP/
始终为 true 的默认值(显示全部) $et = metadata.event_type \n $et = $et4$ \n match: $et "USER_LOGIN" or 1=1(定界符:" or metadata.event_type = ",为默认值应用前缀/后缀:未选中) 成功:在加载时评估为 $et = "USER_LOGIN" or 1=1,与所有事件匹配。选择特定选项会将字符串替换为显式 OR 等值子句。
完整子句注入(多选) $et$ \n $et = metadata.event_type \n match: $et 留空(前缀:metadata.event_type = ",后缀:",定界符:" or metadata.event_type = ",为默认值应用前缀/后缀:未勾选) 成功:令牌本身会注入整个目标字段谓词。选择 USER_LOGINNETWORK_DNS 会展开为 metadata.event_type = "USER_LOGIN" or metadata.event_type = "NETWORK_DNS"
正则表达式默认全方位捕获 $pet = metadata.product_event_type \n $pet = $pet$ \n match: $pet /.*/(前缀:",后缀:",为默认值应用前缀/后缀:未选中) 成功:在加载时评估为 $pet = /.*/,匹配所有商品事件类型。选择特定值时,系统会添加英文引号(例如 $pet = "USER_LOGIN")。

高级过滤条件的语法注意事项

系统不会自动转义特殊字符(例如引号或斜杠)。请务必验证您配置的前缀、后缀和分隔符是否与您使用的查询语言 (YARA-L) 的语法一致。

API 规范

如需详细了解 API 规范,请参阅 AdvancedFilterConfig

管理全局时间过滤条件

全局时间过滤条件适用于所有图表,无论图表的数据源是什么。

如需选择可应用全局时间过滤条件的图表,请执行以下操作:

  1. 修改信息中心页面上,点击 过滤条件以添加过滤条件。

  2. 管理过滤条件窗口中,从过滤条件列表中选择全局时间过滤条件

  3. 点击切换开关,确保已启用全局时间过滤条件。

  4. 应用到字段中,选择要应用全局时间过滤条件的图表。

  5. 设置默认值字段中,使用绝对值或相对值设置时间范围以查看数据。

  6. 点击完成以启用过滤条件并关闭管理过滤条件窗口。

应用信息中心过滤条件

如需应用过滤条件,请执行以下操作:

  1. 修改信息中心页面上,依次点击返回 > 过滤条件,以查看信息中心过滤条件。

  2. 信息中心过滤条件窗口中,选择您创建的过滤条件。

  3. 为所选字段输入一个值。

  4. 点击应用。系统会使用新数据刷新适用相应过滤条件的图表。

更改全局时间过滤条件

当您打开信息中心时,系统会以默认时间范围对适用的图表应用全局时间过滤条件。

如需更改全局时间过滤条件值,请执行以下操作:

  1. 点击 安排

  2. 全局时间过滤条件对话框中,选择 pastbetween 运算符。

  3. 选择日期范围。

  4. 点击应用。所选图表会根据全局时间过滤条件更新为新数据。

了解 Past 运算符

past 运算符会根据您提供的值和单位计算开始时间。结束时间始终为当前时间。

开始时间的计算方式取决于单位:

  • 秒、分钟、小时:这些单位通过从当前时间戳中减去确切的秒数、分钟数或小时数来计算开始时间。
  • 天、周、月、年:这些单位会将开始时间对齐到当前或上一个周期的开始时间(例如,当前天或月的开始时间)。

下表显示了基于当前时间戳(2025 年 7 月 2 日 13:13)的示例:

单位 过滤开始时间
n 2025 年 7 月 2 日 13:13:00 减去 n
n 分钟 2025 年 7 月 2 日 13:13:00 减去 n 分钟
n 小时 2025 年 7 月 2 日 13:13:00 减去 n 小时
1 2025 年 7 月 2 日 00:00:00(当前日的开始时间)
2 2025 年 7 月 1 日 00:00:00(前一天的开始时间)
1 当前周第一天的 00:00:00。周的开始日期取决于系统的语言区域设置。
1 2025 年 7 月 1 日 00:00:00(当前月份的开始时间)
2 2025 年 6 月 1 日 00:00:00(上个月的开始时间)
1 2025 年 1 月 1 日 00:00:00(当前年份的开始时间)
2 2024 年 1 月 1 日 00:00:00(上一年年初)

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。