保護 零信任的開發人員環境
本文可協助您身為開發人員保護開發環境,以便實作 零信任 原則(明確驗證、使用最低許可權存取、假設缺口)。 它包含保護 企業 DevOps 環境 電子書的內容,並醒目提示分支安全性和信任工具、延伸模組和整合的最佳做法。
開發人員速度仰賴您工作的方式和位置,以將業務成果最大化。 您想要具有根或系統管理員存取權的強大、可自定義機器。 不過,開發人員需求可能會違反合規性法規,以及稽核和控制私人員工環境存取和記憶體的需求。
線上到組織網路挑戰安全性小組、採購和治理面板的 Unmanaged 機器。 為開發人員提供預設和強化員工環境的最佳案例,會在雙方造成不屑。 當員工從任何地方連線時,易受攻擊的Wi-Fi網路是網路攻擊的開放大門。 硬體竊取和遺失是主要問題。
弱點延伸到開發環境整合。 具有豐富擴充性的開發工具在其市集中可能有未預期的整合。 惡意延伸模組可能會危及開發人員工具,並造成全公司的缺口。
在下圖中,請注意開發人員環境如何連線到 DevOps 工具環境,以影響 Git 分支。 它透過與開放原始碼套件和應用程式延伸模組的連線來擴大環境介面。 延伸模組會在相依性和擴充功能應用程式弱點中呈現攻擊媒介。
為 DevOps 小組成員提供彈性和控制,同時防止惡意攻擊是安全性辦公室的根本挑戰。 DevOps 可以使用雲端環境來控制開發人員環境(請參閱 Azure VM 和 GitHub Enterprise Cloud Docs 的信任啟動),並使用容器保護開發人員環境(請參閱 GitHub Codespaces 檔)。
此外,開發人員可以實作這些 零信任 量值,以協助保護開發人員環境:
- 設定最低許可權。
- 使用分支安全性來限制誰可以變更和核准程序代碼。
- 只採用受信任的工具、延伸模組和整合。
最低許可權的最佳做法
開發人員通常認為他們可以攔截其環境中的惡意代碼、網路釣魚和缺口。 大型開發人員環境威脅表面讓開發人員難以維持全能的系統知識。 組織在攻擊危害具有系統管理員存取所有系統的開發人員環境後偵測到缺口時,會失去寶貴的補救時間。
若要補救可能導致駭客以軟體開發人員角色為目標的潛在存取機會,請考慮下列 零信任 應用程式的最低許可權安全性最佳做法。
- 實作DevOps的最低許可權和 Just-In-Time 存取權。 請確定小組成員只會在最短所需的時間內維持對環境的最低存取權。 放置原則以涵蓋主要裝置、DevOps 工具、發行管線、程式代碼存放庫、環境、秘密存放區和資料庫上的系統管理員訪問許可權。 針對 DevOps 小組,基本需求是 與組織身分識別存放區的連線。 使用身分識別同盟與 SaaS 環境整合,以避免第三方平臺上的身分識別重複,並減少暴露風險。
- 請勿使用個人存取令牌進行原始程式碼存取。 DevOps 小組的安全做法包括存取 SaaS 型 DevOps 工具、程式代碼存放庫(透過 SSH、HTTPS 或個人存取令牌)。 針對 SaaS 型環境存取,請明確指示存取原則如何決定誰可以下載(複製)系統程式代碼存放庫,以及哪些裝置(本機、雲端和容器)。 例如,OneDrive 可以封鎖或限制 非受控裝置存取。
- 使用公司身分識別來標準化和同步處理 GitHub Enterprise 受控使用者 (EMU) 用戶帳戶。 透過 企業受控使用者,您可以透過身分識別提供者 (IdP) 來控制企業成員的用戶帳戶。 在您的組織身分識別存放區中,明確定義 GitHub 使用者名稱、電子郵件和顯示名稱。 然後,用戶可以輕鬆地識別共同作業者。
- 針對開發人員可以連線到 SaaS 環境的三種方式(使用身分識別、個人存取令牌、使用 SSH 密鑰連線的 HTTPS),使用組織身分識別存放區進行連線。 使用 GitHub (GitHub EMU 帳戶除外),您的身分識別一律是公用身分識別。 透過單一登錄 (SSO) 的受控存取需要與組織身分識別存放區連線。
- 使用 SSH 證書頒發機構單位 (CA) 為成員提供已簽署的 SSH 憑證,以便使用 Git 安全地存取資源。 SSH 憑證是一個 SSH 金鑰簽署另一個 SSH 金鑰的機制。 GitHub Enterprise Cloud 支援 SSH 憑證,讓組織更充分掌控成員存取存放庫的方式。 管理員 可以上傳其 SSH CA 公鑰,並核發憑證給成員以用於 Git 驗證。 憑證只能存取屬於組織的存放庫。 管理員 可以要求成員在存取其存放庫時使用憑證。
- 使用 Git 認證管理員來強化程式碼的存取權。 Visual Studio (VS) 之類的工具具有內 建身分識別支援。 VS Code 會延遲至 Git 認證管理員。
分支安全性的最佳做法
當駭客取得程式代碼存放庫的存取權時,他們可以研究系統安全性和修改程序代碼,而不需要小組注意到。 若要防止未經授權的程式代碼存放庫存取,請實 作分支策略 來建立程式代碼變更的控制(請參閱下圖所示的範例)。
若要補救潛在的存放庫存取機會,請考慮下列分支安全性最佳做法。
- 使用程式代碼檢閱保護分支,讓 DevOps 小組能夠控制程式代碼變更和稽核進展。 上圖中的分支策略會說明控制變更流程,以提供清楚的命令鏈結和藍圖來處理 程式碼變更。 在分支策略的不同方法中,其中一個常見之處是受保護的分支可作為新版本到生產環境的來源。
- 讓 Git 存放庫的系統管理員控制核准授權。 分支策略的控制機制位於核准工作流程中。 受保護的分支需要驗證、檢閱和核准,才能接受變更。 其中一個選項是建立分支保護規則來強制執行工作流程。 例如,針對合併至受保護分支的所有提取要求,需要核准檢閱或狀態檢查通過。 分支原則 可協助小組保護重要的開發分支。 分支原則會針對小組強制執行程式碼品質和變更管理方面的標準。
信任工具、延伸模組和整合的最佳做法
整合式開發人員環境 (IDE) 中的擴充性非常具生產力,因此基本上是授權的功能。 您必須依賴在特定 IDE 市集中套用及策劃延伸模組的能力,以設計最佳的工作環境。
若要補救安全 IDE,請考慮下列工具、擴充功能和整合最佳做法。
- 請確定您只整合來自受信任市集和發行者的工具。 例如, VS Code 市集 有數千個延伸模組,可讓您的生活更容易。 不過,當小組採用新的工具或延伸模組時,最重要的層面可以驗證發行者的可信度。
- 設定安全做法來控制延伸模組的使用,以限制開發人員環境的受攻擊面。 大部分的 IDE 延伸模組都需要核准特定許可權才能運作,通常是系統上具有讀取許可權的檔案,以分析程式代碼。 擴充功能需要連線到雲端環境才能運作(在計量工具中很常見)。 在 IDE 之上核准額外的功能可讓組織有更多威脅。
- 在開發人員計算機上,追蹤已使用延伸模組的數目和成熟度,以了解潛在的受攻擊面。 只納入來自 已驗證發行者的 VS Code 市集延伸模組。 當您使用 VS Code 安裝應用程式延伸模組時,請定期檢查您使用命令列程式代碼 執行的延伸模組: 程式代碼
--list-extensions --show-versions
。 充分瞭解您在開發人員環境中執行的可延伸元件。
下一步
- 將 零信任 安全性內嵌至開發人員工作流程,可協助您快速且安全地創新。
- 保護DevOps平臺環境可協助您在DevOps平臺環境中實作 零信任原則,並強調秘密和憑證管理的最佳做法。
- 零信任 保護 DevOps 環境描述使用 零信任 方法來保護您的 DevOps 環境的最佳做法,以防止駭客入侵開發人員方塊、感染含有惡意腳本的發行管線,以及透過測試環境存取生產數據。
- 如備忘錄 22-09 中所述實作 零信任 原則(支持美國行政命令 14028,改善美國網路安全),方法是使用 Microsoft Entra ID 作為集中式身分識別管理系統。
- 使用 Azure DevOps 加速並保護您的程式代碼,其工具可讓開發人員獲得最快速且最安全的雲端體驗程式代碼。
- 將 Azure 設定為信任 GitHub 的 OIDC 作為同盟身分識別。 OpenID 連線 (OIDC) 可讓您的 GitHub Actions 工作流程存取 Azure中的資源,而不需要將 Azure 認證儲存為長期存在的 GitHub 秘密。