支柱名稱:保護工程系統
模式名稱:用於原始程式碼存取的零信任
Microsoft 採用零信任方法來保護其原始程式碼,要求對所有程式碼變更進行身分驗證檢查。 關鍵措施包括對拉取請求的多因素身份驗證和對生產分支的嚴格保護,以降低未經授權合併的風險。
內容和問題
原始程式碼是任何組織中最有價值的資產之一。 在 Microsoft,數以萬計的存放庫和數百萬行程式碼支撐著全球數十億人使用的服務和產品。 這使得原始程式碼成為對手的高價值目標,他們可以利用未經授權的存取來注入惡意變更、竊取智慧財產權或破壞客戶信任。
從歷史上看,儲存庫權限和分支原則等保護措施提供了控制基準。 然而,隨著攻擊者利用被盜憑證、自動化和供應鏈向量變得越來越複雜,傳統的存取控制已不再足夠。 整個行業的事件表明,單個受損帳戶或未檢查的拉取請求如何對數百萬用戶產生下游影響。
為了解決這個問題,Microsoft 採用零信任方法來存取原始程式碼,以協助確保沒有程式碼在沒有嚴格、身分驗證和可稽核檢查的情況下進入生產環境。
Solution
Microsoft 的方法將零信任原則直接應用於工程系統。 這意味著存取原始程式碼以及將變更合併到生產分支的能力需要持續驗證、最低權限強制執行和強大的存在證明。
關鍵要素包括:
- 拉取請求的存在證明 (PoP PR): PoP PR 於 2024 年推出,並在 61,000 個儲存庫中推出,可確保對受保護分支的每個拉取請求都由真實的、經過驗證的個人使用新的多重身份驗證 (MFA) 進行身份驗證。
- 分層驗證方法: 根據專案敏感度,工程師會使用軟體驗證器 (Windows Hello、Face ID)、硬體權杖 (FIDO2 YubiKeys) 或繫結至安全存取工作站 (SAW) 的生產身分識別。
-
分支分類和執行: 生產分支 (
main,master,default) 會自動標記和保護,確保整個企業的統一執行。 - 例外治理: 有限、審查和可審計的豁免(例如,自動化)在軟件資產管理系統中進行跟踪,並由高管簽核。
透過將零信任檢查嵌入軟體開發生命週期中,Microsoft 可以防止未經授權的程式碼合併,降低權限升級的風險,並加強問責制。
指導
組織可以使用下列可操作的做法來採用類似的模式:
| 使用案例 | 建議的動作 | 資源 |
|---|---|---|
| 條件式存取 | - 建立條件式存取原則,以要求存取傳統部署模型的使用者使用多重要素驗證 (MFA)。 | 需要 MFA 才能進行具有條件式存取的 Azure 管理 |
| 驗證強度 | - 使用 FIDO2 硬體權杖或 Secure Access Workstation (SAW) 綁定身份以存取高敏感度存放庫。 | 在 Microsoft Entra ID 中規劃防止網路釣魚的無密碼身份驗證部署 |
| 自動化例外狀況 | - 將豁免限制在人工審查不可行的情況下;在治理系統中追蹤核准。 | 檢閱組織的稽核記錄 – GitHub Docs |
| 程式碼審查的嚴謹性 | - 在合併之前,至少需要兩個檢閱者,並強制執行成功的建置原則。 | Git 分支原則和設定 – Azure DevOps |
| 預設安全管線 | - 整合 GitHub Advanced Security 以進行秘密掃描、相依性管理和程式碼掃描。 | 關於 GitHub Advanced Security |
優點
- 更強的供應鏈彈性:防止對生產程式碼進行未經授權或自動的變更。
- 改進問責制: 每個變更都可以追蹤到具有可稽核日誌的經過驗證的個人。
- 可擴展的保護: 整合到一組標準化的共享工具和規則中,為超過 100,000 名工程師提供保護,並將中斷降至最低。
權衡
- 開發者困擾: 在合併點引入新的 MFA檢驗可能會增加時間並帶給人們不便之感。
- 基礎設施投資: 需要硬體權杖、安全存取工作站 (SAW) 以及與工程平台的整合。
- 豁免管理: 自動化案例的治理需要持續的監督。
- 採用曲線: 團隊必須調整工作流程以符合更嚴格的執行和分支策略。
關鍵成功因素
若要追蹤成功,請測量下列項目:
- 受存在證明政策(PoP)保護的生產庫的百分比。
- 在未略過原則的情況下完成的每日已驗證提取要求數目。
- 減少未經授權或異常的程式碼合併嘗試。
- 符合異常管理的內部審計要求。
- 工程師滿意度和採用指標 與安全強制執行相平衡。
總結
原始程式碼存取的零信任有助於確保 Microsoft 最重要的智慧財產權 (其原始程式碼) 得到更好的保護,免受內部威脅、受損的認證和自動化攻擊。 透過要求存在證明、強制執行分支分類和擴展零信任保護,Microsoft 加強了其整個軟體供應鏈。
透過正確的做法,組織可以應用相同的方法:在每次程式碼合併時強制執行強大的身分檢查,採用 MFA 和硬體支援的身份驗證,並維護可稽核的治理。 這些措施創建了一個有彈性的工程系統,維護開發人員的生產力和安全性。
立即採用零信任進行原始程式碼訪問,並保護軟體開發生命週期的完整性。