驗證資安控管與設定
本指南適用於資安工程師,可協助他們在 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 情境,請按照下列步驟操作:
前往「Security Validation」,然後點選「Execution Contexts」分頁標籤。
按一下「Add Execution Context」(新增執行作業結構定義)。
在「Add Execution Context」(新增執行作業結構定義) 對話方塊中,執行下列操作:
在「Basic Properties」(基本屬性) 中,輸入情境名稱和說明,然後按一下「Next」(下一步)。
在「Environment Settings」(環境設定) 中,輸入 Google Cloud 專案 ID、執行服務帳戶和清理服務帳戶。然後點選「下一步」。
建議您分別為
action profile(執行動作指令碼) 和setup/cleanup profile(執行某些動作中的設定和清理指令碼) 使用不同的服務帳戶。您可以在目標專案中,為這些服務帳戶授予不同權限。在「Runtime Variables」(執行階段變數) 中,新增一或多個變數,以動態覆寫預設參數。新增鍵/值組合,其中
key是參數名稱,value是覆寫值。點選「建立」。
執行安全性驗證動作
如要針對安全性驗證情境執行安全性驗證動作,請按照下列步驟操作:
前往「Security Validation」,然後點選「Content Library」分頁標籤。
選取動作,然後按一下「執行」。
在對話方塊中,選取您建立的執行情境,然後按一下「立即執行」。
系統會建立新的執行作業,並顯示在「執行記錄」分頁中。
管理安全性驗證監控
您可以使用監控功能,自動定期重新執行成功的動作。可持續監控資安態勢,不需手動介入。
建立監控器
您只能根據成功完成的執行作業建立監控。如要從執行作業建立監控器,請按照下列步驟操作:
前往「Security Validation」,然後點選「Execution history」分頁標籤。
點選執行作業的「執行 ID」,然後點選「建立監控」。
選用:在「Create Monitor」(建立監控工具) 視窗中,為監控工具命名。
如未輸入監控器名稱,系統會以監控器 ID 參照監控器。
查看這個視窗中顯示的基準執行作業詳細資料。
點選「下一步」。
調整 Monitor 設定。
您可以選擇在特定時間執行監控,或每小時執行一次。
如要在特定時間執行監控工具,請按照下列步驟操作:
在「時間」下拉式選單中,選取「在特定時間執行」。
在旁邊的文字方塊中指定時間。
在「天數」選項中,選取下列其中一項:
每日:每天在指定時間執行。
星期幾:只在所選日期 (例如週一、週三、週五) 的指定時間執行。
Day of the month (每月日期):每月在指定日期 (例如 15 日) 的指定時間執行一次。
在「Months」(月份)下拉式選單中,選取「Monthly」(每月) (每月執行) 或「Specific Months」(特定月份),指定監控作業應執行的確切月份 (例如 1 月、4 月、7 月)。
在「時區」下拉式選單中,選取所需時區。這個欄位預設為「User Preferences」(使用者偏好設定) 中設定的時區 (可能與瀏覽器設定不同)。如要查看或變更這項預設設定,請依序前往「Profile」>「User Preferences」>「在地化」>「時區」。
點選「下一步」。
如要每小時執行一次監控程式,請按照下列步驟操作:
在「時間」下拉式選單中,選取「每小時重複」。
在「hour(s)」欄位中設定監控週期重複頻率,並在「minute(s)」欄位中設定特定分鐘標記。舉例來說,如果設定 1 小時 30 分鐘,監控工具會在每小時的 30 分執行 (「不會」每 90 分鐘執行一次)。
在「營業時間」選項中,選取下列其中一項:
全天:監控工具會根據指定的頻率,全天候每小時執行一次。
開始和結束時間:監控工具只會在指定的開始和結束時間範圍內執行 (例如上午 8:00 到下午 5:00 之間)。
在「天數」選項中,選取下列其中一項:
每日:每天在指定時間執行。
星期幾:只在所選日期 (例如週一、週三、週五) 的指定時間執行。
Day of the month (每月日期):每月在指定日期 (例如 15 日) 的指定時間執行一次。
在「Months」(月份) 下拉式選單中,選取「Monthly」(每月) (每月執行) 或「Specific Months」(特定月份),指定要執行監控工具的確切月份 (例如 1 月、4 月、7 月)。
在「時區」下拉式選單中,選取所需時區。這個欄位預設為「User Preferences」(使用者偏好設定) 中設定的時區 (可能與瀏覽器設定不同)。如要查看或變更這項預設設定,請依序前往「Profile」>「User Preferences」>「在地化」>「時區」。
點選「下一步」。
在「預期結果」中,視需要勾選或取消勾選條件。您必須選取至少一個條件。
動作結果與基準相符:評估執行狀態、結果和結果原因是否與基準相符。這三個參數都必須相符,檢查結果才會是 true。
關聯事件產品符合基準:
依產品將關聯事件分組。
驗證目前執行作業中,基準列出的每項產品至少有一個事件。
如果產品在基準中沒有任何事件,檢查作業會忽略該產品的事件。
如果符合基準的事件未在逾時前送達,則評估結果為
false。
關聯偵測規則,可針對符合基準的項目發出快訊:
依規則和警告狀態將偵測結果分組。
確認目前執行作業中,至少有一項偵測結果來自基準執行作業中具有偵測結果的規則。
忽略基準執行作業中未偵測到任何項目的規則。
如果符合基準的偵測項目未在逾時前送達,則評估結果為
false。
按一下「建立」,建立監控器。
查看及執行監控作業
如要查看已建立的監控工具,請按照下列步驟操作:
前往「Security Validation」,然後點選「Monitors」分頁標籤。部分資料欄預設為隱藏,請按一下 「Column manager」(資料欄管理工具),管理資料欄顯示設定。
在清單中找出特定監控器。
按一下監控項目的連結,開啟監控項目詳細資料頁面。
按一下「立即執行」,執行監控。
「Monitor details」(監控詳細資料) 頁面提供 Monitor 的集中式高階總覽。可讓您一目瞭然地評估監控器的整體狀態和健康情況。其中包含下列有關 Monitor 的重要資訊:
健康摘要
下列指標資訊卡會概略說明 Monitor 的穩定性:
監控健康狀態:根據上次執行時的最終監控結果 (例如
Healthy),顯示目前的狀態,以及維持該狀態的時間。Latest Healthy or Unhealthy Result:提供指標,指向與基準不同的最新執行作業。
結果時效性:顯示上次執行後,監控狀態完成的時間。
預期結果
本節定義了從基準執行作業衍生出的成功標準。
動作結果和原因:與基準執行作業相符的動作結果和原因 (例如
NOT_BLOCKED和隨附原因)。產生事件的產品:與基準執行作業相符的關聯事件產品清單。
警告偵測規則:符合基準執行的警告關聯偵測規則清單。
「Monitor Results」(監控作業結果) 表格會顯示監控作業的所有執行作業。表格支援文字搜尋、篩選和資料欄設定。
啟用或停用監控器
如要啟用或停用監控功能,請按照下列步驟操作:
前往「Security Validation」,然後點選「Monitors」分頁標籤。
按一下「狀態」切換鈕,即可啟用或停用監控。或者,您也可以在「Monitor details」(監控詳細資料) 頁面上,按一下「Pause Monitor」(暫停監控) 或「Restart Monitor」(重新啟動監控) 來變更狀態。
修改或刪除監控器
如要修改或刪除監控工具,請按照下列步驟操作:
前往「Security Validation」,然後點選「Monitors」分頁標籤。
在要修改的監控器中,按一下 選單。
按一下「Edit Monitor」(編輯監控工具) 即可修改監控工具,或按一下「Delete Monitor」(刪除監控工具) 即可刪除監控工具。您也可以在「Monitor details」(監控詳細資料) 頁面上點選「Edit Monitor」(編輯監控) 進行修改。
按一下「更新」或「確認」,即可套用變更。
查看監控作業結果
如要查看監控器的所有執行作業,請按照下列步驟操作:
前往「Security Validation」,然後點選「Monitors」分頁標籤。
按一下 Monitor 的 選單。
按一下「查看所有結果」。「Execution history」(執行記錄) 頁面隨即顯示。
系統會篩選執行作業,顯示與該特定監控器相關聯的所有執行作業。
查看上次執行結果
如要查看監控項目的上次執行結果,請按照下列步驟操作:
前往「Security Validation」,然後點選「Monitors」分頁標籤。
按一下 Monitor 的 選單。
按一下「查看上次執行結果」,開啟「執行作業詳細資料」。
系統會顯示該監控項目的最新執行作業詳細資料。
查看執行結果
您可以在「Execution History」(執行記錄) 分頁中,查看執行的 Security Validation 動作。如要查看執行結果,請按照下列步驟操作:
前往「Security Validation」(安全驗證),然後前往「Execution History」(執行記錄) 分頁,監控執行狀態。
「Run status」(執行狀態) 欄會指出執行是否成功或發生錯誤。如果成功,您可以在 Google SecOps 中,查看 Security Validation 動作產生的事件和觸發的偵測結果。
按一下執行 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」(立即執行) 按鈕。關聯時間範圍過後,請重新整理頁面,確認執行狀態。