保護雲端憑證已經成為一個如《白鯨記》般的挑戰,這是一項巨大的問題,卻難以發掘更簡單的解決方案。同時,憑證安全的問題也普遍存在,根據 Google Cloud 的 2023 年第三季度威脅展望報告,超過 69% 的雲端破壞事件是因憑證問題引起的:包括安全度低的密碼、缺乏密碼和暴露的 API。
然而,與《白鯨記》不同,這個故事可能會有個 happy ending,企業可以透過保護服務帳戶來降低他們面臨的憑證相關風險。 服務帳戶是雲端管理中的基本工具。它們代表應用程式進行 API 調用,並依賴於 IAM 角色進行這些調用。它們也成為攻擊者在雲端環境中建立初始訪問的吸引目標。
「企業中近 65% 的警報與服務帳戶的風險使用有關。這些帳戶具有相關的權限,如果被入侵,可能會導致攻擊者獲得持久性密鑰,隨後利用此訪問進行特權升級。」
這一評估與我們 2023 年第一季度威脅展望報告中的類似結論一致,該報告詳細介紹了攻擊者如何濫用服務帳戶金鑰,以及企業可以做些什麼來阻止它們。同一報告還指出,68% 的服務帳戶擁有過於寬鬆的角色權限,且服務帳戶金鑰程式碼經常被寫死在公共存儲庫中,而在 42% 的金鑰外洩事件中,當 Google 試圖聯繫項目所有者時,他們未採取糾正措施。
以下是一些可以幫助您避免大規模創建服務帳戶金鑰、監控金鑰使用情況並迅速回應警報的緩解技巧。我們強烈建議您評估 Q1 2023 報告中的亮點技術。
防止服務帳戶金鑰的創建
本段內容假設您具有管理組織政策的必要權限,這些政策是在雲端工程師開始創建和使用資源之前設定的限制。要了解更多訊息,請參閱創建和管理組織政策。
管理服務帳戶密鑰的最佳做法之一,就是使用組織策略約束來防止創建新的服務帳戶密鑰,並僅允許已證明無法使用更安全替代方案的項目進行創建。強制執行此組織政策約束的最簡單方法是在您的 Google Cloud 控制台中進行。
在繼續之前,請確保您已登錄到正確的 Google 帳戶。如果您希望在整個組織中強制執行此約束,請務必在資源管理器中選擇組織:
隨後,每當使用者嘗試創建服務帳戶金鑰時,將會收到以下錯誤提示:
查找組織政策變更和服務帳戶金鑰創建的實例
既然禁止了服務帳戶金鑰的創建,接下來的步驟是確保沒有人修改了此政策並偷偷地創建了新的服務帳戶金鑰。 您可以使用 Google Cloud Operations Suite 找到政策變更的證據。以下兩個示例假設所有日誌都存儲在一個集中的 Google Cloud 專案中,並且您具有查詢日誌和設置警報所需的權限。要了解更多訊息,請參閱:
您也可以訪問日誌瀏覽器。使用操作工具條中的「精煉範圍」按鈕,並選擇代表您組織集中式日誌位置的範圍。
使用以下查詢來查找 “iam.disableServiceAccountKeyCreation”組織約束被更改的實例: protoPayload.methodName=”google.cloud.orgpolicy.v2.OrgPolicy.CreatePolicy” AND “iam.disableServiceAccountKeyCreation” AND protoPayload.response.spec.reset=”true”
組織政策變更對 “iam.disableServiceAccountKeyCreation”的日誌條目,要根據此查詢創建警報,請繼續進入 "創建快速響應的警報" 部分。
查找服務帳戶金鑰創建的實例
請訪問「日誌瀏覽器」。使用操作工具條中的「精煉範圍」按鈕,並選擇代表您組織集中式日誌位置的範圍。
使用以下查詢來尋找新服務帳戶金鑰的實例:
resource.type=”service_account” AND log_id(“cloudaudit.googleapis.com/activity”) AND protoPayload.methodName=”google.iam.admin.v1.CreateServiceAccountKey” AND NOT severity=ERROR
這個日誌條目表示:
- 某個時間點,防止創建服務帳戶金鑰的組織政策約束被禁用了。
- 有人創建了一個新的服務帳戶金鑰。
建立用於快速響應的警報
之前的章節描述了您如何找到新服務帳戶金鑰或組織政策變更的實例。
為了促進快速反應,創建警報,以便您能夠迅速對這些事件做出反應。
本部分假設您了解以下內容:
點擊“創建警報”
警報名稱:服務帳戶金鑰創建警報
確認警報中包含的日誌與日誌瀏覽器中的查詢相匹配。點擊 “Preview Logs” 以確認條目是否符合預期。設置通知頻率 (notification frequency) 和自動關閉持續時間 (auto close duration)。
選擇 Notification Channel。如果您需要創建通知通道,請按照以下說明進行操作。
以下是一個示例警報,通過電子郵件發送,列出在我創建服務帳戶金鑰後觸發的事件。
點擊 “View Incident” 將您導向到警報頁面:
點擊事件將您帶到列出以下項目的視圖:
- 條件
- 日誌查詢
- 匹配查詢的日誌集
- 事件觸發的日期和時間
下一步:建立一個協作式的事件管理流程
在檢查使用服務帳戶金鑰的風險、強制實施限制服務帳戶金鑰大規模創建的組織政策以及使用持續監控來檢測政策違規方面,我們已經表明您可以更好地管理環境中最大的潛在風險之一。
我們強烈鼓勵每個人閱讀 "建立一個協作式的事件管理流程",這可以幫助您的組織對此類事件和其他類型的事件做出反應。此外,誰需要追逐一隻巨大的白鯨呢?放棄服務帳戶金鑰是提升您的雲安全性的一種更簡單的方式。
參考文章:Want your cloud to be more secure? Stop using service account keys
延伸閱讀:Stolen Credentials Make You Question Who Really Has Access