Google Cloud Storage

本文提供相關指引,說明如何將 Cloud Storage 與 Google Security Operations 的 SOAR 模組整合。

整合版本:9.0

這項整合功能使用一或多個開放原始碼元件。 您可以從 Cloud Storage bucket 下載這項整合的原始碼副本。

用途

在 Google SecOps SOAR 平台中,Google Cloud Storage 整合功能可解決下列用途:

  • 事件證據儲存:應對手冊可自動收集事件相關證據 (例如記錄和惡意軟體樣本),並儲存在 Cloud Storage 值區中,提供防竄改的證據保存庫。

  • 分享威脅情報:您的安全團隊可以使用 Cloud Storage,與其他團隊或機構安全地分享威脅情報動態消息,例如惡意 IP 位址和網域清單。分享動態消息可促進威脅防禦合作,並加快回應速度。

  • 惡意軟體分析沙箱整合:劇本可自動將事件中的可疑檔案提交至雲端惡意軟體分析沙箱。您可以將分析結果儲存在 Cloud Storage 中,以便查看及採取進一步行動,提供有效率且可擴充的惡意軟體分析。

  • 備份安全設定:使用 Google SecOps 的 SOAR 功能,自動定期將重要安全設定 (例如防火牆規則和入侵偵測系統簽章) 備份到 Cloud Storage。自動備份可確保業務持續運作,並在發生意外或惡意變更時加快復原速度。

  • 網路釣魚活動構件儲存空間:在調查網路釣魚活動時,使用 Google SecOps 的 SOAR 功能,將網路釣魚電子郵件、附件和其他構件儲存在 Cloud Storage 中。構件儲存空間可集中分析及保存證據,以備採取法律行動。

事前準備

如要使用整合功能,您需要 Google Cloud 服務帳戶。你可以使用現有的服務帳戶,也可以建立新的服務帳戶。

建立服務帳戶

  1. 如需建立服務帳戶的指引,請參閱「建立服務帳戶」。

  2. 在「將專案存取權授予這個服務帳戶」下方,將下列角色授予服務帳戶:

    • Storage Admin
  3. 如果您未在 Google Cloud上執行工作負載,則必須在建立服務帳戶後,以 JSON 格式建立服務帳戶金鑰。如果您未使用 GKE 電子郵件的 Workload Identity Federation,請在設定整合參數時,提供下載的 JSON 檔案內容。

    基於安全考量,建議您使用 Workload Identity Federation for GKE 電子郵件地址,而非服務帳戶 JSON 金鑰。如要進一步瞭解工作負載身分,請參閱「工作負載身分」。

將 Cloud Storage 與 Google SecOps 整合

整合作業需要下列參數:

參數 說明
Service Account 選用

服務帳戶金鑰 JSON 檔案的內容。

您可以設定這個參數或 Workload Identity Email 參數。

如要設定這個參數,請提供您在建立服務帳戶時下載的服務帳戶 JSON 檔案完整內容。

Workload Identity Email 選用

服務帳戶的用戶端電子郵件地址。

您可以設定這個參數或 Service Account 參數。

如要使用 Workload Identity Federation for GKE 電子郵件地址模擬服務帳戶,請將 Service Account Token Creator 角色授予服務帳戶。如要進一步瞭解 Workload Identity,以及如何使用這項功能,請參閱「工作負載的身分」。

Project ID 選用

用於 Cloud Storage 整合的專案 ID。如未設定這個參數的值,系統會從 Service Account 參數提供的 JSON 檔案內容中擷取專案 ID。

Quota Project ID 選用

您用於 Google Cloud API 和帳單的專案 ID。 Google Cloud 如要使用這個參數,您必須將 Service Usage Consumer 角色授予服務帳戶。

如未設定這個參數的值,系統會從 Service Account 參數提供的 JSON 檔案內容中擷取專案 ID。

如需在 Google SecOps 中設定整合功能的詳細操作說明,請參閱「設定整合功能」。

如有需要,您之後可以變更。設定整合執行個體後,您就可以在劇本中使用該執行個體。如要進一步瞭解如何設定及支援多個執行個體,請參閱「支援多個執行個體」。

動作

對於可搭配存取控制清單 (ACL) 使用的動作,您可以指定存取權,並套用 bucket 和個別物件的權限。詳情請參閱存取控制清單 (ACL)

從 bucket 下載物件

使用這項動作,從 Cloud Storage bucket 下載特定物件 (檔案)。

這項操作不會對實體執行。

動作輸入內容

「從 bucket 下載物件」動作需要下列參數:

參數 說明
Bucket Name 必要

包含要下載物件的 Cloud Storage 值區名稱。

Object Name 必要

要下載的物件全名。

如果物件位於值區的資料夾中,請加入資料夾路徑,例如 folderA/mydocument.pdf

Download Path 必要

下載物件的絕對路徑,指向現有目錄,例如 /tmp/downloads/

動作輸出內容

「從 bucket 下載物件」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件訊息牆表格 無法使用
補充資訊表格 無法使用
JSON 結果 可用
輸出訊息 可用
指令碼結果 可用
JSON 結果

以下範例說明使用「從值區下載物件」動作時收到的 JSON 結果輸出內容:

{
"object_name": "123.txt"
"download_path": "/usr/bin/share/download.txt"
}
輸出訊息

在案件總覽頁面中,「從值區下載物件」動作會提供下列輸出訊息:

輸出訊息 訊息說明

OBJECT_NAME successfully downloaded to DESTINATION_PATH.

Action wasn't able to download OBJECT_NAME. Reason: Bucket BUCKET_NAME not found.

Action wasn't able to download OBJECT_NAME. Reason: No such object.

動作成功。
Error executing action "Download an Object From a Bucket". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

指令碼結果

下表說明使用「從 Bucket 下載物件」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

取得 Bucket 的存取控制清單

使用「Get a Bucket's Access Control List」動作,擷取並顯示指定 Cloud Storage bucket 的 ACL。

這項操作不會對實體執行。

動作輸入內容

「Get a Bucket's Access Control List」動作需要下列參數:

參數 說明
Bucket Name 必要

您要擷取 ACL 的 Cloud Storage bucket 名稱。如要擷取多個 bucket 的 ACL,請以半形逗號分隔 bucket 名稱,例如 bucket1,bucket2,bucket3

動作輸出內容

「取得 Bucket 的存取控制清單」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件訊息牆表格 無法使用
補充資訊表格 無法使用
JSON 結果 無法使用
輸出訊息 可用
指令碼結果 可用
JSON 結果
[
  {"BucketName": "ziv",
   "BucketACLs": [
                  {"Entity": "project-owners-ID",
                   "Role": "OWNER"}
                 ]
  }
]
輸出訊息

在案件牆上,「取得值區的存取控制清單」動作會提供下列輸出訊息:

輸出訊息 訊息說明

Successfully retrieved the access control list (ACL) for the Cloud Storage buckets BUCKET_NAMES

Action wasn't able to return the access control list(ACL) for the Cloud Storage buckets BUCKET_NAMES. Reason: Cannot get legacy ACL for a bucket that has uniform bucket-level access. Read more at https://cloud.google.com/storage/docs/uniform-bucket-level-access

Action wasn't able to return the access control list(ACL) for the Cloud Storage buckets BUCKET_NAMES.

動作成功。
Error executing action "Get a Bucket's Access Control List". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

指令碼結果

下表說明使用「取得 Bucket 的存取控制清單」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

列出 Bucket 物件

使用「列出 Bucket 物件」動作,列出儲存在 Cloud Storage bucket 中的物件。

這項操作不會對實體執行。

動作輸入內容

List Bucket Objects 動作需要下列參數:

參數 說明
Bucket Name 必要

要從中擷取物件的值區名稱。

Max Objects to Return 選用

要傳回的物件數。

根據預設,每次執行動作時,動作會傳回 50 個物件。

Retrieves the Access Control List of an object 選用

如果選取這個動作,系統會擷取物件 ACL。

預設為未選取。

動作輸出內容

「列出 Bucket 物件」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件訊息牆表格 無法使用
補充資訊表格 無法使用
JSON 結果 可用
輸出訊息 可用
指令碼結果 可用
JSON 結果

下列範例說明使用「列出 Bucket 物件」動作時收到的 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"
                    }]
            },
        ]
    }
    
輸出訊息

在案件牆上,「列出 Bucket 物件」動作會提供下列輸出訊息:

輸出訊息 訊息說明

Successfully returned objects of the BUCKET_NAME bucket in Google Cloud Storage.

Action wasn't able to return objects of the BUCKET_NAME bucket in Google Cloud Storage.

動作成功。
Error executing action "List Bucket Objects". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

指令碼結果

下表說明使用「列出 Bucket 物件」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

列出值區

使用「列出 bucket」動作,從 Cloud Storage 擷取 bucket 清單。

這項操作不會對實體執行。

動作輸入內容

List Buckets 動作需要下列參數:

參數 說明
Max Results 選用

要傳回的值區數量上限。

根據預設,這項動作會傳回 50 個值區。

動作輸出內容

「列出 Bucket」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件訊息牆表格 無法使用
補充資訊表格 無法使用
JSON 結果 可用
輸出訊息 可用
指令碼結果 可用
JSON 結果

以下範例說明使用「列出 Bucket」動作時收到的 JSON 結果輸出內容:

{
    "Buckets": [
        {
            "CreationDate": "2020-11-09T12:57:03.981Z",
            "ModificationDate": "2020-11-09T12:57:03.981Z",
            "Name": "testexample",
            "Owner": "testexample"
        }]
}
輸出訊息

在案件總覽上,「列出 Bucket」動作會提供下列輸出訊息:

輸出訊息 訊息說明

Successfully listed available buckets in Google Cloud Storage.

Action wasn't able to list available buckets in Google Cloud Storage.

動作成功。
Error executing action "List Buckets". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

指令碼結果

下表說明使用「列出 Bucket」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

乒乓

使用 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 TrueFalse

移除值區的公開存取權

使用「Remove Public Access From Bucket」動作,從 Cloud Storage bucket 移除公開存取權。

如要執行這項動作,您必須將 Storage Admin 角色授予整合服務中使用的服務帳戶。

這項操作不會對實體執行。

動作輸入內容

「Remove Public Access From Bucket」動作需要下列參數:

參數 說明
Resource Name 必要

值區的資源名稱。

Prevent Public Access From Bucket 必要

選取後,這項動作會將 bucket 設為禁止公開存取。

動作輸出內容

「Remove 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

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

指令碼結果

下表說明使用「Remove Public Access From Bucket」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

更新 Bucket 的 ACL 項目

使用「更新 Bucket 的 ACL 項目」動作,更新指定 Cloud Storage Bucket 中的 ACL 項目。

動作輸入內容

「更新 Bucket 的 ACL 項目」動作需要下列參數:

參數 說明
Bucket Name 必要

要修改 ACL 的值區名稱。

Entity 必要

擁有權限的實體。

可能的值如下:

  • user-userId
  • user-emailAddress
  • group-groupId
  • group-emailAddress
  • allUsers
  • allAuthenticatedUsers

如要進一步瞭解實體,請參閱資源表示法

Role 必要

實體所需的存取權。

可能的值如下:

  • OWNER
  • READER
  • WRITER

動作輸出內容

「更新 Bucket 的 ACL 項目」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件訊息牆表格 無法使用
補充資訊表格 無法使用
JSON 結果 無法使用
輸出訊息 可用
指令碼結果 可用
輸出訊息

在案件牆上,「Update an ACL entry on Bucket」動作會提供下列輸出訊息:

輸出訊息 訊息說明

Action wasn't able to update the ACL entity: ENTITY to role: ROLE in bucket BUCKET_NAME. Reason: OWNERs are WRITERs.

Action wasn't able to update the ACL entity: ENTITY to role: ROLE in bucket BUCKET_NAME. Reason: OWNERs are WRITERs.

動作成功。現有角色與 Role 參數值不符。檢查 Role 參數值。
Successfully updated ACL entity: ENTITY to role: ROLE in bucket BUCKET_NAME. 動作成功。

Error executing action "Update an ACL entry on Bucket". Reason: Entity ENTITY does not exist in the ACL of bucket BUCKET_NAME.

Action wasn't able to update the ACL entity: ENTITY to role: ROLE in bucket BUCKET_NAME. The entity holding the permission can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.

Error executing action "Update an ACL entry on Bucket". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

指令碼結果

下表說明使用「更新 Bucket 的 ACL 項目」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

將物件上傳至 bucket

使用「將物件上傳至 bucket」動作,將物件上傳至 Cloud Storage bucket。

這項操作不會對實體執行。

動作輸入內容

「將物件上傳至 Bucket」動作需要下列參數:

參數 說明
Bucket Name 必要

要上傳物件的值區名稱。

Source File Path 必要

要上傳檔案的絕對路徑,例如 /local/path/to/filename

Object Name 必要

值區中上傳物件的名稱。

動作輸出內容

「Upload an Object To a Bucket」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件訊息牆表格 無法使用
補充資訊表格 無法使用
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"
}
輸出訊息

在案件牆上,「Upload an Object To a Bucket」動作會提供下列輸出訊息:

輸出訊息 訊息說明

Successfully uploaded SOURCE_PATH to bucket: BUCKET_NAME.

Action wasn't able to upload SOURCE_PATH to Google Cloud Storage. Reason:No such file or directory: SOURCE_PATH.

動作成功。
Error executing action "Upload an Object To a Bucket". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

指令碼結果

下表說明使用「將物件上傳至 Bucket」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。