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