将 Security Command Center 与 Google SecOps 集成

本文档介绍了如何将 Security Command Center 与 Google Security Operations (Google SecOps) 集成。

集成版本:13.0

准备工作

如需使用此集成,您需要自定义 Identity and Access Management (IAM) 角色和 Google Cloud 服务账号。您可以使用现有服务账号,也可以创建新服务账号。

创建和配置 IAM 角色

如需为集成创建和配置自定义 IAM 角色,请完成以下步骤:

  1. 在 Google Cloud 控制台中,前往 IAM 角色页面。

    打开“角色”

  2. 点击创建角色,以创建具有集成所需权限的自定义角色。

  3. 对于新的自定义角色,请输入称谓说明和唯一的 ID

  4. 角色发布阶段设置为正式版

  5. 向创建的角色添加以下权限:

    • securitycenter.assets.list
    • securitycenter.findings.list
    • securitycenter.findings.setMute
    • securitycenter.findings.setState

创建和配置 API 密钥

如需创建 API 密钥,请完成以下步骤:

  1. 在 Google Cloud 控制台中,依次前往 API 和服务 > 凭据 > 创建凭据

  2. 选择 API 密钥。系统随即会显示一个包含生成的 API 密钥的对话框。复制 API 密钥并妥善存储。

如需为 API 密钥配置 API 限制,请完成以下步骤:

  1. 依次点击限制密钥 > API 限制 > 限制密钥

  2. 从 API 列表中选择 Security Command Center API,配置适用的限制,然后点击保存

授予对 API 密钥的访问权限

如需向 Security Command Center 授予对 API 密钥的访问权限,请完成以下步骤:

  1. 在 Google Cloud 控制台中,依次前往 IAM 和管理 > 服务账号

  2. 选择您在 Security Command Center 集成中使用的服务账号。

  3. 点击服务账号的电子邮件地址。

  4. 选择授予访问权限

  5. 新成员字段中,输入服务账号的电子邮件地址。

  6. 安全中心下,选择 Security Center Findings Editor 角色,然后点击保存

集成参数

Security Command Center 集成需要以下参数:

参数 说明
API Root

必填。

Security Command Center 实例的 API 根。

Organization ID

可选。

要在 Security Command Center 集成中使用的组织 ID。

Project ID

可选。

Security Command Center 实例的项目 ID。

Quota Project ID

可选。

您用于 Google Cloud API 和结算的 Google Cloud 项目 ID。此参数要求您向服务账号授予 Service Usage Consumer 角色。

如果您未为此参数设置值,集成会从您的 Google Cloud 服务账号中检索项目 ID。

User's Service Account

必填。

服务账号密钥 JSON 文件的内容。

您可以配置此参数或 Workload Identity Email 参数。

如需配置此参数,请提供您在创建服务账号时下载的服务账号密钥 JSON 文件的完整内容。

Workload Identity Email

可选。

您的服务账号的客户端电子邮件地址。

您可以配置此参数或 User's Service Account 参数。

如果您设置了此参数,请配置 Quota Project ID 参数。

如需使用工作负载身份联合模拟服务账号,请向您的服务账号授予 Service Account Token Creator 角色。如需详细了解工作负载身份以及如何使用它们,请参阅工作负载的身份

Verify SSL

必填。

如果选中此选项,集成会在连接到 Security Command Center 服务器时验证 SSL 证书。

此选项将会默认选中。

如需了解如何在 Google SecOps 中配置集成,请参阅配置集成

如有需要,您可以在稍后阶段进行更改。配置集成实例后,您可以在剧本中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例

操作

如需详细了解操作,请参阅 在工作台页面中处理待处理的操作执行手动操作

获取发现结果详情

使用 Get Finding Details 操作可检索 Security Command Center 中有关发现结果的详细信息。

此操作不适用于 Google SecOps 实体。

操作输入

获取发现详情操作需要以下参数:

参数 说明
Finding Name

必填。

查找要返回详细信息的名称。此参数接受多个值,这些值以英文逗号分隔的列表形式提供。

以下是查找名称的示例:

organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID

操作输出

获取发现结果详情操作提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
“支持请求墙”表格 可用
丰富化表 不可用
JSON 结果 可用
输出消息 可用
脚本结果 可用
“支持请求墙”表格

获取发现结果详情操作可以返回下表:

表格标题:发现结果详情

表列:

  • 类别
  • 状态
  • 严重级别
  • 类型
JSON 结果

以下示例展示了在使用 Get Finding Details 操作时收到的 JSON 结果输出:

{
   {
      "finding_name": "organizations/ORGANIZATION_ID/sources/2678067631293752869/findings/hvX6WwbvFyBGqPbEs9WH9m",
      "finding": {
        "name": "organizations/ORGANIZATION_ID/sources/2678067631293752869/findings/hvX6WwbvFyBGqPbEs9WH9m",
        "parent": "organizations/ORGANIZATION_ID/sources/2678067631293752869",
        "resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "state": "ACTIVE",
        "category": "Discovery: Service Account Self-Investigation",
        "sourceProperties": {
          "sourceId": {
            "projectNumber": "PROJECT_ID",
            "customerOrganizationNumber": "ORGANIZATION_ID"
          },
          "detectionCategory": {
            "technique": "discovery",
            "indicator": "audit_log",
            "ruleName": "iam_anomalous_behavior",
            "subRuleName": "service_account_gets_own_iam_policy"
          },
          "detectionPriority": "LOW",
          "affectedResources": [
            {
              "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID"
            }
          ],
          "evidence": [
            {
              "sourceLogId": {
                "projectId": "PROJECT_ID",
                "resourceContainer": "projects/PROJECT_ID",
                "timestamp": {
                  "seconds": "1622678907",
                  "nanos": 448368000
                },
                "insertId": "ID"
              }
            }
          ],
          "properties": {
            "serviceAccountGetsOwnIamPolicy": {
              "principalEmail": "prisma-cloud-serv@PROJECT_ID.iam.gserviceaccount.com",
              "projectId": "PROJECT_ID",
              "callerIp": "192.0.2.41",
              "callerUserAgent": "Redlock/GC-MDC/resource-manager/PROJECT_ID Google-API-Java-Client HTTP-Java-Client/1.34.0 (gzip),gzip(gfe)",
              "rawUserAgent": "Redlock/GC-MDC/resource-manager/PROJECT_ID Google-API-Java-Client HTTP-Java-Client/1.34.0 (gzip),gzip(gfe)"
            }
          },
          "contextUris": {
            "mitreUri": {
              "displayName": "Permission Groups Discovery: Cloud Groups",
              "url": "https://attack.mitre.org/techniques/ID/003/"
            },
            "cloudLoggingQueryUri": [
              {
                "displayName": "Cloud Logging Query Link",
                "url": "https://console.cloud.google.com/logs/query;query=timestamp%3D%222021-06-03T00:08:27.448368Z%22%0AinsertId%3D%22ID%22%0Aresource.labels.project_id%3D%22PROJECT_ID%22?project=PROJECT_ID"
              }
            ]
          }
        },
        "securityMarks": {
          "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
        },
        "eventTime": "2021-06-03T00:08:27.448Z",
        "createTime": "2021-06-03T00:08:31.074Z",
        "severity": "LOW",
        "canonicalName": "projects/PROJECT_ID/sources/SOURCE_ID/findings/FINDING_ID",
        "mute": "UNDEFINED",
        "findingClass": "THREAT",
        "mitreAttack": {
          "primaryTactic": "DISCOVERY",
          "primaryTechniques": [
            "PERMISSION_GROUPS_DISCOVERY",
            "CLOUD_GROUPS"
          ]
        }
      },
      "resource": {
        "name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "projectName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "projectDisplayName": "PROJECT_ID",
        "parentName": "//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID",
        "parentDisplayName": "example.net",
        "type": "google.cloud.resourcemanager.Project",
        "displayName": "PROJECT_ID"
      }
    }
}
输出消息

获取发现结果详情操作可以返回以下输出消息:

输出消息 消息说明

Successfully returned details about the following findings in Security Command Center: FINDING_NAMES.

Action wasn't able to find the following findings in Security Command Center: FINDING_NAMES.

None of the provided findings were found in Security Command Center.

操作成功。
Error executing action "Get Finding Details". Reason: ERROR_REASON

操作失败。

检查与服务器的连接、输入参数或凭据。

脚本结果

下表列出了使用 Get Finding Details 操作时脚本结果输出的值:

脚本结果名称
is_success TrueFalse

列出资产漏洞

使用 List Asset Vulnerabilities 操作列出与 Security Command Center 中的实体相关的漏洞。

此操作不适用于 Google SecOps 实体。

操作输入

列出资产漏洞操作需要以下参数:

参数 说明
Asset Resource Names

必填。

要返回数据的资产的资源名称。此参数接受多个值,这些值以英文逗号分隔的列表形式提供。

Timeframe

可选。

用于搜索漏洞或错误配置的时间段。

可能的值如下:

  • Last Week
  • Last Month
  • Last Year
  • All Time

默认值为 All Time

Record Types

可选。

要返回的记录的类型。

可能的值如下:

  • Vulnerabilities Misconfigurations
  • Vulnerabilities + Misconfigurations

默认值为 Vulnerabilities + Misconfigurations

Output Type

可选。

要在每个资产的 JSON 结果中返回的输出类型。

可能的值如下:

  • Statistics
  • Data
  • Statistics + Data

默认值为 Statistics

Max Records To Return

可选。

每种记录类型要返回的记录数上限。

默认值为 100

操作输出

列出资产漏洞操作提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
“支持请求墙”表格 可用
丰富化表 不可用
JSON 结果 可用
输出消息 可用
脚本结果 可用
“支持请求墙”表格

列出资产漏洞操作可以返回以下表格:

表格标题:ASSET_ID 漏洞

表列:

  • 类别
  • 说明
  • 严重级别
  • 活动时间
  • CVE

表格标题:ASSET_ID 错误配置

表列:

  • 类别
  • 说明
  • 严重级别
  • 活动时间
  • 建议
JSON 结果

以下示例展示了使用列出资产漏洞操作时收到的 JSON 结果输出:

{
   ."siemplify_asset_display_name":[1] [2]  ""
"vulnerabilities": {
        "statistics": {
            "critical": 1,
            "high": 1,
            "medium": 1,
            "low": 1,
            "undefined": 1
        },
        "data": [
            {
                "category": "CATEGORY"
                "description": "DESCRIPTION"
                "cve_id": "CVE_ID"
                "event_time": "EVENT_TIME"
                "related_references": "RELATED_REFERENCES"
                "severity": "SEVERITY"
            }
        ]
    },
    "misconfigurations": {
        "statistics": {
            "critical": 1,
            "high": 1,
            "medium": 1,
            "low": 1,
            "undefined": 1
        },
        "data": [
            {
                "category": "CATEGORY"
                "description": "DESCRIPTION"
                "recommendation": "RECOMMENDATION"
                "event_time": "EVENT_TIME"
                "severity": "SEVERITY"
            }
        ]
    },
}
输出消息

列出资产漏洞操作可以返回以下输出消息:

输出消息 消息说明

Successfully returned related vulnerabilities and misconfigurations to the following entities in Security Command Center: ASSET_IDS.

No vulnerabilities and misconfigurations were found to the following entities in Security Command Center: ASSET_IDS.

No vulnerabilities and misconfigurations were found for the provided assets in Security Command Center.

操作成功。
Error executing action "List Asset Vulnerabilities". Reason: ERROR_REASON

操作失败。

检查与服务器的连接、输入参数或凭据。

脚本结果

下表列出了使用 List Asset Vulnerabilities 操作时脚本结果输出的值:

脚本结果名称
is_success TrueFalse

Ping

使用 Ping 操作测试与 Security Command Center 的连接。

此操作不适用于 Google SecOps 实体。

操作输入

无。

操作输出

Ping 操作提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
“支持请求墙”表格 不可用
丰富化表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

Ping 操作可以返回以下输出消息:

输出消息 消息说明
Successfully connected to the Security Command Center server with the provided connection parameters! 操作成功。
Failed to connect to the Security Command Center server! Error is ERROR_REASON

操作失败。

检查与服务器的连接、输入参数或凭据。

脚本结果

下表列出了使用 Ping 操作时脚本结果输出的值:

脚本结果名称
is_success TrueFalse

更新发现结果

使用更新发现结果操作更新 Security Command Center 中的发现结果。

此操作不适用于 Google SecOps 实体。

操作输入

更新发现操作需要以下参数:

参数 说明
Finding Name

必填。

查找要更新的名称。此参数接受多个值,这些值以英文逗号分隔的列表形式提供。

查找名称的示例如下:organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID

Mute Status

可选。

相应发现结果的忽略状态。

可能的值如下:

  • Select One
  • Mute
  • Unmute
State Status

可选。

发现结果状态。

可能的值如下:

  • Select One
  • Active
  • Inactive

操作输出

更新发现结果操作提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
“支持请求墙”表格 不可用
丰富化表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

更新发现结果操作可能会返回以下输出消息:

输出消息 消息说明

Successfully updated the following findings in Security Command Center: FINDING_NAMES

Action wasn't able to find the following findings in Security Command Center: FINDING_NAMES

None of the provided findings were found in Security Command Center.

操作成功。
Error executing action "Update finding". Reason: ERROR_REASON

操作失败。

检查与服务器的连接、输入参数或凭据。

脚本结果

下表列出了使用更新发现操作时脚本结果输出的值:

脚本结果名称
is_success TrueFalse

连接器

如需详细了解如何在 Google SecOps 中配置连接器,请参阅注入数据(连接器)

Google Security Command Center - 发现结果连接器

使用 Google Security Command Center - 发现结果连接器从 Security Command Center 检索有关发现结果的信息。

动态列表过滤条件可与类别搭配使用。

连接器输入

Google Security Command Center - 发现结果连接器需要以下参数:

参数 说明
Product Field Name

必填。

存储商品名称的字段的名称。

商品名称主要会影响映射。为了简化和改进连接器的映射流程,默认值会解析为代码中引用的回退值。默认情况下,此参数的任何无效输入都会解析为回退值。

默认值为 Product Name

Event Field Name

必填。

用于确定事件名称(子类型)的字段的名称。

默认值为 category

Environment Field Name

可选。

存储环境名称的字段的名称。

如果缺少环境字段,连接器将使用默认值。

Environment Regex Pattern

可选。

要对 Environment Field Name 字段中的值运行的正则表达式模式。此参数可让您使用正则表达式逻辑来操纵环境字段。

使用默认值 .* 可检索所需的原始 Environment Field Name 值。

如果正则表达式模式为 null 或空,或者环境值为 null,则最终环境结果为默认环境。

Script Timeout (Seconds)

必填。

运行当前脚本的 Python 进程的超时时间限制(以秒为单位)。

默认值为 180

API Root

必填。

Security Command Center 实例的 API 根。

默认值为 https://securitycenter.googleapis.com

Organization ID

可选。

要在 Security Command Center 集成中使用的组织的 ID。

Project ID

可选。

Security Command Center 实例的项目 ID。

Quota Project ID

可选。

您用于 Google Cloud API 和结算的 Google Cloud 项目 ID。此参数要求您向服务账号授予 Service Usage Consumer 角色。

如果您未为此参数设置值,集成会从您的 Google Cloud 服务账号中检索项目 ID。

User's Service Account

必填。

服务账号密钥 JSON 文件的内容。

您可以配置此参数或 Workload Identity Email 参数。

如需配置此参数,请提供您在创建服务账号时下载的服务账号密钥 JSON 文件的完整内容。

Workload Identity Email

可选。

您的服务账号的客户端电子邮件地址。

您可以配置此参数或 User's Service Account 参数。

如果您设置了此参数,请配置 Quota Project ID 参数。

如需使用工作负载身份联合模拟服务账号,请向您的服务账号授予 Service Account Token Creator 角色。如需详细了解工作负载身份以及如何使用它们,请参阅工作负载的身份

Finding Class Filter

可选。

连接器要注入的发现结果类。

可能的值如下:

  • Threat
  • Vulnerability
  • Misconfiguration
  • SCC_Error
  • Observation

如果您未设置值,连接器会注入所有类别的发现结果。

默认值为 Threat,Vulnerability,Misconfiguration,SCC_Error,Observation

Lowest Severity To Fetch

可选。

要检索的提醒的最低严重程度。

如果您未配置此参数,连接器会提取所有严重程度的提醒。

连接器会将严重程度未定义的提醒视为严重程度为 Medium 的提醒。

可能的值如下:

  • Low
  • Medium
  • High
  • Critical

默认值为 High

Max Hours Backwards

可选。

要检索的发现结果距当前时间的小时数。

此参数可应用于您首次启用连接器后的初始连接器迭代,也可作为过期连接器时间戳的回退值。

最大值为 24

默认值为 1

Max Findings To Fetch

可选。

每次连接器迭代要处理的发现结果数量。

最大值为 1000

默认值为 100

Use dynamic list as a blacklist

必填。

如果选中此选项,连接器会将动态列表用作屏蔽列表。

默认情况下未选中。

Verify SSL

必填。

如果选中此选项,集成会在连接到 Security Command Center 服务器时验证 SSL 证书。

默认情况下未选中。

Proxy Server Address

可选。

要使用的代理服务器的地址。

Proxy Username

可选。

用于进行身份验证的代理用户名。

Proxy Password

可选。

用于进行身份验证的代理密码。

连接器规则

Google Security Command Center - 发现结果连接器支持代理。

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