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