顏漢權(quán)
摘 要:模糊器測試框架是一種通用的數(shù)據(jù)庫,可以對(duì)各種不同的試驗(yàn)對(duì)象進(jìn)行歸納。本文對(duì)模糊測試的流程進(jìn)行了介紹,重點(diǎn)分析了在軟件漏洞檢測中的模糊測試方法,提出了軟件漏洞檢測中的模糊測試內(nèi)容,以便更好的用于軟件漏洞檢測中。
關(guān)鍵詞:模糊測試;軟件漏洞;檢測
1.模糊測試流程
(1)確定測試的對(duì)象和輸入的矢量。模糊測試是針對(duì)確定的程序進(jìn)行的檢測技術(shù),因此,在進(jìn)行模糊測試之前要先確定好需要測試的程序。一般來說,漏洞的產(chǎn)生絕大多數(shù)是由用戶直接或間接造成的,有可能是因?yàn)榻邮盏囊恍┬畔?,也有可能是錯(cuò)誤運(yùn)行了程序。所以,一定要確定好輸入的微量,這是影響到測試結(jié)果的關(guān)鍵步驟。
(2)生成模糊測試數(shù)據(jù)。在確定了程序和輸入矢量之后,就可以生成測試數(shù)據(jù),然后由系統(tǒng)根據(jù)數(shù)據(jù)自動(dòng)選擇測試數(shù)據(jù)方式。
(3)執(zhí)行模糊測試數(shù)據(jù)。這一步會(huì)與上一步生成測試數(shù)據(jù)并行進(jìn)行,執(zhí)行過程一般包括啟動(dòng)目標(biāo)程序、發(fā)送測試數(shù)據(jù)到目標(biāo)程序等。同樣,在這個(gè)過程中實(shí)現(xiàn)自動(dòng)化也是必需的和十分重要的。
(4)監(jiān)測異常。在進(jìn)行模糊測試的時(shí)候,一定要注意監(jiān)測異常。如果不能對(duì)檢測過程中的異常進(jìn)行監(jiān)測并加以分析,可能會(huì)導(dǎo)致服務(wù)器崩潰,那么就影響了檢測的準(zhǔn)確性。監(jiān)測還能對(duì)源數(shù)據(jù)進(jìn)行分析,從而發(fā)現(xiàn)其中存在的未被發(fā)現(xiàn)的異常。
(5)確定可利用性。一旦檢測到異常,首先應(yīng)該查找異常出現(xiàn)的地方,然后分析其原因,解決異常。這些步驟就需要手工來完成,而且也需要具備豐富的知識(shí)。
2.模糊測試方法
模糊器主要分為基于變異的模糊器和基于生成的模糊器兩種,基于變異的模糊器主要是對(duì)已有的數(shù)據(jù)進(jìn)行改變來創(chuàng)建測試用例,基于生成的模糊器是指通過協(xié)議或者文件格式來進(jìn)行變異,從而創(chuàng)建測試用例。同時(shí),我們還可以把模糊測試方法分成以下 4 類。
(1)預(yù)生成測試用例。這種方法要求在使用前對(duì)測試對(duì)象的相關(guān)數(shù)據(jù)進(jìn)行分析,因此,這用這種方法進(jìn)行測試之前需要進(jìn)行大量的工作,這可能在一定程度上延長了檢測時(shí)間。這種方法沒有引用隨機(jī)制,因此不能生成很多的測試?yán)印?/p>
(2)隨機(jī)方法。這種方法是效率最低的,正是由于它的隨機(jī)性,使得它不能全面地對(duì)軟件進(jìn)行測試。不過這種方法可以快速地發(fā)現(xiàn)漏洞,但是具有較大的運(yùn)氣成分。對(duì)一個(gè)比較大的數(shù)據(jù)包,不推薦采用這種方法,因?yàn)檫@種方法有一定的不可靠性,用這種方法對(duì)較大的數(shù)據(jù)包進(jìn)行檢測,就會(huì)使檢測時(shí)間變得很長,不利用接下來的工作,影響了檢測效率。
(3)人工協(xié)議變異測試。這種方法一般是用于測試Web應(yīng)用軟件的。這種方法依靠經(jīng)驗(yàn)的成分比較高,因此,它需要對(duì)經(jīng)驗(yàn)進(jìn)行總結(jié)并記錄存檔。其實(shí)這就是通過人工輸入數(shù)據(jù)來找出漏洞的,因此,它比隨機(jī)方法還要簡單,但是自動(dòng)化不強(qiáng)。
(4)自動(dòng)化變異或暴力測試。這種方法具有一定的強(qiáng)制性,因?yàn)樗軌驈?qiáng)制代碼覆蓋在測試結(jié)果為良好的程序上,然后再進(jìn)行檢測。但是,這種方法的檢測效率是比較低的,因?yàn)樵跈z測過程中,系統(tǒng)會(huì)處理很多根本無效的數(shù)據(jù),這樣就會(huì)延長測試時(shí)間,拖慢進(jìn)度。不過,這種方法在這些問題上還是有一定的緩解能力的,因?yàn)檫@種方法是可以全程利用自動(dòng)化的原理的。
3.模糊器類型
(1)本地模糊器。命令行參數(shù)和環(huán)境變量是將變量引入到程序中的兩種最基本的方式,因而針對(duì) setuid應(yīng)用程序的模糊器可分為兩類:命令行參數(shù)模糊器和環(huán)境變量模糊器。還有一類本地模糊器是文件格式模糊器。很多應(yīng)用程序在處理畸形文件時(shí)可能會(huì)出現(xiàn)異常,這就需要文件格式模糊器來參與監(jiān)測。其中,瀏覽器模糊器是一種特殊的文件格式模糊器,它通常利用HTML的功能來實(shí)現(xiàn)模糊測試過程的自動(dòng)化。
(2)遠(yuǎn)程模糊器。遠(yuǎn)程模糊器的測試對(duì)象為基于網(wǎng)絡(luò)的應(yīng)用程序,諸如各類服務(wù)器軟件。這類應(yīng)用程序一直以來都是模糊測試最重要的測試對(duì)象。遠(yuǎn)程模糊器主要包括網(wǎng)絡(luò)協(xié)議模糊器和 Web 應(yīng)用程序模糊器。網(wǎng)絡(luò)協(xié)議模糊器被分為兩類:以簡單協(xié)議為測試對(duì)象的模糊器和以復(fù)雜協(xié)議為測試對(duì)象的模糊器。Web 應(yīng)用程序模糊器已經(jīng)成為訪問后端服務(wù)的一種流行方式,這些后端服務(wù)包括電子郵件等網(wǎng)絡(luò)服務(wù)。
(3)模糊器框架。模糊器測試框架實(shí)際上就是通用的數(shù)據(jù)庫,可對(duì)于各種不同的試驗(yàn)對(duì)象進(jìn)行歸納統(tǒng)計(jì),因此,可運(yùn)用的范圍和領(lǐng)域較廣,能夠針對(duì)不同的類型目標(biāo)進(jìn)行分析。
參考文獻(xiàn):
[1]夏一民,羅 軍,張民選.基于靜態(tài)分析的安全漏洞檢測技術(shù)研究[J].計(jì)算機(jī)科學(xué),2006(10).
[2]李永華,竇春鐵.談?dòng)?jì)算機(jī)安全漏洞動(dòng)態(tài)檢測的原理方法與實(shí)踐[J].數(shù)字技術(shù)與應(yīng)用,2010(07).
(作者單位:惠州市廣播電視大學(xué))