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