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