軟件安全開發(fā)和傳統(tǒng)軟件開發(fā)相比誰更安全
盡管在軟件開發(fā)過程中采用了軟件工程、軟件質(zhì)量保證和試驗等一系列技術(shù)和工程經(jīng)驗,但在當(dāng)前的技術(shù)水平下,開發(fā)出沒有錯誤的軟件幾乎是不現(xiàn)實的。傳統(tǒng)的軟件開發(fā)方法中,不管采用瀑布模型、螺旋模型、增量模型、還是敏捷模型,重點在于關(guān)注軟件功能的實現(xiàn)和保證,而對如何實施軟件安全開發(fā),保證軟件自身的安全性仍存在很多不足。
軟件生命周期大致可以劃分為需求分析、架構(gòu)設(shè)計、代碼編寫、測試和運行維護(hù)等階段,為了減少軟件自身的安全漏洞及危害,需要從需求分析階段就開始考慮軟件的安全問題。在設(shè)計階段符合安全需求的安全功能,在編碼階段保證開發(fā)的代碼符合安全編碼規(guī)范,并通過安全測試,確保安全需求、安全設(shè)計、安全編碼各個環(huán)節(jié)得以正確,有效實施。
軟件安全開發(fā)過程在傳統(tǒng)軟件開發(fā)過程的各個階段添加安全措施和安全手段,防止因設(shè)計、開發(fā)、提交、升級或維護(hù)中的缺陷而產(chǎn)生不該有的軟件漏洞和脆弱性。軟件安全開發(fā)的目標(biāo)是使軟件能夠按照開發(fā)者的意圖執(zhí)行,并且受到惡意攻擊的情形下依然能夠繼續(xù)正確運行。