将 Security Command Center 与 Google SecOps 集成
本文档介绍了如何将 Security Command Center 与 Google Security Operations (Google SecOps) 集成。
集成版本:13.0
准备工作
如需使用此集成,您需要自定义 Identity and Access Management (IAM) 角色和 Google Cloud 服务账号。您可以使用现有服务账号,也可以创建新服务账号。
创建和配置 IAM 角色
如需为集成创建和配置自定义 IAM 角色,请完成以下步骤:
在 Google Cloud 控制台中,前往 IAM 角色页面。
点击创建角色,以创建具有集成所需权限的自定义角色。
对于新的自定义角色,请输入称谓、说明和唯一的 ID。
将角色发布阶段设置为正式版。
向创建的角色添加以下权限:
securitycenter.assets.list
securitycenter.findings.list
securitycenter.findings.setMute
securitycenter.findings.setState
创建和配置 API 密钥
如需创建 API 密钥,请完成以下步骤:
在 Google Cloud 控制台中,依次前往 API 和服务 > 凭据 > 创建凭据。
选择 API 密钥。系统随即会显示一个包含生成的 API 密钥的对话框。复制 API 密钥并妥善存储。
如需为 API 密钥配置 API 限制,请完成以下步骤:
依次点击限制密钥 > API 限制 > 限制密钥。
从 API 列表中选择 Security Command Center API,配置适用的限制,然后点击保存。
授予对 API 密钥的访问权限
如需向 Security Command Center 授予对 API 密钥的访问权限,请完成以下步骤:
在 Google Cloud 控制台中,依次前往 IAM 和管理 > 服务账号。
选择您在 Security Command Center 集成中使用的服务账号。
点击服务账号的电子邮件地址。
选择授予访问权限。
在新成员字段中,输入服务账号的电子邮件地址。
在安全中心下,选择
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。此参数要求您向服务账号授予
如果您未为此参数设置值,集成会从您的 Google Cloud 服务账号中检索项目 ID。 |
User's Service Account |
必填。 服务账号密钥 JSON 文件的内容。 您可以配置此参数或 如需配置此参数,请提供您在创建服务账号时下载的服务账号密钥 JSON 文件的完整内容。 |
Workload Identity Email |
可选。 您的服务账号的客户端电子邮件地址。 您可以配置此参数或 如果您设置了此参数,请配置 如需使用工作负载身份联合模拟服务账号,请向您的服务账号授予 |
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"
}
}
}
输出消息
获取发现结果详情操作可以返回以下输出消息:
输出消息 | 消息说明 |
---|---|
|
操作成功。 |
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 |
更新发现结果
使用更新发现结果操作更新 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 中配置连接器,请参阅注入数据(连接器)。
Google Security Command Center - 发现结果连接器
使用 Google Security Command Center - 发现结果连接器从 Security Command Center 检索有关发现结果的信息。
动态列表过滤条件可与类别搭配使用。
连接器输入
Google Security Command Center - 发现结果连接器需要以下参数:
参数 | 说明 |
---|---|
Product Field Name |
必填。 存储商品名称的字段的名称。 商品名称主要会影响映射。为了简化和改进连接器的映射流程,默认值会解析为代码中引用的回退值。默认情况下,此参数的任何无效输入都会解析为回退值。 默认值为 |
Event Field Name |
必填。 用于确定事件名称(子类型)的字段的名称。 默认值为 |
Environment Field Name |
可选。 存储环境名称的字段的名称。 如果缺少环境字段,连接器将使用默认值。 |
Environment Regex Pattern |
可选。 要对 使用默认值 如果正则表达式模式为 null 或空,或者环境值为 null,则最终环境结果为默认环境。 |
Script Timeout (Seconds) |
必填。 运行当前脚本的 Python 进程的超时时间限制(以秒为单位)。 默认值为 |
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。此参数要求您向服务账号授予
如果您未为此参数设置值,集成会从您的 Google Cloud 服务账号中检索项目 ID。 |
User's Service Account |
必填。 服务账号密钥 JSON 文件的内容。 您可以配置此参数或 如需配置此参数,请提供您在创建服务账号时下载的服务账号密钥 JSON 文件的完整内容。 |
Workload Identity Email |
可选。 您的服务账号的客户端电子邮件地址。 您可以配置此参数或 如果您设置了此参数,请配置 如需使用工作负载身份联合模拟服务账号,请向您的服务账号授予 |
Finding Class Filter
|
可选。 连接器要注入的发现结果类。 可能的值如下:
如果您未设置值,连接器会注入所有类别的发现结果。 默认值为 |
Lowest Severity To Fetch |
可选。 要检索的提醒的最低严重程度。 如果您未配置此参数,连接器会提取所有严重程度的提醒。 连接器会将严重程度未定义的提醒视为严重程度为 可能的值如下:
默认值为 |
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 Security Command Center - 发现结果连接器支持代理。
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。