共用方式為


保護適用於 零信任的DevOps平台環境

本文可協助您身為 DevOps 小組成員,實作最低許可權 零信任 原則,並保護 DevOps 平台環境。 它包含保護 企業 DevOps 環境 電子書的內容,並醒目提示秘密和憑證管理的最佳做法。

新式企業依賴 DevOps 平台進行部署,包括開發人員需要提高生產力的管線和生產環境。 過去,應用程式安全性方法並未考慮目前管線和生產環境所公開的受攻擊面增加。 隨著惡意行為者向左移動並針對上游工具,你需要創新的方法來保護你的 DevOps 平台環境。

在下圖中,請注意 DevOps 平台環境會連線到應用程式環境,以及 持續整合和持續傳遞 (CI/CD) 管線延伸模組。

圖示說明 DevOps 平台環境與安全威脅。

CI/CD 管線擴充為惡意行為者提供了從應用程式環境中進行權限升級的機會。 延伸模組和整合會增加攻擊面弱點。 防範惡意代碼入侵威脅非常重要。

惡意行為者如何以及為何會針對管道進行攻擊

管線和生產環境可能與標準應用程式安全性做法和程序無關。 它們通常需要高階的存取憑證,可能導致不法分子獲得深入且敏感的存取權限。

雖然惡意行為者會找到新的入侵方式來入侵系統,但管線最常見的漏洞包括:

  • 擷取執行時變數和參數注入。
  • 從管線擷取服務原則或認證的腳本。
  • 設定錯誤的個人存取令牌,可讓具有密鑰的任何人存取 DevOps 平台環境。
  • 整合式工具中的弱點與配置錯誤,需要存取程式碼權限(通常是唯讀權限,但有時需要寫入權限)。 整合式工具可以包括測試架構、靜態應用程式安全性測試(SAST)和動態應用程式安全性測試(DAST)。

秘密和憑證管理的最佳做法

避免重大缺口可以和有效的秘密管理一樣簡單。 下圖說明有效秘密、密碼、存取令牌和憑證管理的範例。

圖表說明秘密和憑證管理。

如前圖所示,開發者會針對客戶請求啟動建置。 GitHub 接著會以保存庫應用程式角色的角色識別碼和秘密標識碼啟動執行器。 信任實體會定期向保險庫請求新的密碼ID,並從 GitHub 取得 GitHub 秘密ID。 Vault 使用 GitHub Secrets 的角色 ID 和秘密 ID 來登入並取得程式碼簽署資產。 執行器會自定義行動應用程式並撰寫程式代碼簽署。

下列最佳做法可協助您建置安全設定,以將秘密和參數暴露降至最低。

  • 在每個應用程式生命週期階段提供秘密和憑證的安全記憶體。 一律開發,就像是開放原始碼項目一樣。 確定小組將秘密儲存在金鑰保存庫中,而不是儲存在程式代碼或小組環境中。 使用 Azure 金鑰保存庫 雲端服務安全地儲存和存取秘密。
  • 將 Azure 設定為信任 GitHub 的 OIDC(OpenID Connect)作為聯合身份認證。 OpenID Connect (OIDC) 可讓您的 GitHub Actions 工作流程 存取 Azure 中的資源,而不需要將 Azure 認證儲存為長期存在的 GitHub 秘密。

更多 DevOps 環境安全性的最佳做法

若要協助防範安全性事件,請檢閱下列最佳做法來強化您的DevOps平台環境。 在我們的保護企業 DevOps 環境電子書中,尋找這些建議的詳細討論。

  • 為每個DevOps平台環境配備稽核線索。檢閱稽核記錄,以追蹤誰獲得存取權、發生哪些變更,以及任何使用中系統的日期/時間。 具體來說,包含具備能推動至生產環境的 CI/CD 管線的 DevOps 平臺。 DevOps 工具的稽核線索提供完善的方法,讓您能更快速地補救威脅、發現和警示可疑活動,及早找出可能的漏洞或弱點,並察覺潛在的數據或許可權濫用。 確保每個環境都能使用細微的控制和稽核線索。
  • 保護軟體供應鏈。 透過您帶入程式代碼基底的每個連結庫,您可以展開軟體供應鏈,並從每個開放原始碼專案或工具繼承相依性。 請小心移除不必要的連結庫和開放原始碼元件,以減少軟體供應鏈的攻擊面。
  • 自動化基礎設施即程式碼 (IaC) 範本的掃描。 使用 IaC 環境,很容易掃描設定錯誤、合規性稽核和原則問題。 實作合規性檢查和訪問控制可提升整個基礎結構的安全性狀態。 確認符合自動化系統需求的工具整合安全性。
  • 將核准工作流程自動化。 若要讓任何核准工作流程將程式代碼推送至生產環境,某些自動或手動檢查必須確認每個要求的安全性、商業價值、狀態和品質。 這些檢查作為開發與生產之間的門檻,防止阻斷服務攻擊及惡意行為者在未標記或觸發警示的情況下注入程式碼到生產環境。
  • 只允許已驗證的 DevOps 工具整合。 如同開發人員環境中,DevOps 工具隨附擴充功能和整合,讓 DevOps 小組更有效率且安全。 確認已驗證的整合需遵循最低權限原則執行工作。 盡可能實作最低許可權存取權,並確保正確層級的讀取/寫入許可權。 瞭解如何 停用或限制貴組織的 GitHub Actions。

下一步