控制台中的查询结果

本页面介绍了如何创建和修改 Security Command Center 发现结果 发现结果页面上的查询编辑器面板 Google Cloud 控制台和安全运维控制台。

使用查询来检索特定的发现结果,并过滤 会显示在发现结果查询结果中。

在 Security Command Center Enterprise 控制台中处理发现结果

如果您是 Security Command Center 企业版客户,则可以在两个控制台中处理发现结果:

  • Google Cloud 控制台:适用于所有服务层级
  • Security Operations 控制台:仅在 Enterprise 层级中提供

如需了解详情,请参阅 Security Command Center Enterprise 控制台

修改发现结果查询

查询编辑器面板中,您可以为查询添加过滤条件,以根据发现结果的属性或属性值来选择发现结果。您可以针对存在值、缺少值或部分字符串匹配等情况进行过滤。

如需了解如何修改发现结果查询,请点击以下内容的标签页: 您使用的控制台

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往 Security Command Center 的发现结果页面。

    前往“发现结果”页面

  2. 选择您的 Google Cloud 项目或组织。系统随即会加载发现结果页面,并在查询预览字段中显示默认查询。
  3. 查询预览部分右侧,点击 修改查询以打开查询编辑器面板。
  4. 选择添加过滤条件,以导航、搜索及向查询添加预定义的属性过滤条件。
  5. 您可以通过 Select filter 对话框选择支持的发现结果 属性和值。

    1. 选择发现结果特性或在搜索发现结果特性框中输入其名称。 系统会显示可用子特性的列表。
    2. 选择子特性。一个选择字段,显示您可以构建查询语句的位置 一个查询运算符,以及该子属性的一个或多个值。
    3. 从面板中选择运算符以及子属性的一个或多个值。 如需详细了解查询运算符及其使用的函数,请参阅“添加过滤条件”菜单中的查询运算符
    4. 点击应用

      对话框将会关闭,并且您的查询即会更新。

    5. 重复这些步骤,直到发现结果查询包含所需的所有特性。

当您在发现结果页面上使用查询构建器时,快速过滤条件部分会被停用,以避免两者之间发生冲突。

安全运维控制台

  1. 在 Security Operations 控制台中,转到发现结果页面。
    https://CUSTOMER_SUBDOMAIN.backstory.chronicle.security/posture/findings
    

    CUSTOMER_SUBDOMAIN 替换为您的客户专用标识符。

  2. 查询编辑器面板中,点击 添加过滤条件添加 过滤器对话框。您可以通过此对话框选择支持的发现结果属性和值。
  3. 类别框中,选择或输入发现结果属性。
  4. 属性名称框中,选择或输入子属性。
  5. 运算符框中,为所选子属性的值选择评估选项。如需详细了解评估选项和可用的运算符,请参阅“添加过滤条件”菜单中的查询运算符
  6. 选择应用

    对话框将会关闭,并且您的查询即会更新。

  7. 重复此过程,直到发现结果查询包含您要按其过滤的所有属性。

    如需清除过滤条件,请点击重置

或者,您也可以手动构建发现结果查询,方法与使用 Security Command Center API 构建发现结果过滤条件相同。当您在查询中输入内容时,系统会显示自动补全菜单,您可以在其中选择过滤条件名称、函数和值。如需手动打开自动补全菜单,请按 Control+Space

修改查询时,编辑器会突出显示查询中的所有错误,以便在提交查询之前更正这些错误。

查询运算符

Security Command Center 发现结果的查询语句支持 大多数 Google Cloud API 支持的运算符。

以下列表展示了各种运算符的用法:

  • state="ACTIVE" AND NOT mute="MUTED"
  • create_time>"2023-08-15T19:05:32.428Z"
  • resource.parent_name:"prod"
  • severity="CRITICAL" OR severity="HIGH"

以下列表显示了 在发现结果的查询语句中支持:

  • 对于字符串:
    • =,表示完全相等
    • : 表示部分字符串匹配
  • 对于数字:
    • <><=>=,表示不相等
    • =!= 表示相等
  • 对于布尔值:
    • = 表示等式
  • 对于逻辑关系:
    • AND
    • OR
    • NOT-
  • 对于分组表达式:
    • ()(英文括号)
  • 对于数组:
    • contains():一个函数,用于查询包含至少一个与指定过滤条件匹配的元素的数组字段中的发现结果
    • containsOnly():一个函数,用于使用仅包含与指定过滤条件匹配的元素的数组字段查询发现结果
  • 对于 IP 地址:
    • inIpRange(),一个函数 查询指定 CIDR 范围内的 IP 地址

“添加过滤条件”菜单中的查询运算符

如需了解添加过滤条件菜单中使用的查询运算符,请点击您所用控制台对应的标签页。

Google Cloud 控制台

在 Google Cloud 控制台的查询编辑器添加过滤条件菜单中,查询运算符和函数由字词或短语表示,例如:

  • 等于:与具有此确切属性值的发现结果相匹配。
  • 不等于:匹配结果不完全匹配 属性值。
  • 晚于:匹配其创建或更新时间晚于指定时间的发现结果。
  • 早于:匹配其创建或更新时间早于指定时间的发现结果。
  • 包含:将发现结果与包含您提供的文本的属性值相匹配 在关键字字段中输入。
  • 不包含:与具有无属性值的发现结果相匹配 包含您在关键字字段中输入的文字。
  • 对于包含数组的发现结果特性:
    • 包含全部:匹配其数组值包含在关键字字段中输入的所有文本的发现结果。
    • 包含全部:匹配其数组值包含在关键字字段中输入的所有文本的发现结果。
    • 不包含任何:匹配不具有包含在关键字字段中输入的文本的数组值的发现结果。
    • 仅包含:匹配具有数组属性的发现结果,该数组结果仅包含您在关键字字段中输入的值,不包含其他值。
  • 对于 IP 地址:
    • Any within IP range:匹配包含指定 CIDR 范围内的 IP 地址的发现结果。
    • Does not have any within IP range:匹配包含不在指定 CIDR 范围内的 IP 地址的发现结果。

Security Operations 控制台

Add filters 菜单中, 查询编辑器 Security Operations 控制台、查询运算符和 函数由下列各项表示:

  • 等于:匹配具有确切属性值的发现结果。
  • 不等于:匹配不具有确切属性值的发现结果。
  • 晚于:匹配其创建或更新时间晚于您指定时间的发现结果。
  • 早于:匹配其创建或更新时间早于您指定时间的发现结果。
  • 包含:匹配其属性值包含您在关键字字段中输入的文本的发现结果。
  • 不包含:匹配其属性值不包含您在关键字字段中输入的文本的发现结果。
  • 大于:匹配属性值高于您指定值的发现结果。
  • 小于:匹配属性值低于您指定值的发现结果。
  • Any within IP range:匹配包含指定 CIDR 范围内的 IP 地址的发现结果。
  • Does not have any within IP range:匹配包含不在指定 CIDR 范围内的 IP 地址的发现结果。

查询函数

与常见的查询运算符相比,查询函数会对特性值进行更复杂的评估。

contains 函数

使用 contains 函数评估可能在同一发现结果中出现多次的特性或特性子字段。

在内部,这些属性或属性子字段存储在数组数据结构的元素中,因此被称为数组类型属性

例如,某些发现结果可以引用多个网络连接,因此 connections 特性是数组类型特性。同样,某些威胁发现结果可以引用多个 IP 地址作为失陷指标,因此 indicator 特性的 ip_addresses 子字段是数组类型特性。

contains 函数使用以下语法:

contains(ARRAY_ATTRIBUTE_NAME, SUBFILTER)

请替换以下内容:

  • ARRAY_ATTRIBUTE_NAME:数组类型的名称 属性。如果数组类型特性是其他特性的子字段,请指定特性名称和子字段名称(用英文句点分隔)。

    在以下示例中,数组类型特性 ip_addressesindicator 的子字段,因此两者都在 ARRAY_ATTRIBUTE_NAME 位置指定:

    contains(indicator.ip_addresses, elem="192.0.2.80")
  • SUBFILTER:用于定义如何评估数组类型特性的每个实例的表达式。支持标准 Security Command Center 查询运算符和评估语句

    如果要检查的值位于数组类型属性的子字段中,请在该表达式左侧指定子字段名称。以下 contains 函数会评估 connections 数组的每个元素,该元素是包含子字段的数组类型特性。要查询的值位于 destination_ip 子字段中,该子字段不是数组类型字段。要查询的值是使用子字段名称 destination_ip 指定的,而不是使用 elem 参数。

    contains(connections, destination_ip="192.0.2.80")

    如果子字段是数组类型属性,请在表达式左侧的父数组中指定数组类型属性,并使用表达式右侧的 elem 参数指定要搜索的值。例如,以下 contains 函数会评估 ip_addresses 数组的每个元素,该元素是 indicator 属性的子字段。indicator 属性不是数组类型字段。

    contains(indicator.ip_addresses, elem="192.0.2.80")

“添加过滤条件”菜单中的 contains 函数

添加过滤条件菜单中,根据您要评估的发现结果特性,当您选择其他需要 contains 函数的过滤条件选项时,该函数会明确列出或自动包含在内。

例如,对于 Indicator 特性的 IP 地址子字段,您可以选择以下过滤条件选项:

  • 包含以下任意一项:
  • 包含全部
  • 不包含任何一项

相比之下,如果您要根据 Connections 特性的目的地 IP 子字段进行过滤并选择 Any within IP range,则 contains 函数会自动添加到查询语句中,如以下示例所示:

contains(connections, inIpRange(destination_ip, "2001:db8::/32"))

如需详细了解 contains 函数,请参阅按数组类型字段过滤

containsOnly 函数

借助 containsOnly 函数,您可以查询仅包含子过滤条件中指定的值(不包含其他值)的数组类型属性或子字段的发现结果。

containsOnly 函数使用以下语法:

containsOnly(ARRAY_ATTRIBUTE_NAME,SUBFILTER)

替换以下内容:

  • ARRAY_ATTRIBUTE_NAME:数组类型属性的名称。如果数组类型属性是其他属性的子字段,请指定属性名称和子字段名称(用英文句点分隔)。当您使用 Google Cloud Console 运行查询时,此函数仅支持 iam_bindings.memberiam_bindings.role 数组属性。

  • SUBFILTER:用于定义如何评估数组类型属性的每个元素的表达式。标准 Security Command Center 查询 运算符和评估语句。

添加过滤条件菜单中,以下过滤条件选项使用 containsOnly 函数:

  • IAM 绑定 >Member:仅选择包含指定 用户、服务账号或群组

  • IAM 绑定 >角色:仅选择包含指定角色的发现结果 角色。

以下示例展示了 Google Cloud 控制台中的发现结果查询 针对 example-group 群组中的用户返回未忽略的有效发现结果:

state="ACTIVE"
  AND NOT mute="MUTED"
  AND containsOnly(iam_bindings,member="group:example-group@example.com")

inIpRange 函数

inIpRange 函数会使用 CIDR 表示法(CIDR 范围)检查所选发现结果特性中的 IP 地址是否在您指定的 IP 地址范围内。下面显示了 inIpRange 函数的语法:

inIpRange(ATTRIBUTE_WITH_IP, "CIDR_RANGE")

添加过滤条件菜单中,输入以下过滤条件 选项使用 inIpRange 函数:

  • Any within IP range:仅选择包含指定范围内的 IP 地址的发现结果。
  • IP 范围内没有任何内容:仅选择不在 IP 范围内的发现结果 包含指定范围内的 IP 地址。

以下示例展示了 Google Cloud 控制台中的发现结果查询 会返回未忽略的有效发现结果,其中 caller_ip 子字段 的 access 对象包含 CIDR 范围 2001:db8::/32 内的 IPv6 地址:

state="ACTIVE"
AND NOT mute="MUTED"
AND inIpRange(access.caller_ip, "2001:db8::/32")

以下示例展示了返回活跃状态的发现结果查询 已取消忽略的发现结果,其中 accesscaller_ip 子字段 对象不包含 192.0.2.0/24 的 IPv4 CIDR 范围内的 IP 地址:

state="ACTIVE"
AND NOT mute="MUTED"
AND NOT inIpRange(access.caller_ip, "192.0.2.0/24")

如果 IP 地址位于可能在发现结果中出现多次的特性,请将 contains 函数与 inIpRange 函数搭配使用来检查该 IP 地址特性的每个实例。例如:

contains(connections, inIpRange(source_ip, "192.0.2.0/24"))

如需详细了解 contains() 函数,请参阅 contains 函数

查找查询的特性

Security Command Center 根据您在查询中指定的特性过滤条件来评估每个存储的发现结果的特性,以选择要显示的发现结果。

您可以查询大多数发现结果属性。某些属性是所有发现结果的通用属性。其他属性可能专用于特定证券 问题、发现结果类别或检测服务。

查询编辑器面板的添加过滤条件菜单中,您可以应用于特性过滤条件的选项会有不同,取决于您选择的特性类型,以及该特性是否包含子字段或值数组。

添加过滤条件菜单中,点击以下任一顶级属性,以显示您可以在发现结果查询中使用的子属性和值: