羅風(fēng)春
【摘 要】 隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,計(jì)算機(jī)軟件的應(yīng)用日益廣泛,但隨之而來(lái)的軟件問(wèn)題也越發(fā)的不容忽視,各種用戶信息泄露事件層出不窮,為保障用戶信息安全,在軟件開(kāi)發(fā)的過(guò)程中使用相應(yīng)手段降低安全漏洞勢(shì)在必行。
【關(guān)鍵詞】 軟件生命周期
一、 軟件安全開(kāi)發(fā)的研究背景
計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展一日千里,與之匹配的軟件的功能也是日新月異,人們通過(guò)使用軟件可以任意觀看視頻、聊天交友、處理工作以及完成各種事務(wù), 但與此同時(shí), 軟件的安全開(kāi)發(fā)問(wèn)題也逐漸暴露出來(lái)。尤其是當(dāng)前我國(guó)盜版軟件猖獗、軟件自身安全漏洞較多,并且已經(jīng)逐漸威脅到人們的財(cái)產(chǎn)和人身隱私等安全,因而研究軟件安全開(kāi)發(fā)關(guān)鍵技術(shù)及其具體應(yīng)用有著極其重要的現(xiàn)實(shí)意義。
二、網(wǎng)絡(luò)信息安全事件層出不窮的原因分析
網(wǎng)絡(luò)信息安全事件的發(fā)生有兩個(gè)方面的原因,一個(gè)是軟件脆弱性導(dǎo)致,在軟件開(kāi)發(fā)的過(guò)程中,沒(méi)有或很少進(jìn)行安全方面的考慮和管理,導(dǎo)致開(kāi)發(fā)出來(lái)的軟件漏洞過(guò)多,比較脆弱,我們稱之為內(nèi)因;
(一)內(nèi)因。1、軟件安全開(kāi)發(fā)意識(shí)淡薄。傳統(tǒng)軟件開(kāi)發(fā)更傾向于對(duì)軟件功能的實(shí)現(xiàn),而不注重對(duì)軟件安全風(fēng)險(xiǎn)的管理。軟件開(kāi)發(fā)公司工期緊、任務(wù)重,為爭(zhēng)奪客戶資源、搶奪市場(chǎng)份額常倉(cāng)促發(fā)布軟件。軟件開(kāi)發(fā)人員將軟件功能視為頭等大事,對(duì)軟件安全架構(gòu)、安全防護(hù)措施認(rèn)識(shí)不夠,只關(guān)注是否實(shí)現(xiàn)需要的功能,很少?gòu)摹肮粽摺钡慕嵌葋?lái)思考軟件安全問(wèn)題。2、軟件規(guī)模日益龐大,功能紛繁多樣,架構(gòu)趨于復(fù)雜?,F(xiàn)代軟件功能越來(lái)越強(qiáng),功能組件越來(lái)越多,軟件也變得越來(lái)越復(fù)雜。如操作系統(tǒng)的代碼量相當(dāng)驚人,而且隨著版本的更新,代碼量迅速增加。如現(xiàn)在基于網(wǎng)絡(luò)的應(yīng)用系統(tǒng)更多地采用了分布式、集群和可擴(kuò)展架構(gòu),軟件內(nèi)部結(jié)構(gòu)錯(cuò)綜復(fù)雜。軟件應(yīng)用向可擴(kuò)展化方向發(fā)展,成熟的軟件也可以接受開(kāi)發(fā)者或第三方擴(kuò)展,系統(tǒng)功能得到擴(kuò)充,如Firefox和Chrome瀏覽器支持第三方插件,Windows操作系統(tǒng)支持動(dòng)態(tài)加載第三方驅(qū)動(dòng)程序。Word和Excel等軟件支持第三方腳本和組件運(yùn)行等,這些可擴(kuò)展性在增加軟件功能的同時(shí),也加重了軟件的安全問(wèn)題。研究表明,軟件漏洞的增長(zhǎng)通軟件復(fù)雜性、代碼行數(shù)的增長(zhǎng)成正比,即“代碼行越多,缺陷也就越多”。 3、軟件開(kāi)發(fā)者缺乏安全知識(shí)。軟件開(kāi)發(fā)公司中,項(xiàng)目管理和軟件開(kāi)發(fā)人員缺乏軟件安全開(kāi)發(fā)知識(shí),不知道如何更好地開(kāi)發(fā)安全的軟件。
三、軟件安全開(kāi)發(fā)的方法
(一)軟件安全開(kāi)發(fā)定義
軟件:軟件是與計(jì)算機(jī)系統(tǒng)操作有關(guān)的計(jì)算機(jī)程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù)。
軟件安全: 我們說(shuō)的軟件安全,是指因?yàn)檐浖旧淼膯?wèn)題,被有意或無(wú)意攻擊后會(huì)造成數(shù)據(jù)泄露、系統(tǒng)崩潰等情況發(fā)生。
早期,人們?cè)诎l(fā)現(xiàn)應(yīng)用系統(tǒng)使用中存在問(wèn)題,所以出現(xiàn)了一些列安全防護(hù)工具例如殺毒軟件、病毒庫(kù)更新,防火墻以及操作系統(tǒng)加固等,但這些都不是軟件安全,這些是屬于對(duì)應(yīng)用安全的縱深防御。
(二)軟件安全開(kāi)發(fā)目標(biāo)。軟件安全開(kāi)發(fā)的目標(biāo)是使軟件能夠按照開(kāi)發(fā)者的意圖執(zhí)行,并且受到惡意攻擊的情形下依然能夠繼續(xù)正確運(yùn)行。網(wǎng)絡(luò)信息安全認(rèn)為軟件開(kāi)發(fā)最重要也是最低的三個(gè)目標(biāo)是:機(jī)密性、完整性、可用性。
這三個(gè)目標(biāo)統(tǒng)稱為C.I.A(Confidentiality,Integrity,Availability),人們普遍認(rèn)為,在軟件開(kāi)發(fā)生中,開(kāi)發(fā)者通過(guò)公認(rèn)有效的方法對(duì)C.I.A進(jìn)行保證、增強(qiáng)、保護(hù),就認(rèn)為代碼是最高可信和安全的。
(三)軟件安全開(kāi)發(fā)方法。軟件安全開(kāi)發(fā)生命周期管理是軟件開(kāi)發(fā)項(xiàng)目安全管理的普遍方法,通過(guò)在軟件開(kāi)發(fā)生命周期各階段采取必要的、相適應(yīng)的安全措施來(lái)避免絕大多數(shù)的安全漏洞,軟件安全開(kāi)發(fā)過(guò)程是指在傳統(tǒng)軟件開(kāi)發(fā)過(guò)程的各個(gè)階段添加安全措施和安全手段,防止因設(shè)計(jì)、開(kāi)發(fā)、提交、升級(jí)或維護(hù)中的缺陷而產(chǎn)生不該有的軟件漏洞和脆弱性。
四、軟件安全開(kāi)發(fā)生命周期的劃分
(一)軟件需求階段。需求分析階段是軟件開(kāi)發(fā)第一個(gè)階段,也是基礎(chǔ)的階段,需求分析也稱為軟件需求分析,是開(kāi)發(fā)人員經(jīng)過(guò)深入細(xì)致的調(diào)研和分析,準(zhǔn)確理解用戶和項(xiàng)目的功能、性能、可靠性等具體要求,將用戶非形式的需求表述轉(zhuǎn)化為完整的需求定義,從而確定系統(tǒng)必須做什么的過(guò)程。
安全需求分析在軟件安全開(kāi)發(fā)過(guò)程中是非常重要的一個(gè)階段,安全需求分析的好壞直接影響著安全開(kāi)發(fā)過(guò)程中的后續(xù)階段。
據(jù)研究發(fā)現(xiàn),在軟件開(kāi)發(fā)生命周期中,后面的階段改正錯(cuò)誤開(kāi)銷(xiāo)比前面的階段要高出數(shù)倍,在軟件發(fā)布以后進(jìn)行修復(fù)的代價(jià)是在軟件設(shè)計(jì)和編碼階段即進(jìn)行修復(fù)所花代價(jià)的30倍。故軟件發(fā)布前期的準(zhǔn)備工作至關(guān)重要。需求這一階段可能出現(xiàn)的風(fēng)險(xiǎn)主要為需求不明確,沒(méi)有準(zhǔn)確的需求描述和需求分析文檔。所以我們?cè)谛枨蠓治鲭A段就需要安全人員的介入,通過(guò)專業(yè)的安全人員提出安全方面的需求。
(二)軟件設(shè)計(jì)階段。軟件設(shè)計(jì)是將客戶的需求進(jìn)行軟件重現(xiàn)的過(guò)程,它是需求分析與編碼的中間階段,也是一個(gè)翻譯的過(guò)程。與需求分析階段一樣,該階段最后產(chǎn)生一份設(shè)計(jì)報(bào)告。該階段的安全目標(biāo)最小風(fēng)險(xiǎn)設(shè)計(jì),其中風(fēng)險(xiǎn)包括軟件缺陷產(chǎn)生的風(fēng)險(xiǎn),用戶操作產(chǎn)生的風(fēng)險(xiǎn),費(fèi)用風(fēng)險(xiǎn)和進(jìn)度風(fēng)險(xiǎn)。
設(shè)計(jì)階段的控制措施:軟件設(shè)計(jì)階段安全管理原則。具體如下:1、最小特權(quán)原則,2、權(quán)限分離原則,3、最少共享機(jī)制原則,4、完全中立原則,5、心理可接受度原則,6、默認(rèn)故障處理保護(hù)原則,7、縱深防御原則。
(三)軟件開(kāi)發(fā)階段。程序?qū)崿F(xiàn)就是常說(shuō)的編碼階段,是軟件開(kāi)發(fā)的重要階段,此階段的目標(biāo)是:將設(shè)計(jì)完整、準(zhǔn)確的轉(zhuǎn)換為代碼,正確處理程序結(jié)構(gòu)。編寫(xiě)出符合內(nèi)部、外部不同使用要求的文檔等。
(四)軟件測(cè)試階段。程序測(cè)試是上線前對(duì)產(chǎn)品最后的驗(yàn)證,也是發(fā)現(xiàn)和排除程序安全問(wèn)題漏洞的重要手段。
軟件測(cè)試過(guò)程中的風(fēng)險(xiǎn):測(cè)試覆蓋面不完善;僅考慮軟件出錯(cuò)時(shí)的處理,沒(méi)有考慮對(duì)軟件的故意攻擊;軟件測(cè)試中自動(dòng)測(cè)試工具不能完全發(fā)現(xiàn)問(wèn)題,需要進(jìn)行人工測(cè)試,由于人員的安全技能差別,導(dǎo)致測(cè)試結(jié)果也不完全一致。
(5)軟件發(fā)布階段。經(jīng)過(guò)軟件設(shè)計(jì)和軟件開(kāi)發(fā)兩個(gè)階段之后,基本上大部分工作都已經(jīng)做完了,剩下的就是應(yīng)用軟件上線,給客戶一個(gè)可以正常使用的系統(tǒng)。
涉及軟件安全的部分,是上線前的安全測(cè)試,在前期,開(kāi)發(fā)軟件的過(guò)程中,加入了安全管理概念和流程,上線前,我們?nèi)孕枰獙?duì)系統(tǒng)進(jìn)行再次的安全檢查,并形成檢查報(bào)告,沒(méi)有問(wèn)題方可進(jìn)行上線。
五、總結(jié)
通過(guò)在軟件開(kāi)發(fā)的生命周期中增加安全管理內(nèi)容,能夠有效的提高軟件的安全性,降低軟件出故障的概率,節(jié)約企業(yè)的經(jīng)濟(jì)開(kāi)支。