Please use this identifier to cite or link to this item:
http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/85562
Title: | 實現可再現的模糊測試 Toward Reproducible Fuzzing |
Authors: | Chi-Jen Hsieh 謝啟仁 |
Advisor: | 蕭旭君(Hsu-Chun Hsiao) |
Keyword: | 模糊測試,再現性, Fuzzing,Reproducibility, |
Publication Year : | 2022 |
Degree: | 碩士 |
Abstract: | 模糊測試是一種自動化偵測軟體漏洞的技術,許多模糊測試工具已經被開發出來,並且成功地辨識出真實世界軟體中的關鍵漏洞。然而,因為模糊測試工具 中的運算邏輯存在著非確定行為(例如隨機生成的測試輸入與隨時間變化的條件),研究人員難以驗證關於模糊測試工具的說法(例如更好的代碼覆蓋率或是發現更 多的漏洞)。目前的研究人員只能透過進行多次重覆實驗,並檢查結果是否一致來驗證相關說法。 為了使驗證的過程更簡單,這篇論文探討了具有可重複性的模糊測試。可重複性指的是經過相同的計算過程並產生完全一致的結果,這使得捏造數據或是偽造結果變得更加困難。這篇論文顯示出我們可以在不影響其功能和性能的情況下使得模糊測試具有可重複性。 為了實現這一目標,我們首先找出了使模糊測試無法重現的因素,並將其分 為五類:隨機性、環境、時間、平行化和目標程式。然後我們對每個因素提出補救措施。按照所提出的準則,我們將AFL修改成可重複性的版本並稱之為ReAFL。我們的評估表明,ReAFL成功地重現了各種目標程序的模糊測試實驗。此外,ReAFL在實驗階段和重現階段都取得了與AFL相當的性能。這篇論文可做為引導使得其他研究人員可以自行將自己所進行的模糊測試實驗改為具有可重複性的版本。 Fuzzing is a technique to automate the discovery of software vulnerabilities. Many fuzzing tools have been developed and successfully identified critical vulnerabilities in real-world software. However, claims about fuzzing tools are sometimes hard to vali- date because they have ingrained non-deterministic behaviors in their algorithmic logic, such as randomly generated test inputs and time-dependent conditions. To validate such a claim (e.g., better code coverage or more bugs found), researchers today will repeat the experiment multiple times and see whether the results are consistent. This work aims to ease this validation process by exploring the concept of repro- ducible fuzzing. Reproducibility requires generating identical computational procedures and results, making it harder to fabricate data or falsify results. We show that it is possible to make fuzzers reproducible without affecting their func- tionality and performance. To achieve this, we first identify factors that make the fuzzing non-reproducible and group them into five categories: randomness, environment, time, parallelization, and target program. We then propose remediation for each factor. Fol- lowing the proposed guideline, we modify AFL to support reproducibility, and the re- sulting tool is called ReAFL. Our evaluation shows that ReAFL successfully reproduces the fuzzing results on a wide range of target programs. Also, ReAFL achieves comparable performance to AFL during both the fuzzing and reproduction phases. Our work can serve as a guideline for developing reproducible fuzzers. |
URI: | http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/85562 |
DOI: | 10.6342/NTU202203969 |
Fulltext Rights: | 同意授權(全球公開) |
metadata.dc.date.embargo-lift: | 2022-09-29 |
Appears in Collections: | 資訊工程學系 |
Files in This Item:
File | Size | Format | |
---|---|---|---|
U0001-2409202214395800.pdf | 1.8 MB | Adobe PDF | View/Open |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.