軟件安全性保障框架研究論文
近幾年互聯(lián)網(wǎng)的大量普及,軟件安全問題開始愈加突顯。因?yàn)榛ヂ?lián)網(wǎng)上的病毒和攻擊者引起的身份竊取、數(shù)據(jù)丟失以及一般性的混亂事件已經(jīng)隨處可見。單單2008年第一季度,就有1474個(gè)不同的軟件脆弱點(diǎn)報(bào)告上來,只有64個(gè)發(fā)布了相應(yīng)的解決方案。也就是說解決率大約只有4%。應(yīng)用軟件安全將成為信息系統(tǒng)安全的下一個(gè)熱點(diǎn)。
軟件安全一般分為應(yīng)用程序級別的安全性和操作系統(tǒng)級別的安全性。應(yīng)用程序級別的安全性,包括對數(shù)據(jù)或業(yè)務(wù)功能的訪問,在預(yù)期的安全性情況下,操作者只能訪問應(yīng)用程序的特定功能、有限的數(shù)據(jù)等。操作系統(tǒng)級別的安全性是確保只有具備系統(tǒng)平臺訪問權(quán)限的用戶才能訪問,包括對系統(tǒng)的登錄或遠(yuǎn)程訪問。
1基于軟件工程的軟件安全性保障框架
1.1傳統(tǒng)開發(fā)方法在安全方面的不足
在傳統(tǒng)面向?qū)ο箜?xiàng)目開發(fā)過程中,在安全性方面存在以下不足:
1)設(shè)計(jì)階段,由于以類為單位組織建模,因此它不能全面地反映軟件系統(tǒng)的安全需求。
2)編碼階段,將數(shù)據(jù)和方法封裝到類中的思想增強(qiáng)了數(shù)據(jù)的安全性和軟件的模塊化,但是有一些數(shù)據(jù)和方法是特定于應(yīng)用的,對于系統(tǒng)安全方面的考慮比較少。
3)維護(hù)階段,一般是系統(tǒng)在使用過程中發(fā)現(xiàn)了漏洞再去修補(bǔ),不僅效率低而且工作量大。
2.2基于軟件工程原理的軟件安全性保障框架
本文依據(jù)系統(tǒng)安全工程的原理,將軟件安全引入到軟件開發(fā)生命周期之中。為了開發(fā)出安全的應(yīng)用軟件,提出一個(gè)軟件安全性保障框架,將軟件安全保障實(shí)施到軟件開發(fā)的各個(gè)模塊當(dāng)中。
該框架具體分為:軟件安全需求分析、軟件安全設(shè)計(jì)與編碼、軟件安全檢測與評估、漏洞響應(yīng)和維護(hù)階段。首先分析軟件開發(fā)中可能出現(xiàn)的安全問題,了解項(xiàng)目的安全需求,之后再要保證程序設(shè)計(jì)和編碼過程中的安全性,開發(fā)完成后對軟件進(jìn)行安全性檢測和評估,最后進(jìn)行產(chǎn)品的維護(hù),對產(chǎn)品中存在的漏洞問題進(jìn)行響應(yīng)和處理。
2.2.1軟件安全需求分析
軟件安全分析開始于項(xiàng)目開發(fā)初期并貫穿于整個(gè)系統(tǒng)生命周期的始終。在完成項(xiàng)目需求分析的同時(shí),也要建立安全需求。在這個(gè)階段主要完成兩個(gè)任務(wù):
1)軟件需求危險(xiǎn)分析計(jì)劃制定
在系統(tǒng)需求分析階段,首先建立軟件安全需求定義,確保軟件安全需求定義的正確性,然后制定一個(gè)危險(xiǎn)分析計(jì)劃。
2)寫出初步的軟件安全需求文檔
安全分析的結(jié)果應(yīng)寫成軟件安全需求文檔,應(yīng)用到軟件需求文檔、軟件設(shè)計(jì)文檔、軟件測試計(jì)劃、軟件維護(hù)計(jì)劃中去。
2.2.2軟件安全設(shè)計(jì)和編碼階段
安全從設(shè)計(jì)開始。設(shè)計(jì)階段如果出了安全問題,那下一步的測試維護(hù)工作會更加困難而又低效。這個(gè)階段主要有三個(gè)任務(wù):
1)進(jìn)行軟件設(shè)計(jì)危險(xiǎn)分析
明確在設(shè)計(jì)階段有哪些安全方面的目標(biāo)需要達(dá)到,識別軟件可能會遇到的攻擊和一些安全隱患,劃出安全邊界、哪些數(shù)據(jù)是比較可信的、哪些輸入接口較易成為攻擊目標(biāo)、列出潛在的.攻擊方式等,確保設(shè)計(jì)的完整性和正確性。
2)軟件安全設(shè)計(jì)
進(jìn)行安全分析之后,還必須進(jìn)行軟件安全設(shè)計(jì)。設(shè)計(jì)時(shí)要注意盡量降低危險(xiǎn)發(fā)生率,對可能發(fā)生危險(xiǎn)的地方要提供警告,危險(xiǎn)發(fā)生后采取有效措施進(jìn)行控制,同時(shí)還要注意所額外增加的復(fù)雜度。
3)基于編碼的軟件安全分析
在軟件代碼編寫階段,也要注意編碼過程中是否會引入新的危險(xiǎn),因?yàn)榫幋a人員可能會不小心使用一個(gè)不安全的函數(shù)。除了要求編碼人員提高程序質(zhì)量之外,還可以使用第三方的安全編譯來提高編碼階段的安全水平。
2.2.3軟件安全檢測與評估階段
軟件安全性測試是軟件安全開發(fā)生命周期不可缺少的一個(gè)組成部分,測試中的投入要遠(yuǎn)遠(yuǎn)小于項(xiàng)目完成后再進(jìn)行的漏洞修補(bǔ)和安全維護(hù)。
安全性測試和普通的功能性測試的測試目的是不同的。軟件安全測試的目的是確保軟件不會去完成沒有預(yù)先設(shè)計(jì)的功能,而且所有預(yù)料到的危險(xiǎn)已經(jīng)被消除或減輕。如代碼運(yùn)行過程中系統(tǒng)是不是處于安全的狀態(tài),系統(tǒng)運(yùn)行風(fēng)險(xiǎn)是否可以接受,操作人員的失誤包括極端環(huán)境在內(nèi)的各種異常和故障是否被妥當(dāng)控制,盡可能找到軟件中的所有漏洞,減少軟件遭到攻擊的可能性。
軟件的安全檢測通常包括一下幾個(gè)方面:靜態(tài)檢測、動態(tài)檢測、文檔檢查、出錯(cuò)處理和異常情況檢測。
1)動態(tài)檢測
選擇合適的測試用例,實(shí)際執(zhí)行待測程序,通過分析程序運(yùn)行時(shí)的內(nèi)存、變量、內(nèi)部寄存器等中間結(jié)果來檢測程序運(yùn)行時(shí)的正確性。
2)靜態(tài)檢測
靜態(tài)檢測是在程序沒有運(yùn)行的情況下,靜態(tài)分析程序的數(shù)據(jù)流和控制流,然后給出相應(yīng)的測試分析報(bào)告。
3)檢查文檔
檢查需求說明書、概要設(shè)計(jì)說明書、詳細(xì)設(shè)計(jì)說明書中是否有對安全性的設(shè)計(jì)和描述,對安全性的描述是否和需求一致,還有用戶文檔是否有安全性注意事項(xiàng)等。
4)出錯(cuò)處理和異常情況檢測
保證各種出錯(cuò)和異常情況都被處理,提示給用戶的出錯(cuò)信息不會涉及到程序設(shè)計(jì)的細(xì)節(jié),而且軟件的異常情況不能導(dǎo)致程序進(jìn)入不可知的危險(xiǎn)情況。
2.4.4漏洞響應(yīng)和維護(hù)階段
即使我們在需求分析,軟件設(shè)計(jì),代碼編寫,以及軟件測試過程中都加入了安全因素的考慮,最終的軟件產(chǎn)品還是可能會存在漏洞,所以漏洞響應(yīng)和維護(hù)是很重要的一個(gè)環(huán)節(jié),軟件的維護(hù)和跟蹤,響應(yīng)、修復(fù)漏洞是很重要的。漏洞發(fā)現(xiàn)后要在第一時(shí)間采取措施,確保客戶的利益不被侵害。這個(gè)階段大致可分為以下兩個(gè)階段:
1)漏洞響應(yīng)
發(fā)現(xiàn)漏洞,首先通知客戶收到漏洞報(bào)告,聯(lián)系相關(guān)的開發(fā)部門進(jìn)行技術(shù)細(xì)節(jié)的分析,為漏洞進(jìn)行風(fēng)險(xiǎn)評估。
2)修復(fù)漏洞
開發(fā)部門和安全響應(yīng)部門協(xié)商進(jìn)行解決方案的制定,對修復(fù)漏洞的補(bǔ)丁進(jìn)行嚴(yán)格測試之后對外公布安全補(bǔ)丁,發(fā)布安全簡報(bào)。
3結(jié)論
真實(shí)有效的安全解決方案能為開發(fā)安全的關(guān)鍵軟件提供好的思路。本文運(yùn)用系統(tǒng)安全工程的原則,對軟件安全工程進(jìn)行詳細(xì)分析,提出初步的軟件安全性保障框架,詳細(xì)論述了框架各階段的安全分析工作,并結(jié)合實(shí)際提出一些實(shí)用的改進(jìn)方法,有一定的參考價(jià)值,希望在大量的實(shí)際應(yīng)用中逐步完善成為使用有效的軟件安全性保障方案。
參考文獻(xiàn):
[1]軟件安全速成課企業(yè)系統(tǒng)有多脆弱?[EB/OL]. [2]軟件系統(tǒng)的安全必須能夠經(jīng)受住正面的攻擊
[3]于東輝.基于面向方面的軟件安全框架的研究[D].大連:大連理工大學(xué),2005.
[4]蔡霞,陳基熊.軟件安全及有關(guān)技術(shù)淺析[J].計(jì)算機(jī)應(yīng)用,1999(11).
[5]崔丹丹,張二峰.軟件安全問題初探[J].商場現(xiàn)代化,2009(2).
[6]余勇,林為民.軟件安全開發(fā)模型的研究[J].計(jì)算機(jī)安全,2005(4).
【軟件安全性保障框架研究論文】相關(guān)文章:
彈性城市及規(guī)劃框架研究論文10-28
幼兒成長的安全保障研究論文02-22
云計(jì)算框架下的網(wǎng)站群架構(gòu)及安全性設(shè)計(jì)探索論文11-12
配電安全保障與安全管理研究論文10-19
斷點(diǎn)續(xù)傳軟件研究論文11-04