Google Cloud Storage
本文提供指南,說明如何將 Cloud Storage 與 Google Security Operations 的 SOAR 模組整合。
這項整合功能使用一或多個開放原始碼元件。 您可以從 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 SecOps 中設定 Cloud Storage 整合功能前,請先完成下列必要步驟:
建立服務帳戶
如要建立服務帳戶,請完成下列步驟:
前往 Google Cloud 控制台的「憑證」頁面。 前往「憑證」
在「建立憑證」選單中,選取「服務帳戶」。
在「Service account name」(服務帳戶名稱) 欄位中輸入名稱,然後按一下「Create and continue」(建立並繼續)。
按一下「繼續」>「完成」,略過選用的角色指派和主體存取畫面。
將角色授予服務帳戶
如要讓整合服務存取及管理儲存空間 bucket 和物件,請將必要角色授予服務帳戶:
在 Google Cloud 控制台中,依序前往「IAM & Admin」(IAM 與管理)>「IAM」(身分與存取權管理)。
找出服務帳戶,然後按一下「Edit principal」(編輯主體)。
按一下「Add another role」(新增其他角色),然後選取下列項目:
儲存管理員:具備值區和物件的完整控制權。
服務使用情形消費者:只有在您使用
Quota Project ID做為帳單用途時,才需要這個角色。
按一下 [儲存]。
選擇並設定驗證方式
建議使用 Workload Identity 做為驗證方法,因為這項功能會使用短期有效權杖,而非靜態密鑰。
JSON 金鑰:依賴靜態密鑰檔案。
Workload Identity (建議):使用臨時存取權杖。
設定 JSON 金鑰
請按照下列程序,以 JSON 格式產生服務帳戶金鑰檔案:
在 Google Cloud 控制台中選取服務帳戶,然後前往「金鑰」。
依序點選「新增金鑰」>「建立新的金鑰」。
選取「JSON」,然後按一下「建立」。金鑰檔案會下載到電腦。
設定 Workload Identity 憑證
Google SecOps 可透過 Workload Identity 安全地模擬您的服務帳戶。請按照下列步驟設定 Workload Identity。
設定整合執行個體
如要觸發身分探索程序,請先在 Google SecOps 中設定基本連線參數:
前往「內容中心」>「回覆整合」。
搜尋並選取「Google Cloud Storage」整合服務。
設定下列必要參數:
API 根目錄:輸入基準網址 (例如
https://storage.googleapis.com)。Workload Identity 電子郵件地址:輸入您先前建立的服務帳戶電子郵件地址。
驗證 SSL:確認已啟用這項功能。
將「User's Service Account」(使用者服務帳戶) (JSON) 欄位留空。
按一下 [儲存]。
找出專屬身分識別電子郵件地址
如要找出特定身分位址,請觸發連線測試,因為 Google SecOps 會使用特定內部主體與 Google Cloud 資源通訊。這個步驟可確保您將權限授予正確的後端主體。
按一下「測試」。測試預計會失敗。
按一下「測試」旁的 close_small 按鈕。
搜尋錯誤訊息中以
gke-init-python@...或soar-python@...開頭的電子郵件地址。複製這個專屬電子郵件地址。
授予模擬權限
如要建立信任關係,必須授權給專屬身分,代表服務帳戶執行動作。最後一個步驟是建立安全橋接器,讓整合服務使用短期臨時權杖存取資源。
在 Google Cloud 控制台中,依序前往「IAM & Admin」(IAM 與管理)>「Service Accounts」(服務帳戶)。
選取目標服務帳戶,然後前往「權限」。
按一下「授予存取權」。
在「New principals」(新增主體) 欄位中,貼上您從 Google SecOps 複製的專屬身分電子郵件地址。
在「指派角色」欄位中,選取「
Service Account Token Creator」(roles/iam.serviceAccountTokenCreator) 角色。按一下 [儲存]。
將 Cloud Storage 與 Google SecOps 整合
整合需要下列參數:
| 參數 | 說明 |
|---|---|
Service Account |
選填
服務帳戶 JSON 金鑰檔案的完整內容。 |
Workload Identity Email |
選用。
用於 Workload Identity 模擬的服務帳戶用戶端電子郵件地址。 |
Project ID |
選用 用於 Cloud Storage 整合的專案 ID。如未設定這個參數的值,系統會從 |
Quota Project ID |
選用 您用於 Google Cloud API 和帳單的專案 ID。 Google Cloud 如要使用這個參數,您必須將 如未提供值,系統會從 |
如需在 Google SecOps 中設定整合功能的操作說明,請參閱「設定整合功能」。
如有需要,您可以在稍後階段進行變更。設定整合執行個體後,您就可以在應對手冊中使用該執行個體。如要進一步瞭解如何設定及支援多個執行個體,請參閱「支援多個執行個體」。
動作
如要進一步瞭解動作,請參閱「 從工作台回覆待處理動作」和「執行手動動作」。
從 bucket 下載物件
使用這項動作,從 Cloud Storage bucket 下載特定物件 (檔案)。
這項操作不會對實體執行。
動作輸入內容
「從 bucket 下載物件」動作需要下列參數:
| 參數 | 說明 |
|---|---|
Bucket Name |
必要 包含要下載物件的 Cloud Storage 值區名稱。 |
Object Name |
必要 要下載的物件全名。 如果物件位於值區的資料夾中,請加入資料夾路徑,例如 |
Download Path |
必要 下載物件的絕對路徑,指向現有目錄,例如 |
動作輸出內容
「從 bucket 下載物件」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 無法使用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 可用 |
| 輸出訊息 | 可用 |
| 指令碼結果 | 可用 |
JSON 結果
以下範例說明使用「從值區下載物件」動作時收到的 JSON 結果輸出內容:
{
"object_name": "123.txt"
"download_path": "/usr/bin/share/download.txt"
}
輸出訊息
在案件總覽頁面中,「從 bucket 下載物件」動作會提供下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
|
動作成功。 |
Error executing action "Download an Object From a Bucket".
Reason: ERROR_REASON |
動作失敗。 檢查伺服器的連線、輸入參數或憑證。 |
指令碼結果
下表說明使用「從 Bucket 下載物件」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
is_success |
True或False |
取得 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 名稱,例如 |
動作輸出內容
「取得 Bucket 的存取控制清單」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 無法使用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 無法使用 |
| 輸出訊息 | 可用 |
| 指令碼結果 | 可用 |
JSON 結果
[
{"BucketName": "ziv",
"BucketACLs": [
{"Entity": "project-owners-ID",
"Role": "OWNER"}
]
}
]
輸出訊息
在 Case Wall 中,「Get a Bucket's Access Control List」動作會提供下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
|
動作成功。 |
Error executing action "Get a Bucket's Access Control List".
Reason:
ERROR_REASON |
動作失敗。 檢查伺服器的連線、輸入參數或憑證。 |
指令碼結果
下表說明使用「取得 Bucket 的存取控制清單」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
is_success |
True或False |
列出 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 物件」動作會提供下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
|
動作成功。 |
Error executing action "List Bucket Objects". Reason:
ERROR_REASON |
動作失敗。 檢查伺服器的連線、輸入參數或憑證。 |
指令碼結果
下表說明使用「列出 Bucket 物件」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
is_success |
True或False |
列出 bucket
使用「列出 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」動作會提供下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
|
動作成功。 |
Error executing action "List Buckets". Reason:
ERROR_REASON |
動作失敗。 檢查伺服器的連線、輸入參數或憑證。 |
指令碼結果
下表說明使用「列出 Bucket」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
is_success |
True或False |
乒乓
使用 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 |
從 Bucket 移除公開存取權
使用「Remove Public Access From Bucket」(從 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 結果 | 無法使用 |
| 輸出訊息 | 可用 |
| 指令碼結果 | 可用 |
輸出訊息
在案件總覽中,「從 bucket 移除公開存取權」動作會提供下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
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 |
True或False |
更新 Bucket 的 ACL 項目
使用「更新 Bucket 的 ACL 項目」動作,更新指定 Cloud Storage Bucket 中的 ACL 項目。
動作輸入內容
「更新 Bucket 的 ACL 項目」動作需要下列參數:
| 參數 | 說明 |
|---|---|
Bucket Name |
必要 要修改 ACL 的值區名稱。 |
Entity |
必要 擁有權限的實體。 可能的值如下:
如要進一步瞭解實體,請參閱「資源表示法」。 |
Role |
必要 實體所需的存取權限。 可用的值如下:
|
動作輸出內容
「更新 Bucket 的 ACL 項目」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 無法使用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 無法使用 |
| 輸出訊息 | 可用 |
| 指令碼結果 | 可用 |
輸出訊息
在案件牆上,「Update an ACL entry on Bucket」動作會提供下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
|
動作成功。現有角色與 Role 參數值不符。檢查 Role 參數值。 |
Successfully updated ACL entity:
ENTITY to role:
ROLE in bucket
BUCKET_NAME. |
動作成功。 |
|
動作失敗。 檢查伺服器的連線、輸入參數或憑證。 |
指令碼結果
下表說明使用「Update an ACL entry on Bucket」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
is_success |
True或False |
將物件上傳至 bucket
使用「Upload an Object To a Bucket」(將物件上傳至 bucket) 動作,將物件上傳至 Cloud Storage bucket。
這項操作不會對實體執行。
動作輸入內容
「將物件上傳至 Bucket」動作需要下列參數:
| 參數 | 說明 |
|---|---|
Bucket Name |
必要 要上傳物件的值區名稱。 |
Source File Path |
必要 要上傳檔案的絕對路徑,例如 |
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」動作會提供下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
|
動作成功。 |
Error executing action "Upload an Object To a Bucket". Reason:
ERROR_REASON |
動作失敗。 檢查伺服器的連線、輸入參數或憑證。 |
指令碼結果
下表說明使用「將物件上傳至 Bucket」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
is_success |
True或False |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。