摘要:計(jì)算機(jī)軟件安全檢測(cè)技術(shù)是計(jì)算軟件安全的基礎(chǔ),它可以根據(jù)有關(guān)指標(biāo)對(duì)計(jì)算機(jī)軟件進(jìn)行安全測(cè)試,并有效識(shí)別其中存在的安全隱患。本文將對(duì)當(dāng)前計(jì)算機(jī)軟件安全檢測(cè)技術(shù)做簡(jiǎn)要分析,希望對(duì)提高我國(guó)計(jì)算機(jī)軟件的安全性有所幫助。
關(guān)鍵詞:計(jì)算機(jī)軟件;安全檢測(cè)技術(shù);檢測(cè)方法
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 17-0000-02
隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,各種計(jì)算機(jī)軟件應(yīng)用已經(jīng)深入到人們生活工作的方方面面,成為人們生活和工作中不可或缺的工具。不過(guò)各種計(jì)算機(jī)軟件安全問(wèn)題也隨著它們的發(fā)展而變得越來(lái)越復(fù)雜,其中計(jì)算機(jī)軟件的安全是計(jì)算機(jī)和網(wǎng)絡(luò)安全的基礎(chǔ),因此,要想保證整個(gè)計(jì)算機(jī)網(wǎng)絡(luò)的安全,必須做好計(jì)算機(jī)軟件的安全檢測(cè)工作。
1 計(jì)算機(jī)軟件安全檢測(cè)簡(jiǎn)介
軟件的安全性是軟件質(zhì)量的一個(gè)重要指標(biāo),因此,對(duì)計(jì)算機(jī)軟件的安全進(jìn)行檢測(cè)也是軟件開(kāi)發(fā)中的重要一環(huán)。它能夠及時(shí)發(fā)現(xiàn)計(jì)算機(jī)軟件中存在的各種故障,并對(duì)計(jì)算機(jī)軟件做出必要的修補(bǔ),從而有效降低軟件風(fēng)險(xiǎn)。通過(guò)使用盡量少的測(cè)試用例,以保證盡可能大的軟件檢測(cè)覆蓋范圍,發(fā)現(xiàn)盡可能多的問(wèn)題,并進(jìn)行更正是計(jì)算機(jī)軟件檢測(cè)的目標(biāo),但計(jì)算軟件安全檢測(cè)并不代表能夠保證計(jì)算機(jī)軟件沒(méi)有錯(cuò)誤和安全隱患,它僅僅是一種通過(guò)檢查計(jì)算機(jī)軟件中的錯(cuò)誤和軟件對(duì)各種非法入侵的防范能力來(lái)提高軟件安全性的一種方法。同時(shí),計(jì)算機(jī)軟件安全檢測(cè)也是對(duì)計(jì)算機(jī)安全實(shí)現(xiàn)是否能夠達(dá)到預(yù)期設(shè)計(jì)的一種過(guò)程。這一過(guò)程包括對(duì)計(jì)算機(jī)軟件的功能測(cè)試、滲透測(cè)試和驗(yàn)證測(cè)試3個(gè)過(guò)程,與其它軟件缺陷測(cè)試相比,它具有如下不同點(diǎn):首先,軟件測(cè)試內(nèi)容不一樣,安全檢測(cè)通常是檢測(cè)計(jì)算機(jī)軟件安全漏洞檢測(cè)和軟件安全功能檢測(cè),軟件安全漏洞檢測(cè)是主要針對(duì)計(jì)算機(jī)軟件可能存在的安全缺陷,以及該缺陷可能導(dǎo)致的安全風(fēng)險(xiǎn)。計(jì)算機(jī)軟件安全功能檢測(cè)是檢測(cè)計(jì)算機(jī)軟件安全功能是否滿足用戶對(duì)軟件安全的需要,檢測(cè)的內(nèi)容主要包括對(duì)計(jì)算機(jī)的機(jī)密性、授權(quán)、訪問(wèn)控制和安全管理等。其次,危害程度不同,一般的計(jì)算機(jī)軟件缺陷,并不能給用戶帶來(lái)安全問(wèn)題,而計(jì)算機(jī)軟件安全缺陷一旦被發(fā)現(xiàn),很可能給用戶帶來(lái)嚴(yán)重的安全隱患,甚至引發(fā)嚴(yán)重的系統(tǒng)安全風(fēng)險(xiǎn)。第三,軟件的修復(fù)方式不同,計(jì)算機(jī)軟件安全缺陷一旦發(fā)現(xiàn),就必須馬上采取相應(yīng)的安全措施,例如,打補(bǔ)丁,升級(jí)軟件等。而對(duì)于一般的軟件問(wèn)題,可以在下一個(gè)版本中進(jìn)行修復(fù)。
2 計(jì)算機(jī)軟件錯(cuò)誤類型、來(lái)源和檢測(cè)方法
計(jì)算機(jī)安全是一個(gè)非常復(fù)雜的系統(tǒng),它主要通過(guò)信息系統(tǒng)的保密性、完整性和可用性來(lái)保證計(jì)算機(jī)軟件的安全??捎?jì)算機(jī)軟件在日常的運(yùn)行中,由于操作配置失誤和安全缺陷等原因,致使計(jì)算機(jī)軟件從計(jì)算機(jī)底層操作系統(tǒng)到上級(jí)應(yīng)用程序、從系統(tǒng)配置管理到用戶操作,從通信基礎(chǔ)設(shè)施到網(wǎng)絡(luò)上層應(yīng)用服務(wù),都存在著安全隱患。因此,這些隱患主要分兩種,一種是自身配置錯(cuò)誤,一種是軟件缺陷造成。其中,系統(tǒng)配置錯(cuò)誤是由于軟件供應(yīng)商和系統(tǒng)管理員在定義訪問(wèn)控制規(guī)則時(shí)出現(xiàn)錯(cuò)誤造成的。軟件缺陷又有基本軟件缺陷和無(wú)關(guān)軟件缺陷兩種,基本軟件缺陷是與軟件安全有關(guān)的錯(cuò)誤,無(wú)關(guān)軟件安全錯(cuò)誤是指一種與軟件安全無(wú)關(guān)的程序中存在軟件缺陷,缺陷發(fā)生后,影響到系統(tǒng)的安全性,配置和軟件錯(cuò)誤造成各種系統(tǒng)和軟件漏洞被發(fā)現(xiàn),從而導(dǎo)致軟件不斷被攻擊,供應(yīng)商在為這些漏洞打補(bǔ)丁時(shí),又會(huì)將新的漏洞打入系統(tǒng)中,形成惡性循環(huán),廣泛影響到其它產(chǎn)品。當(dāng)前比較常用的安全檢測(cè)方法有靜態(tài)檢測(cè)法、動(dòng)態(tài)監(jiān)測(cè)法、混合檢測(cè)法和語(yǔ)法檢測(cè)法。
3 計(jì)算機(jī)軟件安全檢測(cè)技術(shù)探究
當(dāng)前常用的計(jì)算機(jī)軟件安全檢測(cè)技術(shù)有以下幾種:語(yǔ)法檢測(cè)技術(shù),靜態(tài)檢測(cè)技術(shù),動(dòng)態(tài)檢測(cè)技術(shù),混合檢測(cè)技術(shù),基于web服務(wù)的分布式軟件安全性能檢測(cè)技術(shù)。
3.1 語(yǔ)法檢測(cè)檢測(cè)技術(shù)
語(yǔ)法檢測(cè)技術(shù)是基于語(yǔ)法對(duì)被檢測(cè)軟件功能接口的語(yǔ)法生成軟件進(jìn)行輸入測(cè)試,測(cè)試軟件在不同輸入條件下,產(chǎn)生不同類型的反應(yīng)。一般它僅僅檢測(cè)源程序中有危險(xiǎn)的C語(yǔ)言庫(kù)函數(shù)和系統(tǒng)調(diào)用,并通過(guò)對(duì)軟件接口語(yǔ)言的識(shí)別,定義語(yǔ)言的語(yǔ)法,以及在以語(yǔ)法為基礎(chǔ)生產(chǎn)測(cè)試用例,同時(shí)執(zhí)行安全檢測(cè)。
3.2 靜態(tài)檢測(cè)技術(shù)
靜態(tài)檢測(cè)技術(shù)是從程序代碼的內(nèi)部結(jié)構(gòu)和特性上進(jìn)行檢測(cè)的一種安全檢測(cè)技術(shù),它通過(guò)結(jié)構(gòu)建模和軟件行為的方法來(lái)構(gòu)造測(cè)試模型,以滿足機(jī)器對(duì)模型的可讀性,模型的安全檢測(cè)方式是系統(tǒng)化的從模型生成一組測(cè)試用例,并利用這組測(cè)試用例,來(lái)測(cè)軟件系統(tǒng),進(jìn)而得到充分的證據(jù)來(lái)說(shuō)明待測(cè)系統(tǒng)的行為與模型期望是一致的,當(dāng)前常用的檢測(cè)方法有馬爾科夫鎖鏈和有限狀態(tài)機(jī)兩種,隨著靜態(tài)檢測(cè)技術(shù)的發(fā)展,現(xiàn)在靜態(tài)檢測(cè)技術(shù)主要有以下種類:詞法分析技術(shù),規(guī)則檢查技術(shù)和類型推導(dǎo)技術(shù)。
3.3 動(dòng)態(tài)檢測(cè)技術(shù)
動(dòng)態(tài)檢測(cè)技術(shù)是對(duì)計(jì)算機(jī)軟件運(yùn)行過(guò)重的運(yùn)行環(huán)境變量例如堆、棧、內(nèi)存和環(huán)境變量等進(jìn)行分析,以檢測(cè)軟件是否存在的漏洞或其它缺陷。動(dòng)態(tài)監(jiān)測(cè)技術(shù)不需要對(duì)軟件的源碼和二進(jìn)制代碼做修改,進(jìn)而提高了軟件的保密性。當(dāng)前常用軟件檢測(cè)方法包括沙箱技術(shù)、程序解釋技術(shù)、安全共享庫(kù)技術(shù)、內(nèi)存映射技術(shù)、非執(zhí)行堆與數(shù)據(jù)技術(shù)、非執(zhí)行棧技術(shù)等。
3.4 混合檢測(cè)技術(shù)
混合檢測(cè)技術(shù)是計(jì)算機(jī)靜態(tài)檢測(cè)技術(shù)和動(dòng)態(tài)檢測(cè)技術(shù)相結(jié)合的一種檢測(cè)技術(shù),它克服了靜態(tài)檢測(cè)技術(shù)和動(dòng)態(tài)監(jiān)測(cè)技術(shù)的一些缺點(diǎn),可以更好地對(duì)計(jì)算機(jī)軟件安全進(jìn)行檢測(cè)。當(dāng)前主要的檢測(cè)技術(shù)包括測(cè)試庫(kù)技術(shù)、二進(jìn)制代碼改編技術(shù)、棧保護(hù)編譯擴(kuò)展技術(shù)、基于規(guī)范的檢測(cè)技術(shù)、基于異常的檢測(cè)技術(shù)等。它在一定程度上提高了檢測(cè)的準(zhǔn)確性,給軟件漏洞檢測(cè)技術(shù)提出了更多的研究方向。
3.5 基于web服務(wù)的分布式軟件安全性能檢測(cè)技術(shù)
近年來(lái),隨著web技術(shù)的高速發(fā)展和廣泛應(yīng)用,一項(xiàng)基于web服務(wù)的分布式軟件安全性能檢測(cè)技術(shù)也隨之發(fā)展起來(lái),它是一種基于識(shí)別內(nèi)容的分布式Web服務(wù)器技術(shù),它具有松散耦合、語(yǔ)言中立和平臺(tái)無(wú)關(guān)、互操作性強(qiáng)的優(yōu)點(diǎn),能夠?qū)?fù)雜的安全功能分解為7類原子安全處理類型,以使其能夠更有效地適應(yīng)復(fù)雜安全性能測(cè)試的需要,并采用故障注入機(jī)制來(lái)生成錯(cuò)誤的soap消息使其支持異常測(cè)試,據(jù)近年來(lái)的實(shí)驗(yàn)結(jié)果顯示,此種方法具有靈活性、高效性和先進(jìn)性的特點(diǎn),它能夠?qū)浖娜蒎e(cuò)性、可靠性和安全性進(jìn)行測(cè)試。
4 計(jì)算機(jī)軟件安全檢測(cè)注意事項(xiàng)
計(jì)算機(jī)軟件安全檢測(cè)的過(guò)程是一個(gè)動(dòng)態(tài)的檢測(cè)過(guò)程,在軟件的安全檢測(cè)過(guò)程中應(yīng)注意以下兩個(gè)問(wèn)題。首先,要選擇合理有效的軟件安全檢測(cè)方案。在充分了解、掌握該計(jì)算機(jī)軟件的要求及特性的基礎(chǔ)上,根據(jù)測(cè)試的具體情況選用合理的檢測(cè)手段,并編制出相應(yīng)的安全檢測(cè)方案。以確保安全檢測(cè)方案實(shí)施的有效性。其次,在對(duì)計(jì)算機(jī)軟件的安全性進(jìn)行檢測(cè)時(shí),既要有計(jì)算機(jī)軟件安全測(cè)試分析人員,還要有掌握該軟件特點(diǎn)及使用方法的設(shè)計(jì)人員參與,只有保證該軟件相關(guān)的技術(shù)人員之間的密切配合,才能有效保證計(jì)算機(jī)軟件性能安全性的理想效果。第三,在對(duì)計(jì)算機(jī)軟件進(jìn)行安全檢測(cè)時(shí),一定要做到全面分析,分別從代碼級(jí)、系統(tǒng)級(jí)和需求級(jí)的細(xì)致分析,并根據(jù)實(shí)際需要在不同層級(jí)上需用不同的技術(shù)方法,以保證分析結(jié)果的正確性。以上三項(xiàng)是選好計(jì)算機(jī)軟件技術(shù),做好計(jì)算機(jī)軟件安全的重要保障。
5 總結(jié)
計(jì)算機(jī)軟件安全檢測(cè)技術(shù)是保證計(jì)算機(jī)和網(wǎng)絡(luò)安全的一項(xiàng)基礎(chǔ)工作,必須不斷加強(qiáng)對(duì)相應(yīng)技術(shù)的研究,以保證計(jì)算機(jī)軟件的安全,為計(jì)算機(jī)軟件未來(lái)的發(fā)展奠定良好的基礎(chǔ)。
參考文獻(xiàn):
[1]周寬久,鄭紅波,賴曉晨.軟件安全缺陷檢測(cè)技術(shù)最新研究進(jìn)展綜述[J].計(jì)算機(jī)工程與應(yīng)用,2010(28).
[2]耿曉菊,王斐,陸建德.Geng Xiaoju,Wang Fei,Lu Jiande. 一種基于Netlink和Libipq實(shí)現(xiàn)安全模塊聯(lián)動(dòng)的設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用與軟件,2010(05).
[3]段艷超.軟件安全漏洞自動(dòng)化識(shí)別原理評(píng)析[J].中國(guó)科技博覽,2009(11).
[4]周寬久,鄭紅波,劉春燕.ZHOU Kuan-jiu.ZHENG Hong-bo. LIU Chun-yan.基于XML的軟件安全靜態(tài)檢測(cè)方法研究[J].計(jì)算機(jī)工程與應(yīng)用,2010(28).
[5]顧濱兵.GU Binbing. 一種軟件模型檢測(cè)方法及其原型系統(tǒng)[J].微計(jì)算機(jī)應(yīng)用,2010(11).
[6]李永華,竇春軼.談?dòng)?jì)算機(jī)安全漏洞動(dòng)態(tài)檢測(cè)的原理方法與實(shí)踐[J].數(shù)字技術(shù)與應(yīng)用,2010(07).