驗證資安控管與設定

本指南適用於資安工程師,可協助他們在 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。這些工作和 bucket 僅供驗證服務使用。不應授予其他使用者存取權。

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

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

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

所需權限

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

  • chronicle.viewer:具備 Security Validation 動作、情境、工作和執行資源的唯讀存取權。

  • chronicle.editor:包含所有 viewer 權限,以及建立、更新、執行和刪除 Security Validation 情境和工作的權限。

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

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

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

實施持續安全性驗證

驗證資安態勢時,應採取結構化程序:

  • 定義環境

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

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

這項工作流程可確保安全控管機制在環境演變時仍能發揮作用。

建立 Security Validation 情境

Security Validation 情境會為安全性測試設定環境。這項設定會指定要使用的專案、執行測試的帳戶,以及動作所需的其他詳細資料。您可以針對不同動作重複使用相同的內容。

如要建立 Security Validation 情境,請按照下列步驟操作:

  1. 登入 Google SecOps。

  2. 前往「Security Validation」,然後點選「Execution Contexts」分頁標籤。

  3. 按一下「Add Execution Context」(新增執行作業結構定義)。

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

    1. 在「Basic Properties」(基本屬性) 中,輸入情境名稱和說明,然後按一下「Next」(下一步)。

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

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

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

    4. 點選「建立」。

執行安全性驗證動作

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

  1. 登入 Google SecOps。

  2. 前往「Security Validation」,然後點選「Content Library」分頁標籤。

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

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

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

管理安全性驗證監控

您可以使用監控功能,自動定期重新執行成功的動作。可持續監控資安態勢,不需手動介入。

建立監控器

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

  1. 登入 Google SecOps。

  2. 前往「Security Validation」,然後點選「Execution history」分頁標籤。

  3. 點選執行作業的「執行 ID」,然後點選「建立監控」。

  4. 選用:在「Create Monitor」(建立監控工具) 視窗中,為監控工具命名。

    如未輸入監控器名稱,系統會以監控器 ID 參照監控器。

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

  5. 點選「下一步」。

  6. 調整 Monitor 設定。

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

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

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

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

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

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

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

      • Day of the month (每月日期):每月在指定日期 (例如 15 日) 的指定時間執行一次。

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

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

    6. 點選「下一步」。

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

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

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

    3. 在「營業時間」選項中,選取下列其中一項:

      • 全天:監控工具會根據指定的頻率,全天候每小時執行一次。

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

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

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

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

      • Day of the month (每月日期):每月在指定日期 (例如 15 日) 的指定時間執行一次。

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

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

    7. 點選「下一步」。

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

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

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

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

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

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

      • 如果符合基準的事件未在逾時前送達,則評估結果為 false。

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

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

      • 確認目前執行作業中,至少有一項偵測結果來自基準執行作業中具有偵測結果的規則。

      • 忽略基準執行作業中未偵測到任何項目的規則。

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

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

查看及執行監控作業

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

  1. 前往「Security Validation」,然後點選「Monitors」分頁標籤。部分資料欄預設為隱藏,請按一下 「Column manager」(資料欄管理工具),管理資料欄顯示設定。

  2. 在清單中找出特定監控器。

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

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

「Monitor details」(監控詳細資料) 頁面提供 Monitor 的集中式高階總覽。可讓您一目瞭然地評估監控器的整體狀態和健康情況。其中包含下列有關 Monitor 的重要資訊:

健康摘要

下列指標資訊卡會概略說明 Monitor 的穩定性:

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

  • Latest Healthy or Unhealthy Result:提供指標,指向與基準不同的最新執行作業。

  • 結果時效性:顯示上次執行後,監控狀態完成的時間。

預期結果

本節定義了從基準執行作業衍生出的成功標準。

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

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

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

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

啟用或停用監控器

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

  1. 前往「Security Validation」,然後點選「Monitors」分頁標籤。

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

修改或刪除監控器

如要修改或刪除監控工具,請按照下列步驟操作:

  1. 前往「Security Validation」,然後點選「Monitors」分頁標籤。

  2. 在要修改的監控器中,按一下 選單。

  3. 按一下「Edit Monitor」(編輯監控工具) 即可修改監控工具,或按一下「Delete Monitor」(刪除監控工具) 即可刪除監控工具。您也可以在「Monitor details」(監控詳細資料) 頁面上點選「Edit Monitor」(編輯監控) 進行修改。

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

查看監控作業結果

如要查看監控器的所有執行作業,請按照下列步驟操作:

  1. 前往「Security Validation」,然後點選「Monitors」分頁標籤。

  2. 按一下 Monitor 的 選單。

  3. 按一下「查看所有結果」。「Execution history」(執行記錄) 頁面隨即顯示。

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

查看上次執行結果

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

  1. 前往「Security Validation」,然後點選「Monitors」分頁標籤。

  2. 按一下 Monitor 的 選單。

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

系統會顯示該監控項目的最新執行作業詳細資料。

查看執行結果

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

  1. 登入 Google SecOps。

  2. 前往「Security Validation」(安全驗證),然後前往「Execution History」(執行記錄) 分頁,監控執行狀態。

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

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

「Action Execution Details」(動作執行詳細資料) 頁面會提供驗證動作的狀態、結果和深入分析。這個頁面會顯示動作活動觸發的偵測規則,方便您驗證資安態勢。

「Correlation progress」會顯示執行作業的即時關聯工作流程進度。關聯作業執行期間,事件總數可能會持續增加,直到工作完成。

分析「關聯規則」表格

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

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

這有助於您找出哪些規則符合預期,哪些規則可能需要進一步調查。

其中包含下列各欄:

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

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

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

  • Associated with Action:指出規則是否為動作中繼資料的一部分:

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

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

下表可協助您判斷結果:

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

分析關聯事件

執行 Security Validation 動作後,請使用關聯事件評估環境和安全控管機制如何因應模擬威脅。

分析包含兩個部分:關聯工作流程的即時狀態,以及所有生成事件的詳細表格。

「Event Correlation Status」(事件關聯狀態) 會顯示下列其中一種目前的工作流程狀態:

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

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

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

「Correlation workflow complete at」(關聯工作流程完成時間) 則會指出關聯作業預計或實際完成的時間。

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

其中包含下列各欄:

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

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

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

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

  • 安全性結果動作:事件的結果 (Blocked 或 Not blocked),依據 UDM 事件的 security_result.action 欄位。

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

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

請查看下列資源,瞭解設定範例和參考資料對應。

導入範例:使用 signJWT 產生存取權杖

以「使用 signJWT 權限動作產生存取權杖」為例,這個範例假設您已設定 Security Validation 情境,並在該情境中執行動作。這項動作預期會產生 Cloud 稽核記錄,並觸發「使用 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:00 執行。
時間:在特定時間 (14:00) 執行
天數:每天
月份:每月
時區:世界標準時間
每天世界標準時間下午 2 點執行。
時間:在特定時間執行 (09:30)
日期:每月第幾天 (15)
月份:指定 (2 月、4 月、6 月、8 月、10 月、12 月)
時區:EST
每兩個月 (2 月、4 月、6 月、8 月、10 月、12 月) 的 15 日上午 9:30 (美國東部標準時間) 執行。
時間:每小時重複
間隔:每 1 小時
小時:所有小時
持續放送。每天 24 小時,每小時開始時準時執行 (例如 1:00、2:00、3:00 等)。
時間:每小時重複
間隔:每 4 小時
小時:開始和結束時間 (晚上 10 點到早上 6 點)
僅在夜間執行。在晚上 10:00、凌晨 2:00 和早上 6:00 執行,擷取低流量時段的伺服器狀態。

疑難排解

延遲時間和限制

由於關聯時間範圍,新觸發的監控執行作業結果不會立即填入偵測和事件資料。

錯誤修正

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

請確認執行動作的身分具備指定服務帳戶的「iam.serviceaccounts.actAs」權限。

驗證與測試

如要確認監控工具設定正確,不必等到下一個排定的時間間隔,請使用監控工具詳細資料頁面上的「Run now」(立即執行) 按鈕。關聯時間範圍過後,請重新整理頁面,確認執行狀態。