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