模糊測試是安全軟件開發方法的一部分嗎?

發表于:2010-01-22來源:作者:點擊數: 標簽:軟件開發
模糊測試是 安全 軟件 開發 方法的一部分嗎? 軟件測試 問:我聽說一個叫“模糊測試”(Fuzzing)的新技術。這種技術是不是查找出軟件漏洞的一個有效方法呢? 答:模糊測試,事實上不是一種新技術。它早在1989年就被威斯康星州的麥迪遜大學BartonMiller教授發明

  模糊測試是安全軟件開發方法的一部分嗎?   軟件測試 

   問:我聽說一個叫“模糊測試”(Fuzzing)的新技術。這種技術是不是查找出軟件漏洞的一個有效方法呢?

  答:模糊測試,事實上不是一種新技術。它早在1989年就被威斯康星州的麥迪遜大學BartonMiller教授發明。由于目前人們聚焦于開發更加安全的軟件,模糊測試才被更加廣泛應用并成為公認的代碼測試方法。

  在軟件測試過程中,一個程序被隨機產生的數據大量驗證,稱為模糊測試。假如一個程序在應對任一的這類數據上失效,開始出現沖突、鎖住、消耗大量內存或者產生不可控制的程序錯誤,開發者就知道代碼中某處出現了bug。因此這個缺陷可能在程序發布或者配置前被定位并予以矯正,從而使可能的程序漏洞不出現在程序最終發行版本中。軟件測試被頻繁地用于測試緩沖區溢出漏洞,而這種溢出在輸入字符的數量超出可用的緩沖區空間時候發生。

  軟件程序有許多種的輸入方式,比如鼠標、鍵盤和觸摸屏。另外還包括調用其它程序或植入實用系統中的控制器數據。模糊測試可以有效地找出漏洞,是由于輸入一個程序的數據是隨機的,因此不會被任何的關于軟件應該如何運行的偏見所束縛。當人們自己測試軟件的時候,可能作出軟件被如何使用的假設,而造成只對特定的輸入進行測試。

  一個徹底的模糊測試是對有效數據和隨機數據的聯合調試。有效數據測試防止程序在抵達一個欠缺的代碼塊前出現拒絕信息。

  你必須意識到,雖然通過一個模糊測試,這并不意味著一個程序完全沒有bug。軟件測試僅僅是隨機測試的模擬,是程序行為的一個有限樣本的測試。測試可能只展現那些軟件可以處理的沒有沖突的例外。還有,模糊測試不能測試出開發中出現的邏輯錯誤。

  模糊測試一個大的優點在于它的成本效率;測試通常是自動化的,而且容易配置。模糊測試是一種有效的軟件測試方法,但它也只是眾多軟件測試方法中的一種。靜態分析、相互評價和安全代碼方法學都是安全軟件開發的方法。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97