配置信息中心过滤条件
本文档介绍了如何对数据源字段应用过滤条件,以优化相应图表中显示的数据。
添加过滤条件
如需添加过滤条件,请执行以下操作:
在修改信息中心页面上,点击 过滤条件以添加过滤条件。
在管理过滤条件窗口中,点击 添加以添加新的过滤条件。
在过滤字段字段中,输入要用于过滤数据的字段。如需详细了解支持的数据源和字段,请参阅支持的数据源。
在过滤条件名称字段中,输入过滤条件的名称。
在“应用到”字段中,选择要应用过滤条件的图表。
可选:为过滤条件设置默认值。
点击完成以添加过滤条件并关闭管理过滤条件窗口。
高级过滤
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 信息中心内设置和使用高级过滤条件。
创建新的高级过滤条件
如需创建新的高级过滤条件,请按以下步骤操作:
- 在信息中心内打开管理过滤条件对话框。
- 选择 ,然后选择高级过滤条件作为过滤条件类型。
- 输入过滤条件名称(标签)和令牌变量(例如
token)。- 令牌变量语法限制:令牌变量名称仅允许使用字母数字字符和下划线 (
^[a-zA-Z0-9_]+$)。 - 唯一性:令牌名称必须是唯一的。冲突会阻止保存过滤条件。
- 令牌变量语法限制:令牌变量名称仅允许使用字母数字字符和下划线 (
- 选择 Generate from Query(动态 YARA-L 结果)或 Manual Entry(静态列表)。
- 选择根据查询生成后:
- 输入查询,然后定义时间范围。
- 点击运行搜索。
- 从选择列下拉菜单中选择一列。
- 从预览过滤条件下拉菜单中选择一个值。
- 选择手动输入后,在手动输入字段中输入一个值,然后点击添加。
- 选择根据查询生成后:
- 选择前缀和后缀来封装特定逻辑(例如正则表达式)的值。
- 如果令牌在 YARA-L 查询中用于正则表达式分隔符内(例如
principal.ip = /$token$/),您通常不需要指定前缀或后缀。 - 如果令牌在未使用正则表达式分隔符的情况下使用,但旨在充当锚定正则表达式(例如
principal.ip = $token$),请将 Prefix 设置为/^,并将 Suffix 设置为$/。
- 如果令牌在 YARA-L 查询中用于正则表达式分隔符内(例如
- 切换允许选择多个选项按钮,以定义定界符(例如,对于正则表达式
OR逻辑,定界符为|)。 - 从下拉菜单中选择默认值。
- 选中或取消选中为默认值应用前缀/后缀复选框。
- 点击完成。
在图表查询中使用令牌
信息中心创建者必须手动将令牌(用 $ 符号括起来)插入图表的查询中。
示例:
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 = /.*/,匹配所有日志类型。选择多个值(例如 DNS、DHCP)的评估结果为 $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_LOGIN 和 NETWORK_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。
管理全局时间过滤条件
全局时间过滤条件适用于所有图表,无论图表的数据源是什么。
如需选择可应用全局时间过滤条件的图表,请执行以下操作:
在修改信息中心页面上,点击 过滤条件以添加过滤条件。
在管理过滤条件窗口中,从过滤条件列表中选择全局时间过滤条件。
点击切换开关,确保已启用全局时间过滤条件。
在应用到字段中,选择要应用全局时间过滤条件的图表。
在设置默认值字段中,使用绝对值或相对值设置时间范围以查看数据。
点击完成以启用过滤条件并关闭管理过滤条件窗口。
应用信息中心过滤条件
如需应用过滤条件,请执行以下操作:
在修改信息中心页面上,依次点击返回 > 过滤条件,以查看信息中心过滤条件。
在信息中心过滤条件窗口中,选择您创建的过滤条件。
为所选字段输入一个值。
点击应用。系统会使用新数据刷新适用相应过滤条件的图表。
更改全局时间过滤条件
当您打开信息中心时,系统会以默认时间范围对适用的图表应用全局时间过滤条件。
如需更改全局时间过滤条件值,请执行以下操作:
点击 安排。
在全局时间过滤条件对话框中,选择
past或between运算符。选择日期范围。
点击应用。所选图表会根据全局时间过滤条件更新为新数据。
了解 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(上一年年初) |