SDL(安全開發生命周期)
1.SDL(安全開發生命周期)
SDL基于三個核心概念:教育、持續過程改進和責任。對軟件開發小組中的技術工作角色進行持續不斷的教育,這一點至關重要。因為安全風險不是靜止不變的,所以SDL非常重視了解安全漏洞的原因和后果,要求定期評估SDL過程并隨著新技術的發展和新威脅引入應對措施。
SDL將軟件開發生命周期劃分為七個階段,并提出了十七項重要的安全活動,如下圖所示。
這七個階段的主要含義和目的是:
1)培訓
針對開發團隊和高層進行安全意識與能力的培訓,以確保SDL能有效實施,同時禽邑針對新的安全問題與形式持續提升團隊的能力。
2)需求
通過安全需求分析,確定軟件安全需要的安全標準和相關要求。 3)設計
通過分析攻擊面,設計相應的功能和策略,降低和減少不必要的安全風險。同時通過威脅建模,分析軟件或系統的安全威脅,提出緩解措施。
4)實現
按設計要求,實現對應功能和策略,以及緩解措施涉及到的安全功臺邑和安全策略。同時通過安全編碼和禁用不安全API,減少實現時導致的安全問題,不引入編碼級安全漏洞,并通過代碼審計等措施來確保安全編碼規范的實行。
S)驗證
通過安全測試的手段,檢測軟件的安全漏洞,并全面核查攻擊面,各個關鍵因素上的威脅緩解措施是否正確得以實現。
6)發布
建立相應的響應計劃,進行最終安全核查,并完善相應的安全指導文檔以提交給用戶使用。
7)響應
響應安全事件與漏洞報告,實施漏洞修復和應急響應。同時發現新的問題與安全問題模式,學習到新的知識,將他們用于SDL的持續改進過程中。
在這七個階段中,SDL要求前六個階段的十六項安全活動,為開發團隊必須成功完成的必需安全活動,這些必需活動由安全和隱私專家確認有效,并且會作為嚴格的年度評估過程的一部分,不斷進行有效性評析。同日寸‘,SDL認為開發團隊應保持靈活性,以便根據需要, 選擇可選安全活動,如人工代碼評析、滲透測試、相似應用程序的漏洞分析,以確保對某些軟件組件進行更高級別的安全分析。關于這些安全活動的詳細說明和最新資料可以從SDL的公開文檔得到,SDL的官方網址為:http://www.mcrosoft.corn/sdl。
微軟在內部開發中使用了大量自己開發的輔助安全開發過程的.工具,并且將其中的一部分發布出來。