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