影響模糊測試效果的一些關鍵因素有:
測試點:由于模糊測試是通過數(shù)據(jù)通道的,所以測試點一般會選擇數(shù)據(jù)通道的入口點或者可信邊界點,如網(wǎng)絡端口和協(xié)議,外部傳人文件和文件類型,RPC請求端口。
樣本選擇:模糊測試的效果與覆蓋能力,與樣本選擇的好壞極其相關,實施模糊測試必須依據(jù)上面的測試流程,分析和選擇覆蓋面廣,便于測試的多個樣本來保證測試的效果。
數(shù)據(jù)關聯(lián)性:由于模糊測試對數(shù)據(jù)的變異依賴于安全經(jīng)驗,對數(shù)據(jù)含義并不了解,所以如果一個樣本是數(shù)據(jù)關聯(lián)的,模糊測試由于無法同步這種關聯(lián),導致生成的樣本都成為無效樣本,在程序預處理之前就判斷為不合格不再繼續(xù),這樣就達不到測試的效果。數(shù)據(jù)存在關聯(lián)性的軟件和程序并不適合采用模糊測試,現(xiàn)在有一些替代的技術,如智禽%模糊測試,允許用戶描述數(shù)據(jù)結(jié)構(gòu)的關聯(lián)性,以輔助生成符合關聯(lián)規(guī)則的測試樣本。
自動化框架:實現(xiàn)無人值守自動化測試和記錄,是提高黑盒安全測試禽邑力的關鍵。黑盒安全測試依靠大量的異常樣本來進行測試,靠機器替代部分人力來發(fā)現(xiàn)安全問題,實現(xiàn)無人值守自動化測試和記錄就是必須的組件。幾乎所有的黑盒安全測試都支持自動化框架,以及行為錄入回放的功能,以便更好的實施自動化測試。
異常監(jiān)控與異?;謴停喊l(fā)現(xiàn)異常的能力是發(fā)現(xiàn)漏洞的前提。目前大多數(shù)黑盒安全測試工具只支持對程序崩潰異常的發(fā)現(xiàn),其實這是遠遠不夠的,很多異常并不直接表現(xiàn)為程序的崩潰,如VISTA/WIN7下的堆溢出,受GS保護的堆棧溢出,資源消耗型拒絕服務等。好的黑盒模糊測試工具需要對更多地異常進行監(jiān)控。此外,為保障安全測試的效果和自動化過程,除了對于發(fā)現(xiàn)的異常進行現(xiàn)場保護記錄外, 還需要恢復異常狀態(tài)以進行后續(xù)的測試,并保證準人工分析異常原因,判斷是否為潛在的安全漏洞,如果是安全漏洞,就需要進一步分析其危害性、影響范圍、修復建議,以及臨時防范措施。 由于可能產(chǎn)生大量的異常報告,通過一些輔助分析工具,如同源異常歸并等,可以有效的節(jié)省人工分析的成本。