• 軟件測試技術
  • 軟件測試博客
  • 軟件測試視頻
  • 開源軟件測試技術
  • 軟件測試論壇
  • 軟件測試沙龍
  • 軟件測試資料下載
  • 軟件測試雜志
  • 軟件測試人才招聘
    暫時沒有公告

字號: | 推薦給好友 上一篇 | 下一篇

軟件安全性淺析1

發布: 2008-9-08 10:32 | 作者: 網絡轉載 | 來源: 網絡轉載 | 查看: 197次 | 進入軟件測試論壇討論

領測軟件測試網

現今,軟件安全性已成為一個越來越不容忽視的問題,提起它,人們往往會想起一連串專業性名詞:“系統安全性參數”、“軟件事故率”、“軟件安全可靠度”、“軟件安全性指標”等等,它們可能出現在強制的規范性文檔中的頻率比較多,但卻不一定能在開發過程中吸引開發者的眼球。幾乎每一個程序員都或多或少的在項目維護時遭遇過自己軟件的安全性bug,這種經歷使我們有幸在一個設計嚴謹而又性能良好的系統平臺上工作時,都會對其大為感嘆:“那真是一段很棒的代碼!”這是因為,專業的軟件設計開發人員會重視軟件的安全性,而不僅僅把它當做是書面字眼。在這里本文將通過對軟件安全性概念的引入,以及對軟件安全性各階段的任務的介紹和如何通過軟件測試來驗證是否完成了軟件安全性目標,較全面的闡述軟件安全性對軟件質量起的重要作用。首先,應該從加固對軟件安全性的認識開始。


一、 軟件安全性分析的重要性
“安全性分析”(safety analysis)是一種系統性的分析,應在研發過程的早期開始進行,用于確定產品在每一個使用模式中執行其功能的方式,識別潛在的危險,預計這些危險對人員及(或)設備可能造成的損害,并確定消除危險的方法。其中對于計算機系統來說,安全性分析的一項重要內容是“軟件安全性分析”,這是對軟件程序進行的一種分析,以保證程序在其設計的運行環境中,不會引起(或可以容忍的小概率引起)或誘發對人員或設備的危害。例如多級火箭一級點火、二級點火指令如果錯了,火箭就會失敗。但只要對火箭指令及傳遞機構采取足夠的防錯設計,錯發指令的概率就可以小到能容忍的程度。如果各關鍵項目的開發單位能從軟件安全性這方面重視“安全”這個題目,那么項目的安全性鏈條就不會輕易地由于諸如小數點錯位的原因而斷開。
在軟件和信息系統的開發過程中,由于技術難度高,項目復雜,開發周期短而帶來的一系列困難,潛伏安全性隱患的幾率其實是很大的,F代化的軟件本身變得越來越復雜,開發一個軟件產品或一個大型系統所需要依靠的技術也越來越多樣化,需要考慮的問題也越來越多,例如,開發團隊需要在研發開始前就確定好軟件系統能夠承受的出事概率。很多軟件開發的組織由于沒有掌握和利用必要的控制軟件安全性的技術,無法妥善解決相應的問題,把時間耗費在事后補救上,使得開發的效率大為降低,產品的質量大打折扣,甚至因為某個關鍵錯誤的發生,導致產品的信譽度降低,更嚴重的結果則會導致生命財產安全的損失。如果你發現有關安全性的要求已經出現在安全相關軟件項目的合同書或任務書中,并提出軟件安全性分析的范圍和任務,那么說明已經需要開始進行軟件安全性分析的準備了。


二、 軟件安全性分析的指導原則
如果將軟件安全性分析作為一項目標明確的項目去做,從管理的角度分為五個階段,每個階段有不同的任務需要完成。
啟動和范圍確定:在安全相關軟件的合同或任務書中應提出軟件安全性分析的范圍和要求。實施方明確責任,管理者檢查必備的資源(包括人員、技術、基礎設施和時間安排),確保軟件安全性分析的開展;
策劃:軟件安全性分析管理者應制定安全性分析計劃,該計劃可作為所屬軟件過程或活動的計劃的一部分。
執行和控制:管理者應監控由軟件安全性分析計劃規定的任務的執行。管理者應控制安全性分析進展并對發現的問題進行調查、分析和解決(解決方案有可能導致計劃變更)。
評審和評價:管理者應對安全性分析及其輸出的軟件產品進行評價,以便使軟件安全性分析達到目標,完成計劃。
結束(收尾階段):管理者應根據合同或任務書中的準則,確定軟件安全性分析的是否完成,并應核查軟件安全性分析中產生的軟件產品和記錄是否完整。
上文將軟件安全分析在一個典型的項目中各個階段所要做的工作做了一個總結,每個階段都有側重的工作重點。我們在實際工作中,應調動所有有關人員,努力完成各階段的任務。


三、 軟件安全性分析的任務
根據上面所總結的各階段需要做的安全分析重點,可以相應地總結出以下七種需要做的分析工作。在這里為拋磚引玉,再對相應的應用分析技術作一些介紹:
1. 軟件需求安全性分析——對分配給軟件的系統級安全性需求進行分析
做軟件需求安全性分析需要對分配給軟件的系統級安全性需求進行分析,規定軟件的安全性需求,保證規定必要的軟件安全功能和軟件安全完整性。
評測人員需要根據軟件安全性分析準備的結果和系統的初步結構設計文檔,包括系統分配的軟件需求、接口需求,完成對系統安全性需求的映射,以安全相關性分析和對軟件需求的安全性評價。有了這些積累,評測人員才有把握對軟件在系統中的安全性需求作出一個綜合性的評價,更好地提交對后續的軟件設計和測試的建議。
2. 軟件結構設計安全性分析——評價結構設計的安全性,以保證軟件安全功能的完整性
從安全角度講,軟件結構設計是制定軟件基本安全性策略的階段,因為這一階段負責定義主要軟件部件,以及它們如何交互,如何獲得所要求的屬性,特別是安全完整性,是軟件安全性需求在結構定義中實現的階段。對結構設計進行安全性分析要做到將全部軟件安全性需求綜合到軟件的體系結構設計中,確定結構中與安全性相關的部分,并評價結構設計的安全性。
結構設計是開發人員對系統期望功能和功能實現方式的表示方法,但是溝通的一致性,和設計的合理性,通常會影響到安全完整性,這里可以借助一些技術來驗證:用動畫/仿真技術證實功能的實現狀態;借助接口分析技術分析安全相關部件與其他部件的相互依賴關系和獨立性。等等。
3. 軟件編程安全性分析——選擇合適的編程語言
所有編程語言無論在其定義還是在其實現中都有其不安全性。這通常匯號稱程序員對語言的誤用,而對這些誤解,一些相對開放的語言又缺乏相應的解釋,F舉例如下:
a) 未初始化的變量。除非進行特別的檢查,否則單元測試不會發現他們。而這將導致,一個程序在不同的環境下雖然運行成功,但運行結果卻不是期望值。
b) 當要求重新分配存儲器的調用時應予以檢查,以確保不僅釋放指針而且釋放該結構所用的存儲器。
c) 運算符優先級的規則,一些語言的要求并不是那么嚴格,容易是程序員發生誤解。
如果某種語言有精確的定義(也有完備的功能性),從邏輯上說是清晰的,有易管理的規模和復雜度,那么就認為這個語言適用于安全相關性軟件。使用編程語言時,也應該針對該語言的特點,努力滿足安全性要求。
如果一種編程經驗或編程風格因為能夠提高軟件安全性而被公認為專用性編碼標準,可以選擇這樣一種編碼標準來約束對不安全語言的使用。編碼標準對程序員的編程修養和對語言正確使用是有指導意義的。MISRA協會在1994年發布了它的軟件開發指南,在其中特別指出了為考慮安全集成度而做出的語言、編譯器和語言特性的選擇。MISRA要求使用“標準化結構化語言的受限子集”,其對語言檢查的嚴格性已經使該規范應用在一些安全要求很高的系統相關代碼上。

延伸閱讀

文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/

TAG: snooker 安全性 軟件


關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97