控制台中的查询结果

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

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

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

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

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

发现结果页面 Security Operations 控制台为预览版。

本页面将介绍使用这两种控制台的步骤 并排显示两个标签页

有关详情,请参阅 Security Command Center Enterprise 控制台

修改发现结果查询

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

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

Google Cloud 控制台

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

    <ph type="x-smartling-placeholder"></ph> 前往“发现结果”

  2. 选择您的 Google Cloud 项目或组织。发现结果页面会加载默认查询,显示在 查询预览字段。
  3. 查询预览部分右侧,点击 修改查询,打开查询编辑器面板。
  4. 选择添加过滤条件可浏览、搜索和添加预定义过滤条件 为查询添加属性过滤条件。
  5. 选择过滤条件对话框允许您选择支持的发现结果特性和值。查询过滤条件对话框

    1. 选择发现结果特性或在搜索发现结果特性框中输入其名称。 系统会显示可用子特性的列表。
    2. 选择子特性。评估选项的选择字段显示在位于发现结果的查询结果面板中的发现结果的子特性值列表上方。
    3. 为所选子特性的值选择评估选项。如需详细了解评估选项及其使用的运算符和函数,请参阅“添加过滤条件”菜单中的查询运算符
    4. 选择应用

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

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

或者,您也可以按照 使用 Security Command Center API 创建发现结果过滤器 在输入查询内容时,系统会显示一个自动填充菜单,供您选择 过滤器名称和函数。

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

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

Security Operations 控制台

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

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

  2. 查询编辑器面板中,点击 添加过滤条件过滤器 对话框。通过此对话框,您可以选择支持的发现结果属性 值。
  3. 对于过滤条件,选择要用作过滤条件的预定义发现结果属性。
  4. 设置过滤条件评估选项和属性值: <ph type="x-smartling-placeholder">
      </ph>
    • 如需过滤具有特定属性值的发现结果,请选择 显示 。在列表中,选择属性值。
    • 如需过滤没有特定属性值的发现结果,请执行以下操作: 选择滤除。在列表中,选择相应属性 值。
  5. 要添加其他过滤器,请按以下步骤操作: <ph type="x-smartling-placeholder">
      </ph>
    1. 点击添加过滤条件
    2. 设置属性名称、评估 选项和属性值。
    3. 设置过滤器之间的逻辑关系。对于 Logical 运算符,请选择 ANDOR
  6. 点击应用。查询编辑器已更新,发现结果查询结果 进行相应过滤

此功能目前处于预览版阶段,可供以下人员使用: 仅适用于 Security Command Center Enterprise 客户。

查询运算符

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"

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

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

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

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

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 控制台、查询运算符和 函数由下列各项表示:

  • 仅显示:与具有此确切属性值的发现结果匹配。
  • 滤除:与不具有此完全匹配属性的发现结果匹配 值。

此功能目前处于预览版阶段,可供以下人员使用: 仅适用于 Security Command Center Enterprise 客户。

查询函数

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

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 根据您在查询中指定的特性过滤条件来评估每个存储的发现结果的特性,以选择要显示的发现结果。

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

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

添加过滤条件菜单中,点击以下任一顶级 属性以显示可用于 发现结果查询: