Google Cloud Storage
本文档提供了有关如何将 Cloud Storage 与 Google Security Operations 的 SOAR 模块集成的指南。
集成版本:9.0
此集成使用一个或多个开源组件。 您可以从 Cloud Storage 存储桶下载此集成的源代码副本。
使用场景
在 Google SecOps SOAR 平台中,Google Cloud Storage 集成可解决以下使用场景:
事件证据存储:剧本可以自动收集与事件相关的证据(例如日志和恶意软件样本)并将其存储在 Cloud Storage 存储分区中,从而提供一个防篡改的证据保留库。
威胁情报共享:您的安全团队可以使用 Cloud Storage 与其他团队或组织安全地共享威胁情报 Feed,例如恶意 IP 地址和网域列表。共享 Feed 可实现协作式威胁防御,并缩短响应时间。
恶意软件分析沙盒集成:剧本可以自动将突发事件中的可疑文件提交到基于云的恶意软件分析沙盒。您可以将分析结果存储在 Cloud Storage 中,以便查看和采取进一步行动,从而提供高效且可伸缩的恶意软件分析。
安全配置备份:使用 Google SecOps 的 SOAR 功能,自动将防火墙规则和入侵检测系统签名等关键安全配置定期备份到 Cloud Storage。自动执行备份可确保业务连续性,并在发生意外或恶意更改时更快地恢复数据。
网络钓鱼活动工件存储:在调查网络钓鱼活动时,使用 Google SecOps 的 SOAR 功能将网络钓鱼电子邮件、附件和其他工件存储在 Cloud Storage 中。制品存储空间可用于集中分析和保存证据,以备日后可能采取的法律行动。
准备工作
如需使用此集成,您需要拥有 Google Cloud 服务账号。您可以使用现有服务账号,也可以创建新服务账号。
创建服务账号
如需有关创建服务账号的指南,请参阅创建服务账号。
在向此服务账号授予对项目的访问权限下,向您的服务账号授予以下角色:
Storage Admin
如果您不在 Google Cloud上运行工作负载,则需要在创建服务账号后创建 JSON 格式的服务账号密钥。如果您不使用 Workload Identity Federation for GKE 电子邮件地址,则需要在配置集成参数时提供下载的 JSON 文件的内容。
出于安全考虑,我们建议您使用 Workload Identity Federation for GKE 电子邮件地址,而不是服务账号 JSON 密钥。如需详细了解工作负载身份,请参阅工作负载的身份。
将 Cloud Storage 与 Google SecOps 集成
集成需要以下参数:
参数 | 说明 |
---|---|
Service Account |
可选 服务账号密钥 JSON 文件的内容。 您可以配置此参数或 如需配置此参数,请提供您在创建服务账号时下载的服务账号 JSON 文件的完整内容。 |
Workload Identity Email |
可选 您的服务账号的客户端电子邮件地址。 您可以配置此参数或 如需使用 Workload Identity Federation for GKE 电子邮件地址模拟服务账号,请向您的服务账号授予 |
Project ID |
可选 用于 Cloud Storage 集成的项目 ID。如果您未为此参数设置任何值,系统会从 |
Quota Project ID |
可选 您用于 Google Cloud API 和结算的 Google Cloud 项目 ID。此形参要求您向服务账号授予 如果您未为此参数设置任何值,系统会从 |
如需详细了解如何在 Google SecOps 中配置集成,请参阅配置集成。
如果需要,您可以在稍后阶段进行更改。配置集成实例后,您可以在剧本中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例。
操作
对于使用访问权限控制列表 (ACL) 的操作,您可以指定访问权限并为存储桶和各个对象应用权限。如需了解详情,请参阅访问控制列表 (ACL)。
从存储分区下载对象
使用此操作从 Cloud Storage 存储桶下载特定对象(文件)。
此操作不会在实体上运行。
操作输入
“从存储分区下载对象”操作需要以下参数:
参数 | 说明 |
---|---|
Bucket Name |
必需 包含要下载的对象的 Cloud Storage 存储桶的名称。 |
Object Name |
必需 要下载的对象的完整名称。 如果对象位于存储桶中的某个文件夹内,请添加文件夹路径,例如 |
Download Path |
必需 下载对象的绝对路径,该路径指向现有目录,例如 |
操作输出
“从存储分区下载对象”操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
丰富化表 | 不可用 |
JSON 结果 | 可用 |
输出消息 | 可用 |
脚本结果 | 可用 |
JSON 结果
以下示例描述了使用“从存储分区下载对象”操作时收到的 JSON 结果输出:
{
"object_name": "123.txt"
"download_path": "/usr/bin/share/download.txt"
}
输出消息
在案例墙上,“从存储分区下载对象”操作提供以下输出消息:
输出消息 | 消息说明 |
---|---|
|
操作成功。 |
Error executing action "Download an Object From a Bucket".
Reason: ERROR_REASON |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用“从存储分区下载对象”操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_success |
True 或 False |
获取存储分区的访问控制列表
使用“获取存储分区的访问控制列表”操作可检索并显示指定 Cloud Storage 存储分区的 ACL。
此操作不会在实体上运行。
操作输入
“获取某个存储分区的访问控制列表”操作需要以下参数:
参数 | 说明 |
---|---|
Bucket Name |
必需 您要检索其 ACL 的 Cloud Storage 存储桶的名称。如需检索多个存储桶的 ACL,请以英文逗号分隔的字符串形式输入存储桶名称,例如 |
操作输出
“获取存储分区的访问控制列表”操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
丰富化表 | 不可用 |
JSON 结果 | 不可用 |
输出消息 | 可用 |
脚本结果 | 可用 |
JSON 结果
[
{"BucketName": "ziv",
"BucketACLs": [
{"Entity": "project-owners-ID",
"Role": "OWNER"}
]
}
]
输出消息
在案例墙上,“获取分区的访问控制列表”操作会提供以下输出消息:
输出消息 | 消息说明 |
---|---|
|
操作成功。 |
Error executing action "Get a Bucket's Access Control List".
Reason:
ERROR_REASON |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用“获取存储分区的访问控制列表”操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_success |
True 或 False |
列出存储分区对象
使用“列出存储分区对象”操作可列出存储在 Cloud Storage 存储桶中的对象。
此操作不会在实体上运行。
操作输入
“列出存储分区对象”操作需要以下参数:
参数 | 说明 |
---|---|
Bucket Name |
必需 要从中检索对象的存储桶的名称。 |
Max Objects to Return |
可选 要返回的对象数量。 默认情况下,该操作每次执行都会返回 50 个对象。 |
Retrieves the Access Control List of an object |
可选 如果选择此操作,则会检索对象 ACL。 默认情况下未选中。 |
操作输出
“列出存储分区对象”操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
丰富化表 | 不可用 |
JSON 结果 | 可用 |
输出消息 | 可用 |
脚本结果 | 可用 |
JSON 结果
以下示例介绍了使用“列出存储分区对象”操作时收到的 JSON 结果输出:
如果未选择
Retrieves the Access Control List of an object
参数:{ "Objects": [ { "ObjectName": "test.txt", "Bucket": "ContentType": "TimeCreated": " ", "TimeUpdated": " ", "Size": 18, "MD5": "7CjVfQ+Oz/C0pI08IKRdvQ==", "Owner": "", "CR32c": "RQEqxA==", "id": "siemplify-tip/test.txt/1604926667310271" } ] }
如果选择了
Retrieves the Access Control List of an object
参数:{ "Objects": [ { "ObjectName": "test.txt", "Bucket": "BUCKET_NAME", "ContentType": "text/plain" "TimeCreated": " ", "TimeUpdated": " ", "Size": 18, "MD5": "7CjVfQ+Oz/C0pI08IKRdvQ==", "Owner": "", "CR32c": "RQEqxA==", "id": "BUCKET_NAME/test.txt/1604926667310271", "ObjectACL": [ { "entity": "user@example.com", "role": "OWNER" }] }, ] }
输出消息
在案例墙上,“列出存储分区对象”操作会提供以下输出消息:
输出消息 | 消息说明 |
---|---|
|
操作成功。 |
Error executing action "List Bucket Objects". Reason:
ERROR_REASON |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用“列出存储分区对象”操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_success |
True 或 False |
列出存储分区
使用“列出存储分区”操作从 Cloud Storage 中检索存储分区列表。
此操作不会在实体上运行。
操作输入
List Buckets 操作需要以下参数:
参数 | 说明 |
---|---|
Max Results |
可选 要返回的存储分区数量上限。 默认情况下,该操作会返回 50 个分桶。 |
操作输出
“列出存储分区”操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
丰富化表 | 不可用 |
JSON 结果 | 可用 |
输出消息 | 可用 |
脚本结果 | 可用 |
JSON 结果
以下示例描述了使用“列出存储分区”操作时收到的 JSON 结果输出:
{
"Buckets": [
{
"CreationDate": "2020-11-09T12:57:03.981Z",
"ModificationDate": "2020-11-09T12:57:03.981Z",
"Name": "testexample",
"Owner": "testexample"
}]
}
输出消息
在案例墙上,“列出桶”操作提供以下输出消息:
输出消息 | 消息说明 |
---|---|
|
操作成功。 |
Error executing action "List Buckets". Reason:
ERROR_REASON |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用“列出存储分区”操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_success |
True 或 False |
Ping
使用 Ping 操作测试与 Cloud Storage 的连接。
此操作不会在实体上运行。
操作输入
无。
操作输出
该操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
丰富化表 | 不可用 |
JSON 结果 | 不可用 |
输出消息 | 可用 |
脚本结果 | 可用 |
输出消息
在“支持请求墙”上,“Ping”操作会提供以下输出消息:
输出消息 | 消息说明 |
---|---|
Successfully connected to the Google Cloud Storage server with
the provided connection parameters! |
操作成功。 |
Failed to connect to the Google Cloud Storage server! Error is
ERROR_REASON |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用 Ping 操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_success |
True 或 False |
移除存储分区的公开访问权限
使用“移除对存储分区的公开访问权限”操作来移除对 Cloud Storage 存储桶的公开访问权限。
此操作需要您向集成中使用的服务账号授予 Storage Admin
角色。
此操作不会在实体上运行。
操作输入
“从存储分区中移除公开访问权限”操作需要以下参数:
参数 | 说明 |
---|---|
Resource Name |
必需 相应存储桶的资源名称。 |
Prevent Public Access From Bucket |
必需 如果选择此操作,系统会将存储桶配置为防止可能的公开访问。 |
操作输出
“从存储分区中移除公开访问权限”操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
丰富化表 | 不可用 |
JSON 结果 | 不可用 |
输出消息 | 可用 |
脚本结果 | 可用 |
输出消息
在案例墙上,“从存储分区中移除公开访问权限”操作会提供以下输出消息:
输出消息 | 消息说明 |
---|---|
Successfully removed public access from bucket using Google
Cloud Storage: RESOURCE_NAME
|
操作成功。 |
Error executing action "Remove Public Access From Bucket".
Reason: ERROR_REASON |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用“从存储分区中移除公开访问权限”操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_success |
True 或 False |
更新存储分区上的 ACL 条目
使用“更新存储分区的 ACL 条目”操作更新指定 Cloud Storage 存储桶中的 ACL 条目。
操作输入
“更新存储分区上的 ACL 条目”操作需要以下参数:
参数 | 说明 |
---|---|
Bucket Name |
必需 要修改 ACL 的存储桶的名称。 |
Entity |
必需 持有相应权限的实体。 可能的值如下:
如需详细了解实体,请参阅资源表示法。 |
Role |
必需 实体所需的访问权限。 可能的值如下所示:
|
操作输出
“更新存储分区的 ACL 条目”操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
丰富化表 | 不可用 |
JSON 结果 | 不可用 |
输出消息 | 可用 |
脚本结果 | 可用 |
输出消息
在支持案例墙上,“更新存储分区上的 ACL 条目”操作提供以下输出消息:
输出消息 | 消息说明 |
---|---|
|
操作成功。现有角色与 Role 参数值不匹配。检查 Role 参数值。 |
Successfully updated ACL entity:
ENTITY to role:
ROLE in bucket
BUCKET_NAME. |
操作成功。 |
|
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用“更新桶上的 ACL 条目”操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_success |
True 或 False |
将对象上传到存储分区
使用“将对象上传到存储分区”操作将对象上传到 Cloud Storage 存储桶。
此操作不会在实体上运行。
操作输入
“将对象上传到存储分区”操作需要以下参数:
参数 | 说明 |
---|---|
Bucket Name |
必需 要将对象上传到的存储桶的名称。 |
Source File Path |
必需 要上传的文件的绝对路径,例如 |
Object Name |
必需 存储桶中已上传对象的名称。 |
操作输出
“将对象上传到存储分区”操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
丰富化表 | 不可用 |
JSON 结果 | 可用 |
输出消息 | 可用 |
脚本结果 | 可用 |
JSON 结果
{
"object_id":"BUCKET_NAME/errorlog.txt/1610616919132517",
"Object_name":"errorlog.txt",
"md5_hash":"PTdL8D6pBwIKyMfIXR/H9A==",
"object_path":"/b/BUCKET_NAME/o/errorlog.txt"
}
输出消息
在 Case Wall 上,“将对象上传到存储分区”操作提供以下输出消息:
输出消息 | 消息说明 |
---|---|
|
操作成功。 |
Error executing action "Upload an Object To a Bucket". Reason:
ERROR_REASON |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用“将对象上传到存储分区”操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_success |
True 或 False |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。