驗證安全控管機制和設定

本指南適用於資安工程師,可協助他們在 Google Cloud 環境中模擬攻擊,主動測試安全性。本文說明如何實施持續的資安驗證程序。

Security Validation 會使用模擬攻擊者技術的動作和指令碼,在 Google Cloud 專案中觸發偵測警報。持續運作可找出安全漏洞,安全團隊則可確保設定和控制項能如預期因應最新威脅,進而降低風險。

順利完成這項歷程後,您就能獲得可衡量的證明,顯示安全防護機制有所提升,並確保新導入的偵測規則或整合功能正常運作,不需要手動介入。

常見用途

本節列出 Security Validation 的常見用途。

偵測安全防護機制回歸

目標:找出先前遭到封鎖的攻擊者行為,是否已在環境中成功執行。

價值:提醒安全和營運團隊注意非預期的設定變更,讓他們在安全漏洞遭到利用前加以修正。

驗證安全控管調整

目標:確認新導入的偵測規則或產品整合功能運作正常。

價值:提供可衡量的證據,證明規則更新或環境變更已成功改善安全防護機制,讓團隊有信心建立新的基準。

重要術語

  • 安全驗證環境:安全驗證環境會為安全測試設定環境。這項設定會指定要使用的專案、執行測試的帳戶,以及動作所需的任何其他詳細資料。

  • 安全性驗證動作:這類指令碼旨在模擬真實攻擊者的技術,用於觸發偵測規則,以驗證您的安全防護狀態。

  • 基準執行作業:已完成的特定安全性驗證執行作業,可做為比較日後執行作業的標準參考。

  • 監控:已排定的工作 (API 中的 SecurityValidationJob),會執行安全性驗證動作,並根據定義的基準評估結果。

  • 漂移狀態:監控項目的健康指標,根據近期執行作業是否符合基準 (健康) 或顯示偏差 (偵測到漂移) 而定。

  • 關聯性時間範圍:執行作業後 12 小時內,系統會根據所執行動作的中繼資料中的事件篩選範本,搜尋並關聯相關事件和偵測結果。

  • 監控逾時:系統在執行後等待事件和偵測結果相互關聯的時間上限,之後才會評估最終的漂移狀態。這項逾時設定會在較大的 12 小時關聯時間範圍內運作。必須在達到這項監控逾時前觀察到預期結果,監控項目才會視為成功。如果檢查未在逾時前通過,系統會將監控器標示為 failed。這段時間預設為 8 小時,但可設定為 15 分鐘到 10 小時。

事前準備

請確認已完成下列設定並取得權限。

必要設定

請確認您已完成下列設定:

  • 您的租戶必須啟用安全驗證。

  • Security Validation 僅適用於自行管理的專案。

  • 您需要一或兩個 Google Cloud 專案。雖然您可以使用同一個專案執行及指定目標,但我們建議您使用不同的專案,以提升安全性、保持測試乾淨,並簡化設定管理作業。

    • 執行專案:Security Validation 會在執行專案中執行安全測試。 這項作業會使用 Cloud Run 和 Cloud Storage 執行。這些工作和值區僅供驗證服務使用。不應授予其他使用者存取權。

      您必須在這個專案中啟用 Cloud Run API、Resource Manager API 和 IAM API,並具備 resourcemanager.projects.SetIamPolicystorage.buckets.SetIamPolicystorage.buckets.createstorage.buckets.delete 權限,才能為專案建立安全性驗證環境。如要查看提供這項權限的角色清單,請參閱「IAM 權限參考資料」。

    • 目標專案:安全驗證動作指令碼發出的 API 呼叫所運作的專案。動作是否成功取決於專案中是否已啟用動作使用的必要 API,以及安全驗證環境中的服務帳戶是否具備這些 API 的必要權限。

  • 服務帳戶:執行專案中需要一或多個服務帳戶。這些帳戶會執行動作指令碼。如要以特定環境執行動作,使用者必須具備該環境中服務帳戶的 iam.serviceAccounts.actAs 權限。

所需權限

在 SecOps 執行個體專案中指派下列其中一個預先定義的角色。

  • chronicle.viewer:具備安全性驗證動作、環境、工作和執行資源的唯讀存取權。

  • chronicle.editor:包含所有 viewer 權限,以及建立、更新、執行及刪除安全性驗證背景資訊和工作的權限。

  • chronicle.admin:包含所有 editor 權限,以及建立、更新及刪除自訂安全性驗證動作的權限 (僅限 API)。

如果沒有使用上述預先定義的角色,可以透過自訂角色授予同等權限,或是指派 chronicle.securityValidationAdmin 角色,該角色包含與 chronicle.admin 相同的權限。

詳情請參閱「必要的角色」。

實作持續的安全性驗證

驗證安全狀況需要循序漸進:

  • 定義環境

  • 執行模擬作業,建立基準

  • 自動執行模擬作業,偵測偏移情形。

這個工作流程可確保安全控管機制在環境演進時仍有效運作。

建立安全性驗證環境

安全驗證環境會為安全測試設定環境。 其中會指定要使用的專案、用於執行測試的帳戶,以及動作所需的任何其他詳細資料。您可以重複使用相同的內容執行不同動作。

如要建立安全性驗證環境,請按照下列步驟操作:

  1. 登入 Google SecOps

  2. 前往「安全性驗證」,然後前往「執行環境」分頁。

  3. 按一下「新增執行作業結構定義」

  4. 在「新增執行作業結構定義」對話方塊中,執行下列操作:

    1. 在「基本屬性」中,輸入內容名稱和說明,然後按一下「下一步」

    2. 在「環境設定」中,輸入 Google Cloud 專案 ID、執行服務帳戶和清除服務帳戶。點選「下一步」

      建議您分別使用服務帳戶執行 action profile (執行動作指令碼) 和 setup/cleanup profile (執行部分動作的設定和清除指令碼)。這些服務帳戶在目標專案中可獲得不同權限。

    3. 在「執行階段變數」中,新增一或多個變數,動態覆寫預設參數。新增鍵/值組合,其中 key 是參數名稱,value 則是其覆寫值。

    4. 點選「建立」

執行安全性驗證動作

如要針對安全驗證環境執行安全驗證動作,請按照下列步驟操作:

  1. 登入 Google SecOps

  2. 前往「安全性驗證」,然後前往「內容庫」分頁。

  3. 選取動作,然後按一下「執行」

  4. 在對話方塊中,選取您建立的執行環境,然後按一下「立即執行」

系統會建立新的執行作業,並顯示在「執行記錄」分頁中。

管理安全性驗證監控器

您可以使用監控功能,定期自動重新執行成功執行的動作。這項功能可持續監控安全性狀態,無須手動介入。

建立監控器

您只能從成功完成的執行作業建立監控。 如要從執行作業建立監控器,請按照下列步驟操作:

  1. 登入 Google SecOps

  2. 前往「安全性驗證」,然後前往「執行記錄」分頁。

  3. 按一下執行的「執行 ID」,然後按一下「建立監控器」

  4. 選用:在「建立監控器」視窗中,為監控器命名。

    如果沒有輸入監控器名稱,系統會以監控器 ID 指稱該監控器。

    查看這個視窗中顯示的基準執行作業詳細資料。

  5. 點選「下一步」

  6. 設定螢幕。

    你可以選擇在特定時間執行監控,或每小時執行一次。

    如要在特定時間執行監控,請按照下列步驟操作:

    1. 在「時間」下拉式選單中,選取「在特定時間執行」

    2. 在旁邊的文字方塊中指定時間。

    3. 在「天數」選項中,選取下列任一選項:

      • 每日:每天在指定時間執行。

      • 星期幾:只在所選日期 (例如週一、週三、週五) 的指定時間執行。

      • 每月第幾天:每月在指定日期 (例如 15 號) 的指定時間執行一次。

    4. 在「月份」下拉式選單中,選取「每月」 (每月執行) 或「特定月份」,指定要執行監控的確切月份 (例如 1 月、4 月、7 月)。

    5. 在「時區」下拉式選單中,選取所需時區。 這個欄位預設為「使用者偏好設定」中設定的時區 (可能與瀏覽器設定不同)。如要尋找或變更這項預設設定,請依序前往「設定檔」>「使用者偏好設定」>「本地化」>「時區」

    6. 點選「下一步」

    如要每小時執行一次監控,請按照下列步驟操作:

    1. 在「時間」下拉式選單中,選取「每小時重複」

    2. 在「hour(s)」欄位中設定監控週期重複頻率,並在「minute(s)」欄位中設定特定分鐘標記。舉例來說,如果設為 1 小時 30 分鐘,監控器會在每小時的 30 分鐘後執行 (不會每 90 分鐘執行一次)。

    3. 在「時數」選項中,選取下列其中一個選項:

      • 全天候:系統會根據指定頻率,全天候每小時執行監控。

      • 開始和結束時間:監控器只會在指定的開始和結束時間範圍內運作 (例如上午 8:00 到下午 5:00)。

    4. 在「天數」選項中,選取下列任一選項:

      • 每日:每天在指定時間執行。

      • 星期幾:只在所選日期 (例如週一、週三、週五) 的指定時間執行。

      • 每月第幾天:每月在指定日期 (例如 15 號) 的指定時間執行一次。

    5. 在「月份」下拉式選單中,選取「每月」 (每月執行) 或「特定月份」,指定要執行監控的確切月份 (例如 1 月、4 月、7 月)。

    6. 在「時區」下拉式選單中,選取所需時區。 這個欄位預設為「使用者偏好設定」中設定的時區 (可能與瀏覽器設定不同)。如要尋找或變更這項預設設定,請依序前往「設定檔」>「使用者偏好設定」>「本地化」>「時區」

    7. 點選「下一步」

  7. 在「預期結果」中,視需要勾選或取消勾選條件。你必須至少選取一個條件。

    • 動作結果與基準相符:評估執行狀態、結果和結果原因是否與基準相符。這三個參數都必須相符,檢查結果才會評估為 true。

    • 關聯事件產品符合基準:

      • 依產品將關聯事件分組。

      • 確認目前執行作業中,基準中列出的每項產品至少有一個事件。

      • 如果產品在基準中沒有任何事件,這項檢查就會忽略該產品的事件。

      • 如果與基準相符的事件未在逾時前抵達,則評估結果為 false

    • 關聯偵測規則,可針對符合基準的項目發出快訊:

      • 依規則和警示狀態將偵測結果分組。

      • 驗證目前執行作業是否至少偵測到一個規則,而該規則在基準執行作業中偵測到項目。

      • 忽略基準執行作業中沒有偵測項目的規則所偵測到的項目。

      • 如果與基準相符的偵測項目未在逾時前抵達,則評估結果為 false

  8. 按一下「建立」來建立監控器。

查看及執行監控

如要查看已建立的監控器,請按照下列步驟操作:

  1. 前往「安全性驗證」,然後前往「監控」分頁。部分資料欄預設為隱藏,請按一下「資料欄管理工具」,管理資料欄的顯示狀態。

  2. 在清單中找出特定螢幕。

  3. 按一下監控項目的連結,開啟「監控項目詳細資料」頁面。

  4. 按一下「立即執行」即可執行監控器。

「監控詳細資料」頁面提供監控的集中式概略總覽。有助於快速評估監視器的整體狀態和健康情況。 這份報表提供下列有關監控的重要資訊:

健康摘要

下列指標資訊卡提供 Monitor 穩定性的概略總覽:

  • 監控健康狀態:根據上次執行作業的最終監控結果 (例如 Healthy) 顯示目前狀態,以及該狀態的持續時間。

  • 最新健康狀態良好或不良結果:提供指標,指出最近一次偏離基準的執行作業。

  • 結果新鮮度:顯示上次執行監控作業並取得最終狀態後經過的時間。

預期結果

本節將定義從基準執行作業得出的成功標準。

  • 動作結果和原因:與基準執行作業相符的動作結果和原因 (例如 NOT_BLOCKED,並附上原因)。

  • 產生事件的產品:與基準執行作業相符的關聯事件產品清單。

  • 警告偵測規則:符合基準執行的警告關聯偵測規則清單。

「監控結果」表格會顯示監控作業的所有執行作業。表格支援文字搜尋、篩選和欄位設定。

啟用或停用螢幕

如要啟用或停用監控器,請按照下列步驟操作:

  1. 前往「安全性驗證」,然後前往「監控」分頁。

  2. 按一下「狀態」切換鈕,即可啟用或停用監控器。或者,您也可以在「Monitor details」(監控詳細資料) 頁面上,按一下「Pause Monitor」(暫停監控) 或「Restart Monitor」(重新啟動監控),變更監控狀態。

修改或刪除螢幕

如要修改或刪除監視器,請按照下列步驟操作:

  1. 前往「安全性驗證」,然後前往「監控」分頁。

  2. 在要修改的螢幕上按一下 選單。

  3. 按一下「編輯監控器」可修改監控器,按一下「刪除監控器」則可刪除監控器。您也可以在「監控詳細資料」頁面點選「編輯監控」來修改。

  4. 按一下「更新」或「確認」,即可套用變更。

查看監控結果

如要查看 Monitor 的所有執行作業,請執行下列操作:

  1. 前往「安全性驗證」,然後前往「監控」分頁。

  2. 按一下「Monitor」中的 選單。

  3. 按一下「查看所有結果」。系統隨即會顯示「執行記錄」頁面。

系統會篩選執行作業,顯示與該特定監控項目相關聯的所有執行作業。

查看上次執行結果

如要查看監控項目的上次執行結果,請按照下列步驟操作:

  1. 前往「安全性驗證」,然後前往「監控」分頁。

  2. 按一下「Monitor」中的 選單。

  3. 按一下「查看上次執行結果」,開啟「執行詳細資料」

系統會顯示該監控作業最近一次執行的詳細資料。

查看執行結果

您可以在「執行記錄」分頁中,查看執行的 Security Validation 動作。如要查看執行結果,請按照下列步驟操作:

  1. 登入 Google SecOps

  2. 前往「安全性驗證」,然後前往「執行記錄」分頁,監控執行狀態。

    「執行狀態」欄會指出執行作業是否成功,或是發生錯誤。如果成功,您可以在 Google SecOps 中查看由 Security Validation 動作觸發的產生事件和偵測結果。

  3. 按一下執行作業 ID,即可查看執行作業詳細資料。

「動作執行詳細資料」頁面會提供驗證動作的狀態、結果和深入分析。您可以在這個頁面瞭解動作活動觸發了哪些偵測規則,進而驗證安全防護狀態。

「關聯進度」會顯示執行作業的即時關聯工作流程進度。在關聯性分析執行期間,事件總數可能會增加,直到工作完成為止。

分析「關聯規則」表格

「相關規則」表格會列出動作執行期間觸發的偵測規則,包括自訂和精選規則。

表格會顯示自訂和精選規則。這項資訊包含兩組規則: * 在動作的中繼資料中明確定義的規則 * 由相關事件觸發的其他規則

這有助於判斷哪些規則的運作符合預期,以及哪些規則可能需要進一步調查。

表格包含下列各欄:

  • 規則名稱:偵測規則的名稱。按一下規則名稱,即可查看規則定義和偵測記錄。

  • 偵測次數:規則觸發的偵測次數。如果值為 0,表示系統找不到相符的事件。

  • 偵測結果:連結至「偵測結果」頁面,顯示本次執行作業觸發的偵測結果。

  • 與動作相關聯:指出規則是否屬於動作的中繼資料:

    • 是:動作的中繼資料包含規則。系統預期會在執行動作時觸發這項規則。

    • 否:這項動作的中繼資料不包含規則,但其邏輯符合產生的事件並觸發動作。

下表可協助您找出結果:

「有相關聯的動作」欄 偵測項目數量欄 代表意義
YES 1 以上 成功:預期規則已成功觸發一或多項偵測。
NO 1 以上 活動觸發了非預期的規則。
YES 0 預期會觸發偵測項目的規則未觸發任何偵測項目。

分析關聯事件

執行 Security Validation 動作後,請使用相關事件評估環境和安全控管措施對模擬威脅的反應。

分析結果包含兩個部分:關聯性工作流程的即時狀態,以及所有產生事件的詳細資料表。

「事件關聯狀態」會顯示目前的工作流程狀態,如下所示:

  • 執行中:系統正在主動搜尋相關事件。

  • 已完成:所有事件關聯活動都已順利完成。

  • Errored:關聯工作流程發生錯誤,無法完成。

「關聯工作流程完成時間」會顯示關聯作業的預計或實際完成時間。

「事件」表格會列出動作產生的所有事件。您可以使用這項資料,分析環境和安全控管措施中的個別回應。

表格包含下列各欄:

  • 事件:事件 ID。按一下即可在 UDM 搜尋中查看事件詳細資料。

  • 事件時間戳記:事件在來源系統 (例如伺服器或防火牆) 發生時的時間。

  • 觀察到的時間戳記:Security Validation 服務發現事件並與執行作業建立關聯的時間。

  • 產品:產生事件的產品。

  • 安全結果動作:事件結果 (BlockedNot blocked),根據 UDM 事件的 security_result.action 欄位。

動作的目標區域可能與 Google SecOps 執行個體的執行區域不同。執行結果會顯示從執行專案擷取的記錄。

存取進階素材資源和參考資料

請參閱下列資產,瞭解設定範例和參考資料對應。

實作範例:使用 signJWT 產生存取權杖

以使用 signJWT 權限動作產生存取權杖為例。這個範例假設您已設定 Security Validation 環境,並在該環境中執行動作。這項動作預期會產生 Cloud 稽核記錄,並觸發 Access token generation with signJWT 威脅偵測規則。

請完成下列設定:

  • 已啟用的 API:目標專案和執行專案都必須啟用 Identity and Access Management (IAM) 服務帳戶憑證 API。

  • 服務帳戶權限:安全驗證環境的 profile 欄位中指定的服務帳戶,必須在目標專案中具備 iam.serviceAccounts.signJwt 權限。您可以透過服務帳戶權杖建立者角色 (roles/iam.serviceAccountTokenCreator) 授予這項權限。您可以對專案或目標服務帳戶授予這個角色 (就這項動作而言,目標服務帳戶是目標專案的預設 Compute Engine 服務帳戶)。

  • IAM 稽核記錄:目標專案必須啟用 IAM 稽核記錄 (ADMIN_READ),才能擷取這項動作產生的事件。

  • 自訂匯出篩選器:如要透過 SecOps Google Cloud 擷取擷取這項動作產生的事件,必須設定包含 log_id("cloudaudit.googleapis.com/data_access") 的自訂匯出篩選器。

  • 規則集:必須啟用 Cloud Threats -> [Google Cloud] IAM Abuse 規則集,並設為快訊,才能在搜尋和調查檢視畫面中查看偵測結果。

監控排程範例

設定持續監控的週期性排程時,請參考這些範例。

設定 執行時間
時間:在特定時間執行 (晚上 10:00)
日期:每週的特定日子 (週一)
月份:每月
時區:美國東部標準時間
每週一晚上 10 點 (美國東部標準時間) 執行。
時間:在特定時間 (01:00) 執行
天數:每月第 1 天
月份:指定 (1 月、4 月、7 月、10 月)
時區:太平洋標準時間
於太平洋標準時間 1 月、4 月、7 月和 10 月的第一天凌晨 1 點執行。
時間:在特定時間 (14:00) 執行
天數:每天
月份:每月
時區:世界標準時間
每天世界標準時間下午 2 點執行。
時間:在特定時間 (09:30) 執行
天數:每月第 15 天
月份:指定 (2 月、4 月、6 月、8 月、10 月、12 月)
時區:美國東部標準時間
每隔一個月 (2 月、4 月、6 月、8 月、10 月、12 月) 的 15 號,在美國東部標準時間上午 9:30 執行。
時間:每小時重複一次
間隔:每 1 小時
小時:所有小時
持續運作不間斷。每天 24 小時,每小時開始時準時執行 (例如 1:00、2:00、3:00 等)。
時間:每小時重複一次
間隔:每 4 小時一次
小時:開始和結束時間 (下午 10 點至上午 6 點)
這項功能只會在夜間執行,系統會在晚上 10 點、凌晨 2 點和早上 6 點執行,以便在流量較低的時段擷取伺服器狀態。

疑難排解

延遲和限制

由於有相互關聯的視窗,新觸發的監控器執行結果不會立即填入偵測和事件資料。

錯誤修正

錯誤 問題說明 修正方法
IAM 權限錯誤 服務帳戶的權限遭拒。iam.serviceaccounts.actAs 如果您在執行動作前剛建立或更新內容,請稍待幾分鐘再試一次。IAM 變更會保持一致,但角色指派作業可能需要一段時間,才能在系統中傳播。

請確認執行動作的身分在指定服務帳戶中是否具備 `iam.serviceaccounts.actAs` 權限。

驗證和測試

如要確認 Monitor 是否已正確設定,不必等到下一個排定的間隔,只要使用 Monitor 詳細資料頁面上的「立即執行」按鈕即可。關聯視窗結束後,請重新整理頁面,確認「執行狀態」