□ 孫 偉
隨著計算機應用的不斷發展,軟件已成為各行各業智能化、網絡化的關鍵,由于軟件的漏洞和缺陷造成系統運行失常的后果也愈加嚴重,特別是在航空航天、金融保險、交通通信、工業控制等關系國計民生的重要領域,軟件一旦失效將造成重大損失。同時,隨著軟件規模越來越大、結構日趨復雜,軟件在構建和編程過程中會造成一些缺陷,缺陷可能導致失效,失效引發事故,導致軟件的開發、集成和維護工作越來越復雜。隨著網絡上每年爆出大量的安全事件,如軟件漏洞、蠕蟲病毒、木馬、黑客攻擊、用戶信息泄露等,對軟件可靠性、安全性提出了更高的要求,人們開始越來越重視軟件的安全性。在《GB/T 16260.1—2006 軟件工程 產品質量 第1部分:質量模型》中,軟件的安全保密性是屬于軟件六性(功能性、可靠性、易用性、效率、維護性、可移植性)中功能性的子特性,而在《GB/T 25000.10—2016 系統與軟件工程 系統與軟件質量要求和評價(SQuaRE) 第10部分:系統與軟件質量模型》中,軟件的產品質量特性被劃分成8個特性:功能性、性能效率、兼容性、易用性、可靠性、信息安全性、維護性和可移植性;信息安全性已被單獨提出成為軟件質量特性之一,軟件的安全性、可靠性日益成為業內廣泛關注的焦點,軟件可靠性和安全性的分析、設計、驗證等關鍵基礎技術更加凸顯其重要性。
軟件可靠性 (software reliability )是軟件產品在規定的條件下和規定的時間區間完成規定功能的能力。規定的條件是指直接與軟件運行相關的使用該軟件的計算機系統的狀態和軟件的輸入條件,或統稱為軟件運行時的外部輸入條件;規定的時間區間是指軟件的實際運行時間區間;規定功能是指為提供給定的服務,軟件產品所必須具備的功能。軟件可靠性不但與軟件存在的缺陷和(或)差錯有關,而且與系統輸入和系統使用有關。
軟件安全性(software safety)指的是確保在系統范圍內軟件所完成的功能不會引起不可接受的風險,即軟件能夠使其所控制的系統始終處于不危及人的生命、財產和自然環境的安全狀態性質。因此,軟件本身可能不會對生命、財產和環境等造成安全威脅,但是,一旦軟件嵌入到一些安全關鍵系統中,軟件失效可能導致控制系統出現問題,從而造成災難性后果。同時,與目前的硬件安全性快速提升相比,安全關鍵軟件的安全性已經成為制約系統安全性的關鍵因素,因此,安全關鍵軟件的質量更顯得尤為重要。另外,軟件安全性也指軟件信息安全(software security),此時指軟件在受到惡意攻擊的情形下依然能夠繼續正確運行及確保軟件被在授權范圍內合法使用的思想。
本專題針對軟件可靠性、安全性一些研究問題,力圖緊扣學術研究熱點和技術應用難點,探索軟件的可靠、安全問題的解決之道。專題涉及代碼安全性審查、智能可穿戴產品、智能網聯汽車、區塊鏈等若干方面,其中:
1)《代碼安全性審查方法研究》從常用的軟件測試方法入手,對代碼審查中質量審查和安全性審查的不同點進行了比較,并從代碼安全性人工走查和代碼安全性工具靜態分析兩個方面對代碼安全性審查的方法進行了研究。將云計算、大數據、人工智能等技術應用到對軟件源代碼的安全分析方面,代碼安全性審查的效率將大大提高,時間和成本也會大幅度降低,成本的降低將帶來技術的普及,這將為更多、更廣范圍的軟件帶來安全性的保障。
2)《等保2.0時代云計算安全要求及測評實踐》對云計算安全要求中的技術安全要求進行解析,從等級保護的角度對云計算系統中的安全保護對象、安全責任主體、安全保護要求進行分析,并以某地區電子政務云平臺為例,分享云等保測評經驗,提出在對云計算系統開展等級保護測評工作中存在的問題及下一階段的建議。
3)《基于Sigmoid函數的軟件漏洞風險評價算法》著眼于國家網絡安全與基礎軟硬件自主可控戰略的大背景和現有軟件漏洞風險評價的不足之處,提出基于Sigmoid函數的軟件漏洞風險評價算法,對軟件的安全漏洞風險情況進行評價,幫助開發人員快速定位安全性最差的代碼模塊,修補或選取更加安全、優秀的代碼,提高軟件整體安全水平。
4)《區塊鏈技術的安全問題研究綜述》對典型區塊鏈技術架構進行了詳細闡述,并從區塊數據結構、哈希算法、數字簽名、智能合約等方面對區塊鏈技術的安全性進行了詳細分析,最后總結了區塊鏈技術仍面臨的安全性問題。
5)《軟件可靠性工程綜合應用建模技術研究》通過對軟件可靠性工程活動與開發過程,以及可靠性工程活動之間的數據交互關系的分析,提出了數據驅動的軟件可靠性工程過程模型,該模型以工作流的形式實現了軟件可靠性工程活動之間的信息交互,實現了軟件可靠性工程對軟件開發的全過程可靠性技術支持,有利于軟件可靠性工程綜合集成環境的實現。
6)《軟件可靠性模型中的知識度量》從缺陷密度的Weibull分布出發,分析測試者的知識水平與故障分布的定量關系,可以依據知識量與缺陷發現的分布曲線預測測試發現問題的趨勢及軟件的可靠性,從而確定測試結束時機。通過開展軟件測試工程實驗驗證了尺度參數c與知識量成反比關系:測試者的知識增多,Weibull分布的比例因子c減小。此外,根據軟件知識的程度,將在測試中發現的問題的趨勢估計用來預測軟件的可靠性。
7)《智能可穿戴產品信息安全能力要求及評價方法》通過安全能力要求來表征智能可穿戴產品應該具備的可防范安全威脅的技術手段,從穿戴式設備安全能力、數據處理終端應用軟件安全能力、后端計算與服務系統安全能力、無線通信能力以及用戶數據保護安全能力5個方面定義了一種智能可穿戴產品分級評價方法;指導廠商提升智能可穿戴產品的安全防護能力,并為消費者購買產品提供參考。
8)《智能網聯汽車軟件安全測試關鍵技術研究》在簡要分析智能網聯汽車信息安全風險的基礎上,圍繞智能網聯汽車軟件質量問題,闡述開展安全性測評的關鍵技術與方法,并提出相應的解決方案。給出“軟件是智能網聯汽車技術發展的核心與關鍵,汽車軟件的質量是保障智能網聯汽車產業健康發展的保證”等結論。