- 相關(guān)推薦
計算機(jī)軟件安全檢測存在的問題及方法綜述論文
計算機(jī)軟件安全檢測主要是進(jìn)行計算機(jī)軟件漏洞的檢測,計算機(jī)軟件漏洞的檢測主要針對軟件可能存在的缺陷且該缺陷有可能導(dǎo)致軟件在應(yīng)用中存在一定的風(fēng)險。由于軟件安全檢測對于軟件開發(fā)工作是極為重要的過程,對軟件安全檢測工作也是需要相應(yīng)地高度重視。
1 計算機(jī)軟件安全檢測
計算機(jī)軟件安全檢測是利用運行程序的方式來發(fā)現(xiàn)軟件編寫過程中存在的一些漏洞并對漏洞進(jìn)行修改的過程,從而對計算機(jī)軟件本身可能存在的風(fēng)險進(jìn)行有效地避免和改正,軟件安全檢測是軟件開發(fā)中及其重要的一環(huán)。軟件安全檢測所需要達(dá)到的目標(biāo)是用更少的測試過程來實現(xiàn)更大的軟件安全覆蓋面,達(dá)到高效快速地發(fā)現(xiàn)軟件漏洞。目前網(wǎng)絡(luò)中存在很多種對計算機(jī)軟件安全檢查的方法,但從本質(zhì)上看,進(jìn)行計算機(jī)軟件安全測試的方法主要兩大類。大部分檢測方案都是基于靜態(tài)檢測和動態(tài)監(jiān)測兩大類檢測方法。
2 進(jìn)行軟件安全檢測的意義
計算機(jī)軟件的安全檢測過程是整個軟件開發(fā)中極為重要的一個步驟,越早發(fā)現(xiàn)軟件中可能存在的一些故障問題,就意味著越早解決問題,就能將軟件出現(xiàn)問題的概率降到最低,有效地預(yù)防軟件崩潰。而計算機(jī)軟件的安全檢測則主要是對軟件中可能留存的一些漏洞進(jìn)行測試,以免該漏洞在今后的日常使用中致使軟件出現(xiàn)故障,因此,對計算機(jī)軟件的安全進(jìn)行檢測是很有必要性的。
3 軟件安全檢測存在的問題
3.1軟件安全檢測人員涉及廣泛
由于計算機(jī)軟件的相關(guān)特性,軟件安全檢測工作涉及的方面廣泛,所需要的檢測人員及技術(shù)的要求也就對應(yīng)地提高,需要各方面的技術(shù)人才。對于檢測人員的多元化問題就極為重要,不僅人員要齊,各方面的合作也要密切。只有多部門的密切合作以及與軟件開發(fā)相關(guān)部門的密切溝通,才能高效的解決軟件檢測中出現(xiàn)的各種疑難問題。如果沒有密切的合作,在軟件安全檢測中,各自為戰(zhàn),沒有有效的溝通,不能從實際出發(fā),軟件安全檢測將無法順利進(jìn)行下去,即使發(fā)現(xiàn)問題也沒有有效的辦法解決問題。
3.2軟件安全檢測工作量巨大
計算機(jī)檢測是一個系統(tǒng)的復(fù)雜的過程,有時候檢測工作量巨大。在進(jìn)行對于系統(tǒng)級軟件或者代碼級工程的分析工作時,進(jìn)行軟件安全相關(guān)檢測必須需要進(jìn)行大量的工作的。不僅如此,在所需檢測的軟件的規(guī)模較大的時候,還要對軟件的結(jié)構(gòu)設(shè)計方面進(jìn)行必要的分析。而且在對所需檢測的軟件的各個方面進(jìn)行分析的過程中一般采用仿真環(huán)境和相應(yīng)的分析工具來進(jìn)行相關(guān)的檢測工作,因為這兩種分析比較切合實際工作,較為合理,所以這些分析工作都是必須進(jìn)行的,這些必須進(jìn)行的工作會大大增加軟件安全檢測過程的工作量。
4 軟件檢測問題解決方法
4.1在對軟件進(jìn)行綜合分析的基礎(chǔ)上進(jìn)行檢測
檢測人員在進(jìn)行軟件安全檢測的工作時,必須考慮到每個軟件都有其獨一性,每個軟件都有不同的側(cè)重點,只有在對軟件進(jìn)行系統(tǒng)化的綜合分析的基礎(chǔ)上,才能高效的制定符合該軟件的有效檢測方案,只有合適的才是最好的,在進(jìn)行綜合分析時還應(yīng)考慮到符合用戶需求,這樣實行的檢測程序才是最為可靠的。
4.2大力推廣檢測人員多元化
由于軟件安全檢測工作涉及范圍大,需要的檢測人員的技術(shù)方面也不盡相同。所以需要推廣人員多元化需要在進(jìn)行軟件安全檢測時注意安排相近但不完全相同的人員在一起。大力推廣檢測人員的多元化,對于軟件可能存在的安全問題能夠更可能的發(fā)現(xiàn),并且由于檢測人員的多元化,對于出現(xiàn)的問題得以解決的可能性也會增加。在推廣多元化的同時,也需要注意各部門之間的合作問題,集中優(yōu)勢技術(shù)人才,加以密切的合作,將專業(yè)技術(shù)人才的潛力發(fā)揮到極致。多元化的人員和密切化的合作能夠到達(dá)檢測工作的事半功倍,提高軟件安全檢測效率。
4.3選擇合理的安全檢測方法
對于大量種類不同;用戶需求也不同的軟件,檢測人員需要選擇合理的檢測方法。對于有些系統(tǒng)級軟件和代碼級工程,如果采用了不符合要求的檢測方法,有可能造成工作白費,耗費大量人工精力和大量資源及時間,最后所得的結(jié)果有可能不符人意。沒有一個能夠符合所有軟件檢測工作要求的安全檢測方法,只有選擇合適的檢測方法,才能達(dá)到預(yù)定的目標(biāo)。軟件的安全檢測是系統(tǒng)化的一個過程,要解決整個系統(tǒng)內(nèi)全部的安全問題,普通的方法是十分困難的,故進(jìn)行具體的安全檢測時,如何選擇有效的、具有可行性的方案,是軟件檢測員必須認(rèn)真思考的問題。
總體來說,合理地利用安全檢測方法,在最短時間內(nèi)有效的找出漏洞,及時進(jìn)行修改。以下對于幾種方案進(jìn)行簡要地介紹:
1)安全檢測方式實行形式化。安全檢測方式的形式化,是指通過在需檢測軟件之上建立科學(xué)模型來檢測的。其在確立相應(yīng)模型后,在規(guī)范的形式語言支持下做出形式性規(guī)格說明。當(dāng)前主要運用的形式規(guī)則語言主要有行為語言和模型語言以及有效狀態(tài)語言等。手段也主要分為模型檢測及定理證明等方式。
2)實行以模型為基礎(chǔ)的檢測方式。使用結(jié)構(gòu)建模方式及軟件行為構(gòu)建測試模型,以達(dá)到預(yù)期的理想檢測效果。以模型為基礎(chǔ)的檢測過程并不苛求軟件在各種具體情況下的一致性,其主要通過一些生成的試用例來測評的,并通過測查被測軟件系統(tǒng)與理想模型結(jié)果是否相同來進(jìn)行安全檢測的。
3)模糊檢測
當(dāng)今采用的模糊檢測是在傳統(tǒng)檢測技術(shù)上進(jìn)行改進(jìn)的檢測技術(shù),其主要是在白盒技術(shù)上發(fā)展改進(jìn)的檢測技術(shù),有效地繼承了模糊測試和動態(tài)測試的優(yōu)點,具有準(zhǔn)確高效的特點。
4)基于故障注入的安全性測試
故障樹的建立工作是該安全檢測方法的基本。此方法將系統(tǒng)發(fā)生故障幾率最小的時間作為頂事件,在此基礎(chǔ)上在進(jìn)行中間事件、底事件的尋找工作,利用邏輯門符號再將頂事件、中間事件與底事件進(jìn)行連接,完成形成故障樹的工作。在保證精度的條件下,此方法可以實現(xiàn)故障檢測的自動化,實現(xiàn)檢測的高效性。
5)基于屬性的測試
基于屬性的檢測工作首先要完成確定軟件的安全編程規(guī)則工作,再進(jìn)行檢測待測程序的代碼是否都遵守其確定的規(guī)則編碼,采用這種方法能夠有效地分析安全漏洞。另外,近年大量分布式軟件快速發(fā)展就是基于web服務(wù)的快速發(fā)展,如何利用好web服務(wù)的優(yōu)勢,將很大程度上取決于如何合理完成這些軟件的安全檢測工作。而基于web服務(wù)的軟件的安全檢測也將是適用于基于屬性的測試方法中的一項重要部分,高效的完成確定軟件的安全編程規(guī)則工作,也就將檢測工作完成了一大步。
7)運用語言測試技術(shù)。在靜態(tài)檢測技術(shù)中最早出現(xiàn)的檢測方法就是語言檢測技術(shù),它所檢測的對象是軟件程序的源代碼及可能產(chǎn)生威脅的C語言函數(shù)庫調(diào)用,語言檢測常用的方式是進(jìn)行對反應(yīng)的研究,其過程通常是進(jìn)行軟件接口的語言識別,再進(jìn)行語法的定義,直至生成試用例來實際進(jìn)行安全檢測。
8)以故障注入技術(shù)為基礎(chǔ)。如果想要檢測的比較全面,則可以用基于故障自如的安全測試。這種方式運用故障分析樹以產(chǎn)生用于檢測的試用實例來進(jìn)行檢測。故障分析樹指的是把系統(tǒng)中出現(xiàn)可能最低的事件作為頂事件,再通過仔細(xì)檢測來找出事故發(fā)生過程中的中間事件及底事件。以邏輯門符號,將項事件和中間事件以及底事件連成完整的一棵故障樹的方式。
5 結(jié)束語
軟件安全檢測是重要的一環(huán)軟件開發(fā)工作,合理利用安全檢測,做到軟件潛在漏洞的早發(fā)現(xiàn)、早修正、早解決,有效地避免軟件出現(xiàn)故障的惡性后果。隨著計算機(jī)技術(shù)的發(fā)展,對于軟件安全的重要性也在增加,進(jìn)行軟件安全檢測的必要性也在增加。對于研究軟件安全檢測的方法具有重要意義和廣闊前景。