軟件安全性保障框架研究論文
- 論文
- 關注:2.97W次
近幾年互聯網的大量普及,軟件安全問題開始愈加突顯。因為互聯網上的病毒和攻擊者引起的身份竊取、數據丟失以及一般性的混亂事件已經隨處可見。單單2008年第一季度,就有1474個不同的軟件脆弱點報告上來,只有64個發佈了相應的解決方案。也就是説解決率大約只有4%。應用軟件安全將成為信息系統安全的下一個熱點。
軟件安全一般分為應用程序級別的安全性和操作系統級別的安全性。應用程序級別的安全性,包括對數據或業務功能的訪問,在預期的安全性情況下,操作者只能訪問應用程序的特定功能、有限的數據等。操作系統級別的安全性是確保只有具備系統平台訪問權限的用户才能訪問,包括對系統的登錄或遠程訪問。
1基於軟件工程的軟件安全性保障框架
1.1傳統開發方法在安全方面的不足
在傳統面向對象項目開發過程中,在安全性方面存在以下不足:
1)設計階段,由於以類為單位組織建模,因此它不能全面地反映軟件系統的安全需求。
2)編碼階段,將數據和方法封裝到類中的思想增強了數據的安全性和軟件的模塊化,但是有一些數據和方法是特定於應用的,對於系統安全方面的考慮比較少。
3)維護階段,一般是系統在使用過程中發現了漏洞再去修補,不僅效率低而且工作量大。
2.2基於軟件工程原理的軟件安全性保障框架
本文依據系統安全工程的原理,將軟件安全引入到軟件開發生命週期之中。為了開發出安全的應用軟件,提出一個軟件安全性保障框架,將軟件安全保障實施到軟件開發的各個模塊當中。
該框架具體分為:軟件安全需求分析、軟件安全設計與編碼、軟件安全檢測與評估、漏洞響應和維護階段。首先分析軟件開發中可能出現的安全問題,瞭解項目的安全需求,之後再要保證程序設計和編碼過程中的安全性,開發完成後對軟件進行安全性檢測和評估,最後進行產品的維護,對產品中存在的漏洞問題進行響應和處理。
2.2.1軟件安全需求分析
軟件安全分析開始於項目開發初期並貫穿於整個系統生命週期的始終。在完成項目需求分析的同時,也要建立安全需求。在這個階段主要完成兩個任務:
1)軟件需求危險分析計劃制定
在系統需求分析階段,首先建立軟件安全需求定義,確保軟件安全需求定義的正確性,然後制定一個危險分析計劃。
2)寫出初步的軟件安全需求文檔
安全分析的結果應寫成軟件安全需求文檔,應用到軟件需求文檔、軟件設計文檔、軟件測試計劃、軟件維護計劃中去。
2.2.2軟件安全設計和編碼階段
安全從設計開始。設計階段如果出了安全問題,那下一步的測試維護工作會更加困難而又低效。這個階段主要有三個任務:
1)進行軟件設計危險分析
明確在設計階段有哪些安全方面的目標需要達到,識別軟件可能會遇到的攻擊和一些安全隱患,劃出安全邊界、哪些數據是比較可信的、哪些輸入接口較易成為攻擊目標、列出潛在的.攻擊方式等,確保設計的完整性和正確性。
2)軟件安全設計
進行安全分析之後,還必須進行軟件安全設計。設計時要注意儘量降低危險發生率,對可能發生危險的地方要提供警告,危險發生後採取有效措施進行控制,同時還要注意所額外增加的複雜度。
3)基於編碼的軟件安全分析
在軟件代碼編寫階段,也要注意編碼過程中是否會引入新的危險,因為編碼人員可能會不小心使用一個不安全的函數。除了要求編碼人員提高程序質量之外,還可以使用第三方的安全編譯來提高編碼階段的安全水平。
2.2.3軟件安全檢測與評估階段
軟件安全性測試是軟件安全開發生命週期不可缺少的一個組成部分,測試中的投入要遠遠小於項目完成後再進行的漏洞修補和安全維護。
安全性測試和普通的功能性測試的測試目的是不同的。軟件安全測試的目的是確保軟件不會去完成沒有預先設計的功能,而且所有預料到的危險已經被消除或減輕。如代碼運行過程中系統是不是處於安全的狀態,系統運行風險是否可以接受,操作人員的失誤包括極端環境在內的各種異常和故障是否被妥當控制,儘可能找到軟件中的所有漏洞,減少軟件遭到攻擊的可能性。
軟件的安全檢測通常包括一下幾個方面:靜態檢測、動態檢測、文檔檢查、出錯處理和異常情況檢測。
1)動態檢測
選擇合適的測試用例,實際執行待測程序,通過分析程序運行時的內存、變量、內部寄存器等中間結果來檢測程序運行時的正確性。
2)靜態檢測
靜態檢測是在程序沒有運行的情況下,靜態分析程序的數據流和控制流,然後給出相應的測試分析報告。
3)檢查文檔
檢查需求説明書、概要設計説明書、詳細設計説明書中是否有對安全性的設計和描述,對安全性的描述是否和需求一致,還有用户文檔是否有安全性注意事項等。
4)出錯處理和異常情況檢測
保證各種出錯和異常情況都被處理,提示給用户的出錯信息不會涉及到程序設計的細節,而且軟件的異常情況不能導致程序進入不可知的危險情況。
2.4.4漏洞響應和維護階段
即使我們在需求分析,軟件設計,代碼編寫,以及軟件測試過程中都加入了安全因素的考慮,最終的軟件產品還是可能會存在漏洞,所以漏洞響應和維護是很重要的一個環節,軟件的維護和跟蹤,響應、修復漏洞是很重要的。漏洞發現後要在第一時間採取措施,確保客户的利益不被侵害。這個階段大致可分為以下兩個階段:
1)漏洞響應
發現漏洞,首先通知客户收到漏洞報告,聯繫相關的開發部門進行技術細節的分析,為漏洞進行風險評估。
2)修復漏洞
開發部門和安全響應部門協商進行解決方案的制定,對修復漏洞的補丁進行嚴格測試之後對外公佈安全補丁,發佈安全簡報。
3結論
真實有效的安全解決方案能為開發安全的關鍵軟件提供好的思路。本文運用系統安全工程的原則,對軟件安全工程進行詳細分析,提出初步的軟件安全性保障框架,詳細論述了框架各階段的安全分析工作,並結合實際提出一些實用的改進方法,有一定的參考價值,希望在大量的實際應用中逐步完善成為使用有效的軟件安全性保障方案。
參考文獻:
[1]軟件安全速成課企業系統有多脆弱?[EB/OL]. [2]軟件系統的安全必須能夠經受住正面的攻擊
[3]於東輝.基於面向方面的軟件安全框架的研究[D].大連:大連理工大學,2005.
[4]蔡霞,陳基熊.軟件安全及有關技術淺析[J].計算機應用,1999(11).
[5]崔丹丹,張二峯.軟件安全問題初探[J].商場現代化,2009(2).
[6]餘勇,林為民.軟件安全開發模型的研究[J].計算機安全,2005(4).
- 文章版權屬於文章作者所有,轉載請註明 https://wenshudu.com/shiyongfanwen/lunwen/07de3j.html