內存模糊測試有下列優點:
快速:這種方法不僅不需要網絡帶寬,甚至,在測試過程中都不需要執行從網絡上接收數據包到實際解析數據包之間的代碼。由此提升了測試性能。
捷徑:如果一個協議使用了定制的加密或是壓縮算法,或是程序內到處都是數據校驗代碼,在這種情況下,內存模糊測試器能夠在解壓,解密或是數據校驗完成后的某個時間點創建一個快照,這樣就避免了花費時間創建一個能夠處理所有這些加密,壓縮或是數據校驗的模糊測試器,能夠大大減少工作量。
效率高:內存模糊測試是一種自動化的測試方式,測試用例是由測試工具自動產生的,其測試效率高,且不依賴于測試人員的經驗。
與其他測試技術聯合使用:目前普遍使用的測試方式,大部分集中在功能測試,并結合一些非功能測試,如壓力測試。但這些測試都是正面測試,很少有工具專注于負面測試(即驗證軟件不執行其不應該完成的工作)。而模糊測試的出現,正彌補了其他測試方法的不足,它專注于負面測試,與其他測試技術聯合使用可全面保障軟件的安全性和穩定性。
能夠發現未知漏洞:目前市面上的自動化測試工具更注重已知漏洞的發現,忽視了未知漏洞的危害,模糊測試工具正是發現未知漏洞的利器。
效果好:模糊測試變異的測試用例,是有一定規則的隨機,相較于隨機自動化測試工具,模糊測試的測試用例能達到更好的效果。
內存模糊測試的缺點如下:
假相:內存模糊測試是直接將數據注入進程的地址空間,因此有可能被注入的數據根本不可能通過從外部源輸入的數據來產生。
可重現性:雖然一個異常可能預示著一個可被利用的漏洞,但即通過內存模糊測試發現了這樣的異常,測試者仍然需要從外部輸入找到重現這個異常的外部數據,而找到對應的外部數據可能非常耗時。
復雜性:內存模糊測試方法的實現非常復雜。
回答所涉及的環境:聯想天逸510S、Windows 10。
內存模糊測試有下列優點:
快速:這種方法不僅不需要網絡帶寬,甚至,在測試過程中都不需要執行從網絡上接收數據包到實際解析數據包之間的代碼。由此提升了測試性能。
捷徑:如果一個協議使用了定制的加密或是壓縮算法,或是程序內到處都是數據校驗代碼,在這種情況下,內存模糊測試器能夠在解壓,解密或是數據校驗完成后的某個時間點創建一個快照,這樣就避免了花費時間創建一個能夠處理所有這些加密,壓縮或是數據校驗的模糊測試器,能夠大大減少工作量。
效率高:內存模糊測試是一種自動化的測試方式,測試用例是由測試工具自動產生的,其測試效率高,且不依賴于測試人員的經驗。
與其他測試技術聯合使用:目前普遍使用的測試方式,大部分集中在功能測試,并結合一些非功能測試,如壓力測試。但這些測試都是正面測試,很少有工具專注于負面測試(即驗證軟件不執行其不應該完成的工作)。而模糊測試的出現,正彌補了其他測試方法的不足,它專注于負面測試,與其他測試技術聯合使用可全面保障軟件的安全性和穩定性。
能夠發現未知漏洞:目前市面上的自動化測試工具更注重已知漏洞的發現,忽視了未知漏洞的危害,模糊測試工具正是發現未知漏洞的利器。
效果好:模糊測試變異的測試用例,是有一定規則的隨機,相較于隨機自動化測試工具,模糊測試的測試用例能達到更好的效果。
內存模糊測試的缺點如下:
假相:內存模糊測試是直接將數據注入進程的地址空間,因此有可能被注入的數據根本不可能通過從外部源輸入的數據來產生。
可重現性:雖然一個異常可能預示著一個可被利用的漏洞,但即通過內存模糊測試發現了這樣的異常,測試者仍然需要從外部輸入找到重現這個異常的外部數據,而找到對應的外部數據可能非常耗時。
復雜性:內存模糊測試方法的實現非常復雜。
回答所涉及的環境:聯想天逸510S、Windows 10。