将 Security Command Center 与 Google SecOps 集成
集成版本:14.0
本文档介绍了如何将 Security Command Center 与 Google Security Operations 集成。
准备工作
如需集成 Security Command Center,您必须完成以下步骤:
使用以下选项之一配置身份验证:
创建和配置 IAM 角色
如需为集成创建和配置自定义 IAM 角色,请完成以下步骤:
在 Google Cloud 控制台中,前往 IAM 角色页面。
点击创建角色,以创建具有集成所需权限的自定义角色。
输入标题、说明和唯一 ID。
将角色发布阶段设置为
General Availability。向创建的角色添加以下权限:
securitycenter.assets.listsecuritycenter.findings.listsecuritycenter.findings.setMutesecuritycenter.findings.setState
点击创建。
配置身份验证
如需对集成进行身份验证,请使用具有 JSON 密钥或 Workload Identity 的服务账号。
使用 JSON 密钥进行身份验证
此方法使用静态 JSON 密钥文件对服务账号进行身份验证。
创建服务账号
如需使用 JSON 密钥进行身份验证,您必须先创建服务账号:
在 Google Cloud 控制台中,依次前往 IAM 和管理 > 服务账号。
选择要在其中创建服务账号的项目。
点击创建服务账号。
如果您想使用现有服务账号,请选择要使用的服务账号,然后生成 JSON 密钥。
提供名称和说明,然后点击创建并继续。
在向此服务账号授予对项目的访问权限这一步中,添加您创建的自定义角色。
点击完成以完成账号的创建过程。
生成 JSON 密钥
请完成以下步骤以生成所需的 JSON 密钥文件:
在服务账号列表中,选择您创建(或选择)的服务账号的电子邮件地址,以打开其详细信息。
点击密钥标签页。
点击添加密钥 > 创建新密钥。
选择 JSON 作为密钥类型,然后点击创建。
JSON 密钥文件将下载到您的计算机。请妥善安全地存储此文件,并在配置集成参数时将此文件的全部内容粘贴到
User's Service Account中。
使用 Workload Identity 进行身份验证(推荐)
此方法允许集成模拟服务账号,而无需处理长期有效的密钥。
如需配置 Workload Identity,请完成以下步骤:
在 Google Cloud 控制台中,依次前往 IAM 和管理 > 服务账号。
选择现有服务账号或创建新服务账号。
将您创建的自定义角色授予服务账号。
向服务账号授予 Service Usage Consumer 角色。 此权限是必需的,用于将 API 使用情况与
Quota Project ID中定义的项目相关联。向服务账号授予 Service Account Token Creator 角色。
此权限允许集成生成身份验证所需的短期有效凭据。
记下服务账号的客户端电子邮件地址,并在配置集成参数时将此值用作工作负载身份电子邮件地址。
集成参数
Security Command Center 集成需要以下参数:
| 参数 | 说明 |
|---|---|
API Root |
必填。 Security Command Center 实例的 API 根。 |
Organization ID |
可选。 用于限定 Security Command Center 集成查询范围的 Google Cloud 组织的 ID。 |
Project ID |
可选。 用于限定 Security Command Center 实例查询范围的 Google Cloud 项目 ID。 |
Quota Project ID |
可选。 用于 API 使用情况和结算的 Google Cloud 项目 ID。 |
User's Service Account |
可选。 服务账号密钥 JSON 文件的完整内容。 仅当您使用 JSON 密钥进行身份验证时,才使用此参数。 |
Workload Identity Email |
可选。 您服务账号的客户端电子邮件地址。 仅在您使用工作负载身份进行身份验证时使用此参数。 如果您配置此参数,还必须配置 |
Verify SSL |
必填。 如果选中此选项,集成会在连接到 Security Command Center 服务器时验证 SSL 证书。 默认处于启用状态。 |
如需了解如何在 Google SecOps 中配置集成,请参阅配置集成。
如有需要,您可以在稍后阶段进行更改。配置集成实例后,您可以在 playbook 中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例。
操作
如需详细了解操作,请参阅 在工作台页面中处理待处理的操作和执行手动操作。
获取发现结果详情
使用 Get Finding Details 操作可检索 Security Command Center 中发现结果的详细信息。
此操作不适用于 Google SecOps 实体。
操作输入
获取发现详情操作需要以下参数:
| 参数 | 说明 |
|---|---|
Finding Name |
必填。 要返回详细信息的发现结果的完整资源名称,格式为 此参数接受多个值,这些值以英文逗号分隔的列表形式提供。 |
操作输出
获取发现结果详情操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| “支持请求墙”表格 | 可用 |
| 丰富化表 | 不可用 |
| 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"
}
}
}
输出消息
获取发现结果详情操作可以返回以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
|
操作成功。 |
Error executing action "Get Finding Details". Reason: ERROR_REASON |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表列出了使用 Get Finding Details 操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
列出资产漏洞
使用 List Asset Vulnerabilities 操作列出与 Security Command Center 中的实体相关的漏洞。
此操作不适用于 Google SecOps 实体。
操作输入
列出资产漏洞操作需要以下参数:
| 参数 | 说明 |
|---|---|
Asset Resource Names |
必填。 以逗号分隔的列表,其中包含要检索相关数据的资产的唯一标识符(完整资源名称)。 |
Timeframe |
可选。 用于搜索漏洞或错误配置的时间范围。 可能的值如下:
默认值为 |
Record Types |
可选。 要返回的记录类型。 可能的值如下:
默认值为 |
Output Type |
可选。 要在每个资产的 JSON 结果中返回的输出类型。 可能的值如下:
默认值为 |
Max Records To Return |
可选。 每种记录类型要返回的记录数上限。 默认值为 |
操作输出
列出资产漏洞操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| “支持请求墙”表格 | 可用 |
| 丰富化表 | 不可用 |
| 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"
}
]
},
}
输出消息
列出资产漏洞操作可以返回以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
|
操作成功。 |
Error executing action "List Asset Vulnerabilities". Reason:
ERROR_REASON |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表列出了使用 List Asset Vulnerabilities 操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
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 |
true 或 false |
更新发现结果
使用 Update Finding 操作更新 Security Command Center 中的现有发现结果。
此操作不适用于 Google SecOps 实体。
操作输入
更新发现操作需要以下参数:
| 参数 | 说明 |
|---|---|
Finding Name |
必填。 要返回详细信息的发现结果的完整资源名称,格式为 此参数接受多个值,这些值以英文逗号分隔的列表形式提供。 |
Mute Status |
可选。 相应发现结果的忽略状态。 可能的值如下:
|
State Status |
可选。 发现的状态。 可能的值如下:
|
操作输出
更新发现操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| “支持请求墙”表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 不可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
输出消息
更新发现结果操作可以返回以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
|
操作成功。 |
Error executing action "Update Finding". Reason: ERROR_REASON |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表列出了使用更新发现操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
连接器
如需详细了解如何在 Google SecOps 中配置连接器,请参阅注入数据(连接器)。
Security Command Center - 发现结果连接器
使用 Security Command Center - 发现结果连接器检索有关 Security Command Center 发现结果的信息。
此连接器支持使用动态列表按类别过滤发现结果。
连接器输入源
Security Command Center - 发现结果连接器需要以下参数:
| 参数 | 说明 |
|---|---|
Product Field Name |
必填。 存储商品名称的字段的名称。 商品名称主要会影响映射。为了简化和改进连接器的映射流程,默认值会解析为从代码引用的回退值。默认情况下,此参数的任何无效输入都会解析为回退值。 默认值为 |
Event Field Name |
必填。 用于确定事件名称(子类型)的字段的名称。 |
Environment Field Name |
可选。 存储环境名称的字段的名称。 如果缺少环境字段,连接器会使用默认值。 默认值为 |
Environment Regex Pattern |
可选。 要对 使用默认值 如果正则表达式模式为 null 或空,或者环境值为 null,则最终环境结果为默认环境。 |
PythonProcessTime |
必填。 运行当前脚本的 Python 进程的超时时间限制(以秒为单位)。 默认值为 |
API Root |
必填。 Security Command Center 实例的 API 根。 |
Organization ID |
可选。 要使用的 Google Cloud 组织的 ID |
Project ID |
可选。 需使用的 Google Cloud 项目 ID。 |
Quota Project ID |
可选。 需使用的 Google Cloud 项目 ID。 |
User's Service Account |
必填。 服务账号密钥 JSON 文件的完整内容。 仅当您使用 JSON 密钥进行身份验证时,才使用此参数。 |
Workload Identity Email |
可选。 您服务账号的客户端电子邮件地址。 仅在您使用工作负载身份进行身份验证时使用此参数。 如果您配置此参数,还必须配置 |
Finding Class Filter |
可选。 一个以英文逗号分隔的列表,其中包含从来源提取数据时要纳入的安全发现结果类型。 可能的值如下:
如果未提供任何值,则会注入所有类别的发现结果。 |
Lowest Severity To Fetch |
可选。 要检索的提醒的最低严重程度。 如果您未配置此参数,连接器会提取所有严重程度的提醒。 可能的值如下:
如果严重程度未定义的发现结果被分配了 如果未提供任何值,则注入所有严重程度类型。 |
Fallback Severity |
可选。 要分配给任何已提取但来源未定义或无法识别严重程度评级的安全发现结果的严重程度。 可能的值如下:
默认值为 |
Max Hours Backwards |
可选。 要检索的发现结果的小时数(相对于当前时间)。 此参数可应用于首次启用连接器后的初始连接器迭代,也可作为已过期的连接器时间戳的回退值。 最大值为 默认值为 |
Max Findings To Fetch |
可选。 每次连接器迭代要处理的发现结果数量。 最大值为 默认值为 |
Use dynamic list as a blacklist |
必填。 如果选中此选项,连接器会将动态列表用作屏蔽列表。 默认情况下,该环境处于停用状态。 |
Verify SSL |
必填。 如果选中此选项,集成会在连接到 Security Command Center 服务器时验证 SSL 证书。 默认情况下,该环境处于停用状态。 |
Proxy Server Address |
可选。 要使用的代理服务器的地址。 |
Proxy Username |
可选。 用于进行身份验证的代理用户名。 |
Proxy Password |
可选。 用于进行身份验证的代理密码。 |
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。