分類
CISSP

模糊測試

模糊測試 (fuzz testing, fuzzing)是一種軟體測試技術。其核心思想是將自動或半自動生成的亂數據輸入到一個程式中,並監視程式異常,如崩潰,斷言(assertion)失敗,以發現可能的程式錯誤,比如記憶體流失。模糊測試常常用於檢測軟體或電腦系統的安全漏洞。

模糊測試最早由威斯康星大學的Barton Miller於1988年提出。[1][2]他們的工作不僅使用隨機無結構的測試資料,還系統的利用了一系列的工具去分析不同平台上的各種軟體,並對測試發現的錯誤進行了系統的分析。此外,他們還公開了原始碼,測試流程以及原始結果資料。

模糊測試工具主要分為兩類,變異測試(mutation-based)以及生成測試(generation-based)。模糊測試可以被用作白盒,灰盒或黑箱測試。[3]檔案格式與網路協定是最常見的測試目標,但任何程式輸入都可以作為測試物件。常見的輸入有環境變數,滑鼠和鍵盤事件以及API呼叫序列。甚至一些通常不被考慮成輸入的物件也可以被測試,比如資料庫中的資料或共享記憶體。

對於安全相關的測試,那些跨越可信邊界的資料是最令人感興趣的。比如,模糊測試那些處理任意使用者上傳的檔案的代碼比測試解析伺服器設定檔的代碼更重要。因為伺服器設定檔往往只能被有一定權限的使用者修改。

資料來源:https://zh.wikipedia.org/wiki/%E6%A8%A1%E7%B3%8A%E6%B5%8B%E8%AF%95

作者: stevencho

從事資訊工作二十多年,對資安極具熱情,在 Network Security, Endpoint Security, 及 Mobile Security 等資安領域有超過十年以 上的經驗。曾任職精誠資訊資安產品代理部門技術經理,負責 資安產品之技術支援與大型企業導入專案。此外,他也取得了 ISO 27001 主導稽核員證書及 Check Point 的 CCSA 與 CCSE 等防 火牆產品的專業證照。