摘要:伴隨著科學技術(shù)的發(fā)展,計算機軟件的應(yīng)用范圍越來越廣泛。本文從計算機軟件安全檢測的概述出發(fā),在論述計算機軟件安全檢測需要注意問題的基礎(chǔ)上闡述了計算機軟件安全檢測的方法。
關(guān)鍵詞:計算機 軟件安全 檢測方法
從計算機軟件的應(yīng)用來說,計算機軟件安全檢測的目的是避免由于軟件應(yīng)用所帶來的潛在風險。計算機軟件安全檢測方法的研究對軟件安全檢測工作來說有著不可低估的作用,是保障計算機軟件安全必不可少的手段之一。
一、計算機軟件安全檢測概述
計算機軟件安全檢測是軟件開發(fā)的重要環(huán)節(jié),檢測的目的是為了發(fā)現(xiàn)軟件所存在的故障而對程序進行執(zhí)行的過程,從而有效地對計算機軟件潛在的風險進行更正。軟件安全檢測的目標是用較少的測試用例來達到最大的軟件檢測覆蓋,從而極好地發(fā)現(xiàn)軟件存在的問題。計算機軟件安全檢測其的存在并不能證明程序中沒有錯誤,它僅僅是查找程序錯誤的手段。從目前計算機軟件安全檢測情況來看,進行安全測試的方法主要分為靜態(tài)與動態(tài)兩大類。
計算機軟件安全檢測是確定軟件所具有的安全實現(xiàn)是否能夠與軟件預期的設(shè)計要求一致的過程,這個過程包括功能測試、滲透測試與驗證過程3 個部門。計算機軟件安全檢測的安全性與一般的軟件缺陷有一定的區(qū)別,軟件安全檢測所強調(diào)的是軟件不應(yīng)該做什么,而不是軟件應(yīng)該做什么。計算機軟件安全檢測通常分為安全功能與安全漏洞進行檢測兩個方面。安全功能測試是檢測計算機軟件安全功能是否與安全需要之間步調(diào)一致。軟件安全功能需求做涉及的內(nèi)容比較廣,具體包括機密性、授權(quán)、訪問控制及安全管理等等。而計算機軟件安全漏洞的檢測則與此不同,其針對的是軟件可能存在的缺陷,該缺陷有可能導致軟件在應(yīng)用中存在一定的風險。
二、計算機軟件安全檢測是應(yīng)注意的問題
一是要針對所檢測的計算機軟件所特有特點與涉及要求,在綜合分析的基礎(chǔ)上通過選擇適合軟件的檢測技術(shù)手段,并從實際出發(fā)的角度制定合理的安全檢測方案。同時,在進行計算機軟件安全檢測時要關(guān)注檢測人員的多元化,在計算機軟件安全檢測過程中不僅僅要配備軟件安全分析員,還要需要配備對該軟件系統(tǒng)熟悉同時是還是該系統(tǒng)的總體設(shè)計人員參加,只有多領(lǐng)域的配合才能更好地對軟件安全進行檢測。
二是在進行計算軟件安全檢測時,系統(tǒng)級、需求級與代碼級的分析是必須的。如果該軟件的規(guī)模比較大,還應(yīng)對其進行軟件結(jié)構(gòu)設(shè)計方面的分析。在具體的分析過程中從實際工作需要選擇合理的分析技術(shù),必要時可以進行仿真環(huán)境與分析工具來協(xié)助檢測工作。從計算機安全檢測的角度來看,其過程是一個系統(tǒng)化的過程,無法通過簡單的方法來解決一個系統(tǒng)的所有安全檢測問題,因而在具體的家算計安全檢測過程中,需要選擇合理的安全檢測方法。
三、計算機軟件安全檢測方法
1.計算機軟件安全檢測的程序通常情況下,規(guī)模較大的軟件系統(tǒng)是由一定數(shù)量的子系統(tǒng)組成,不同的子系統(tǒng)又由若干個模塊組成。
在計算機軟件安全檢測中通常采用的步驟是,先進行單元測試,也就是模塊測試,該檢測針對的是軟件設(shè)計中的最小單位進行的安全檢測。進行模塊測試的目的是能夠發(fā)現(xiàn)系統(tǒng)所屬的各個模塊可能存在的各種缺陷。在模塊測試的基礎(chǔ)上,對所有模塊按照程序設(shè)計的要求組裝成系統(tǒng),并對與涉及相關(guān)的體系結(jié)構(gòu)進行安全檢測。在前兩個軟件安全測試程序的基礎(chǔ)上進行有效性測試,有效性測試的任務(wù)是對軟件的功能與性能進行檢測,檢測是否與用戶的需求相符合。最后進行系統(tǒng)測試,簡而言之,就是將通過有效性檢測的軟件,與計算機硬件、某些支持軟件、數(shù)據(jù)等其他系統(tǒng)元素結(jié)合起來進行測試。
2.計算機軟件安全檢測的主要方法;
一是形式化安全測試。該安全檢測方法是確立軟件的數(shù)學模型,通過形式規(guī)格說明語言的支持提供形式化的規(guī)格說明。比較常用的形式規(guī)格語言有基于模型的語言、基于有限狀態(tài)的語言及基于行為的語言。有定理證明與模型檢測兩種形式化安全檢測的方法。
二是基于模型的安全功能測試。該方法是對計算機軟件的行為與結(jié)構(gòu)通過建模的方式生成測試模型,以測試模型為基礎(chǔ)生成檢測用例,進而驅(qū)動軟件安全檢測。比較常用的模型安全功能測試方法有有限狀態(tài)機與馬爾可夫鏈等等。
三是語法測試。該測試方法是以被檢測軟件的功能接口的語法生成軟件的測試輸入,通過這種方式檢測軟件對不同種類輸入的反映情況。用該方法進行測試的通常程序是對軟件接口的語言進行識別,定義語言的語法,在以語法為基礎(chǔ)生產(chǎn)測試用例同時執(zhí)行安全檢測。
四是基于故障注入的安全性測試。該安全檢測方法是應(yīng)用故障分析樹與故障數(shù)的最小割集來生產(chǎn)檢測用命。故障樹分析法用系統(tǒng)最不該發(fā)生的時間作為頂事件,在尋找導致事故發(fā)生可能的中間事件與底事件,通過合理的邏輯門符號將頂事件、中間事件與底事件進行連接,形成故障樹。該方法可以顯著提高檢測的自動化程度,是比較充分的安全檢測方法。
五是模糊測試。目前所用的是基于白盒的模糊測試,是對傳統(tǒng)模糊測試技術(shù)的進步。該檢測方法有效的結(jié)合傳統(tǒng)的模糊測試技術(shù)與動態(tài)測試用例。
六是基于屬性的測試。該軟件安全檢測方法是首先確定軟件的安全編程規(guī)則,將確定的規(guī)則編碼作為安全屬性來驗證系統(tǒng)程序的代碼是否對這些規(guī)則進行了遵守。該檢測方法的優(yōu)勢是能夠有效分析安全漏洞的交互性及擴展性等。
參考文獻:
[1]蔣廷耀,王訓宇,馬凱,關(guān)國翔.基于EAI和AOP的軟件安全測試及應(yīng)用研究[J].計算機科學,2009.4
[2]陳璇.淺談關(guān)于軟件安全性測試方法研究[J].電腦知識與技術(shù),2009.3