摘 要:近些年科學(xué)技術(shù)的不斷發(fā)展和提升,在我們?nèi)粘I钪杏?jì)算機(jī)軟件的使用范圍也越來(lái)越廣泛,深入到了很多國(guó)民經(jīng)濟(jì)的領(lǐng)域中,隨著使用范圍的拓寬,相應(yīng)的軟件安全問(wèn)題也越來(lái)越多的受到了人們的關(guān)注。如果計(jì)算機(jī)軟件發(fā)生安全問(wèn)題,其所帶來(lái)后果有的是無(wú)法預(yù)計(jì)的,有的是無(wú)法彌補(bǔ)的。因此,計(jì)算機(jī)軟件測(cè)試已經(jīng)是軟件使用過(guò)程中不可缺少的一部分。下面我們就以計(jì)算機(jī)的安全檢測(cè)為主要的研究對(duì)象,對(duì)計(jì)算機(jī)軟件安全的檢測(cè)方法進(jìn)行相應(yīng)的討論和研究。
關(guān)鍵詞:計(jì)算機(jī)軟件;軟件安全問(wèn)題;檢測(cè)方法;解決措施
1 計(jì)算機(jī)軟件安全測(cè)試的目的
隨著應(yīng)用的廣泛,軟件的安全性也就成為軟件的關(guān)鍵質(zhì)量指標(biāo)。安全測(cè)試,在充分考慮軟件安全性問(wèn)題的前提下進(jìn)行的測(cè)試,普通的軟件測(cè)試的主要目的是:確保軟件不會(huì)去完成沒(méi)有預(yù)先設(shè)計(jì)的功能,確保軟件能夠完成預(yù)先設(shè)計(jì)的功能。但是,安全測(cè)試更有針對(duì)性同時(shí)可能采用一些和普通測(cè)試不一樣的測(cè)試手段,如攻擊和反攻擊技術(shù)。因此,實(shí)際上,安全測(cè)試實(shí)際上就是一輪多角度、全方位的攻擊和反攻擊,其目的就是要搶在攻擊者之前盡可能多地找到軟件中的漏洞.以減少軟件遭到攻擊的可能性。
2 計(jì)算機(jī)安全檢測(cè)技術(shù)主要內(nèi)容
安全測(cè)試基于軟件需求說(shuō)明書(shū)中關(guān)于安全性的功能需求說(shuō)明,測(cè)試的內(nèi)容主要是:軟件的安全功能實(shí)現(xiàn)是否與安全需求一致。通常情況下,軟件的安全需求包括:(1)數(shù)據(jù)保密和完整可用;(2)通信過(guò)程中的身份認(rèn)證、授權(quán)、訪問(wèn)控制;(3)通信方的不可抵賴;(4)隱私保護(hù)、安全管理;(5)軟件運(yùn)行過(guò)程中的安全漏洞;等等。
以一個(gè)Web網(wǎng)站為例。軟件安全測(cè)試和一般的測(cè)試具有很大的區(qū)別。一般測(cè)試主要是確定軟件的功能能否達(dá)到,如果沒(méi)有達(dá)到,就進(jìn)行修改,其任務(wù)具有一定的確定性。
但是,安全測(cè)試主要是檢查軟件所達(dá)到的功能是否安全可靠,需要證明的是軟件不會(huì)出現(xiàn)安全方面的問(wèn)題,如:數(shù)據(jù)篡改、非授權(quán)訪問(wèn)、遭受DOS攻擊等等。
3 軟件安全性測(cè)試的過(guò)程
軟件的安全測(cè)試,一般根據(jù)設(shè)計(jì)階段的威脅模型來(lái)實(shí)施。安全問(wèn)題,應(yīng)該從設(shè)計(jì)階段就開(kāi)始考慮,設(shè)計(jì)要盡可能完善。并提出了采用威脅建模的方法來(lái)在軟件設(shè)計(jì)階段加入安全因素的考量。威脅建模過(guò)程一般如下:(1)在項(xiàng)目組中成立一個(gè)小組,該小組中的人員是項(xiàng)目組中對(duì)安全問(wèn)題比較了解的人;(2)站在安全角度,分解系統(tǒng)的安全需求需求;(3)確定系統(tǒng)可能面臨的威脅,將威脅進(jìn)行分類,可以畫(huà)出威脅樹(shù);(4)選擇應(yīng)付威脅或者緩和威脅的方法;(5)確定最終解決這些威脅的技術(shù)。既然在設(shè)計(jì)階段,就將系統(tǒng)可能出現(xiàn)的一些安全問(wèn)題寫(xiě)在文檔里面了,因此,安全性測(cè)試也應(yīng)該是基于這些內(nèi)容。因此,軟件安全測(cè)試的過(guò)程可以分為以下幾個(gè)步驟:
3.1 基于前面設(shè)計(jì)階段制定的威脅模型,設(shè)計(jì)測(cè)試計(jì)劃
該過(guò)程一般基于威脅樹(shù),如下圖所示:測(cè)試計(jì)劃就可以基于口令安全所可能遭受的各個(gè)攻擊進(jìn)行制定。
3.2 將安全測(cè)試的最小組件單位進(jìn)行劃分,并確定組件的輸入格式
實(shí)際上,和傳統(tǒng)的測(cè)試不同,威脅模型中,并不是所有的模塊都會(huì)有安全問(wèn)題,因此,我們只需將需要安全測(cè)試的某一部分程序取出來(lái)進(jìn)行測(cè)試,將安全測(cè)試的最小組件單位進(jìn)行劃分。
此外,每個(gè)組件都提供了接口,也就是輸入,在測(cè)試階段,測(cè)試用例需要進(jìn)行輸入,這就必須將每個(gè)接口的輸入類型、輸入格式等都列出來(lái),便于測(cè)試用例的制定。這些輸入如:Socket數(shù)據(jù)、無(wú)線數(shù)據(jù)、命令行、語(yǔ)音設(shè)備、串口、HTTP提交等等。
3.3 根據(jù)各個(gè)接口可能遇到的威脅,或者系統(tǒng)的潛在漏洞,對(duì)接口進(jìn)行分級(jí)
在該步驟中,主要是確定系統(tǒng)將要受到的威脅的嚴(yán)重性,將比較嚴(yán)重的威脅進(jìn)行優(yōu)先的測(cè)試,這個(gè)嚴(yán)重性的判斷,應(yīng)該來(lái)源于威脅模型。
可以通過(guò)很多方法對(duì)接口受到的威脅性進(jìn)行分級(jí),例如用積分制方法,對(duì)各個(gè)接口可能受到的各種威脅進(jìn)行積分,最后累加,優(yōu)先測(cè)試那些分?jǐn)?shù)排在前面的接口。
3.4 確定輸入數(shù)據(jù),設(shè)計(jì)測(cè)試用例
每一個(gè)接口可以輸入的數(shù)據(jù)都不相同,由于安全測(cè)試不同于普通的測(cè)試,因此還要更加精心地設(shè)計(jì)測(cè)試用例。有時(shí)候還要精心設(shè)計(jì)輸入的數(shù)據(jù)結(jié)構(gòu),如隨機(jī)數(shù)、集合等的設(shè)計(jì),都要必須是為安全測(cè)試服務(wù)的。
在測(cè)試用例的設(shè)計(jì)過(guò)程中,必須要了解,安全測(cè)試實(shí)際上是對(duì)程序進(jìn)行的安全攻擊,因此,不但數(shù)據(jù)本身需要精心設(shè)計(jì),測(cè)試手段也要精心設(shè)計(jì)。如在對(duì)緩沖區(qū)溢出的測(cè)試中,必須精心設(shè)計(jì)各種輸入,從不同的方面來(lái)對(duì)程序進(jìn)行攻擊。
3.5 攻擊應(yīng)用程序,查看其效果
用設(shè)計(jì)的測(cè)試用例來(lái)攻擊應(yīng)用程序,使得系統(tǒng)處于一種受到威脅的狀態(tài),來(lái)得到輸出。
3.6 總結(jié)測(cè)試結(jié)果,提出解決方案
本過(guò)程中,將預(yù)期輸出和實(shí)際輸出進(jìn)行比較,得出結(jié)論,寫(xiě)出測(cè)試報(bào)告,最后提交相應(yīng)的人員,進(jìn)行錯(cuò)誤解決。
4 計(jì)算機(jī)自動(dòng)進(jìn)行測(cè)試的幾種方法
4.1 用形式化方法進(jìn)行安全測(cè)試
該方法用狀態(tài)遷移系統(tǒng)描述軟件的行為,將軟件的功能用計(jì)算邏輯和邏輯演算來(lái)表達(dá),通過(guò)邏輯上的推理和搜索,來(lái)發(fā)現(xiàn)軟件中的漏洞。
4.2 基于模型的安全功能測(cè)試
在該方法中,首先對(duì)軟件的結(jié)構(gòu)和功能進(jìn)行建模,生成測(cè)試模型,然后利用測(cè)試模型導(dǎo)出測(cè)試用例。該方法的成功與否,取決于建模的準(zhǔn)確性,對(duì)身份認(rèn)證、訪問(wèn)控制等情況下安全測(cè)試比較適用。常用模型有:UML模型、馬爾可夫鏈模型等等。
4.3 基于輸入語(yǔ)法進(jìn)行測(cè)試
接口的輸入語(yǔ)法,定義了軟件接受的輸入數(shù)據(jù)的類型、格式等。該類方法中,首先提取被測(cè)接口的輸入語(yǔ)法,如命令行、文件、環(huán)境變量、套接字,然后根據(jù)這些語(yǔ)法,生成測(cè)試用例。此類測(cè)試方法比較適用于被測(cè)軟件有較明確的接口語(yǔ)法的情況,范圍較窄。
4.4 采用隨機(jī)方法進(jìn)行測(cè)試
該方法又稱為模糊測(cè)試,將隨機(jī)的不合法數(shù)據(jù)輸入到程序中,有時(shí)候能夠發(fā)現(xiàn)一些意想不到的錯(cuò)誤,在安全性測(cè)試中越來(lái)越受到重視。軟件測(cè)試本來(lái)是軟件工程中研究比較活躍的一個(gè)分支,針對(duì)安全測(cè)試的研究也受到較多學(xué)者的重視。
參考文獻(xiàn)
[1]趙妍.計(jì)算機(jī)軟件安全檢測(cè)方法探討[J].科技傳播,2010(8).
[2]朱巖.淺析計(jì)算機(jī)軟件安全檢測(cè)存在問(wèn)題及方法[J].科技創(chuàng)新與應(yīng)用,2012(6).
[3]潘博.淺談?dòng)?jì)算機(jī)軟件安全檢測(cè)方法[J].電腦知識(shí)與技術(shù),2013(5).
作者簡(jiǎn)介:張靜波(1979-),女,漢族,遼寧省錦州市人,本科,主要研究方向:計(jì)算機(jī)科學(xué)與技術(shù),職稱:講師。