在開發安全軟體時,安全和隱私絕不應該是事後才想到的。 必須制定正式的流程,以確保開發團隊在產品生命週期的所有階段都考慮安全性和隱私性。 Microsoft 的安全開發生命週期 (SDL) 將全面的安全要求、特定於技術的工具和強制性流程嵌入到所有軟體產品的開發和操作中。 Microsoft 的所有開發小組都必須遵守 SDL 程式和需求。 這種遵守性可以產生更安全的軟體,漏洞越來越少,同時降低開發成本。
Microsoft SDL 由七個元件組成,包括五個核心階段和兩個支援安全性活動。 五個核心階段是需求、設計、實施、驗證和發布。 每個階段都包含強制性檢查和批准,以確保正確解決所有安全和隱私要求以及最佳實踐。 培訓和回應這兩項支援安全活動分別在核心階段之前和之後進行,以確保它們得到正確實施,並且軟體在部署後保持安全。
訓練
所有 Microsoft 員工都必須完成一般安全性和隱私權意識訓練,以及與其角色相關的特定訓練。 新員工在入職時接受初始培訓,並且在 Microsoft 的整個工作期間都需要進行年度進修培訓。
開發人員和工程師還必須參加特定於角色的培訓,以讓他們了解安全基礎知識和安全開發的最新趨勢。 所有全職員工、實習生、臨時員工、分包商和第三方也受到鼓勵,並為他們提供尋求高級安全和隱私培訓的機會。
需求
Microsoft 開發的每項產品、服務和功能都從明確定義的安全性和隱私權需求開始。 這些要求構成了安全應用程式的基礎,並為其設計提供資訊。 開發團隊根據產品處理的資料類型、已知威脅、最佳實務、法規和產業要求,以及從先前事件中學到的經驗教訓等因素來定義這些需求。 一旦定義,開發團隊就會清楚地記錄和追蹤需求。
軟體開發是一個持續的過程,這意味著相關的安全和隱私需求在整個產品生命週期中會發生變化,以反映功能和威脅形勢的變化。
設計
定義安全性、隱私權和功能需求之後,您就可以開始設計軟體。 作為設計過程的一部分,創建威脅模型以幫助根據風險識別、分類和評級潛在威脅。 在對軟體進行變更時,在每個產品的整個生命週期中維護和更新威脅模型。
威脅建模過程首先定義產品的不同組件以及它們在關鍵功能場景(例如身份驗證)中如何相互交互。 建立資料流圖 (DFD) ,以視覺化方式表示關鍵資料流互動、資料類型、連接埠和使用的協定。 使用 DFD 來識別威脅並排定優先順序,以緩解您新增至產品的安全需求。
服務小組會使用 Microsoft 的 Threat Modeling Tool 來建立威脅模型,讓小組能夠:
- 溝通其系統的安全設計
- 使用經過驗證的方法分析潛在安全問題的安全設計
- 建議和管理安全性問題的緩解措施
在發布任何產品之前,請檢查所有威脅模型的準確性和完整性,包括緩解不可接受的風險。
實作
實作從開發人員根據他們在前兩個階段建立的計劃編寫程式碼開始。 Microsoft 為開發人員提供了一套安全的開發工具,以有效地實現他們設計的軟體的所有安全性、隱私和功能要求。 這些工具包括編譯器、安全開發環境和內建安全檢查。
驗證
在發布任何書面程式碼之前,您需要完成多項檢查和核准,以驗證程式碼是否符合 SDL、符合設計要求且沒有編碼錯誤。 手動檢閱是由非開發程式碼的工程師的檢閱者執行。 職責分離是此步驟中的重要控制項,可將撰寫和釋放程式碼導致意外或惡意傷害的風險降至最低。
您也必須執行管線內建的各種自動化檢查,以在簽入期間和編譯組建時分析程式碼。 Microsoft 使用的安全性檢查分為以下類別:
- 靜態代碼分析: 分析源代碼是否存在潛在的安全漏洞,包括代碼中是否存在憑證。
- 二進位分析: 評估二進位代碼級別的漏洞,以確認代碼已準備就緒。
- 憑證和秘密掃描器:識別原始程式碼和設定檔中憑證和秘密暴露的可能實例。
- 加密掃描: 驗證源代碼和代碼執行中的加密最佳實踐。
- 模糊測試: 使用格式錯誤和意外的數據來練習 API 和解析器,以檢查漏洞並驗證錯誤處理。
- 組態驗證:根據安全標準和最佳實務分析生產系統的組態。
- 元件治理 (CG) :開源軟體偵測和檢查版本、漏洞和法律義務。
如果手動審核者或自動化工具發現程式碼有任何問題,他們會通知提交者。 提交者必須先進行必要的變更,才能再次提交程式碼以供審核。
此外,內部和外部提供者都會定期對 Microsoft 線上服務進行滲透測試。 滲透測試提供了另一種發現其他方法未檢測到的安全漏洞的方法。 如需 Microsoft 滲透測試的詳細資訊,請參閱 Microsoft 365 中的攻擊模擬。
發行
通過所有必要的安全性測試和檢閱之後,組建不會立即發行給所有客戶。 發行程式會系統地逐步將組建發行至越來越大的群組,稱為環,這稱為 SDP) 的安全部署程式 (。 SDP環通常可以定義為:
- 環 0:負責服務或功能的開發團隊
- 環 1:所有 Microsoft 員工
- 環 2:已將其組織或特定使用者設定為位於目標發行通道上的 Microsoft 外部使用者
- 環 3:分階段全球標準發布
構建在每個環中停留適當的天數,並具有高負載週期,環 3 除外,因為構建在早期環中經過了適當的穩定性測試。
回應
發行後,所有 Microsoft 服務都會被廣泛記錄和監控。 集中式專有近乎即時的監控系統可識別潛在的安全事件。 如需 Microsoft 安全性監視和安全性事件管理的詳細資訊,請參閱 安全性監視概觀 和 Microsoft 安全性事件管理。