透過您的圖書館登入
IP:18.220.137.164
  • 學位論文

模糊測試方法排程效益分析與評估

On the Effectiveness of Scheduling Fuzz Testing

指導教授 : 田筱榮
若您是本文的作者,可授權文章由華藝線上圖書館中協助推廣。

摘要


隨著電腦的普及與電腦軟體的快速增加,利用軟體漏洞入侵系統的事件隨之增加,軟體安全也日趨重要,但是要開發出一個沒有缺陷的電腦軟體可以說幾乎不可能,因此需要縝密的軟體測試,盡可能的發現軟體的缺陷,提升軟體品質。隨著軟體系統的規模大幅度的增長,人工軟體測試不但費時且高複雜度的系統的人工測試很難有效率的進行,以自動化的方式進行軟體測試是必須發展的方向。在不針對程式碼的內容的情形下,測試可以採用黑盒測試的方式,搭配輸入值模糊變異,只需要執行碼即可對受測目標進行測試,尋找可以造成受測目標執行失敗的事例。現存有許多自動化或半自動化的軟體測試工具或系統,使得軟體測試的工作比較容易,但要如何在有限的時間內產出最多的獨特缺陷卻仍是一個待解決的問題。之前有研究以歷史資料模擬的方式討論不同軟體測試排程測略的效果,然而軟體測試是動態的過程,實際測試的狀況下是否符合使用靜態的歷史資料分析的結果尚須證實,本研究中我們將不同排程測略在FOE(Failure Observation Engine)軟體測試系統上實現,以動態執行的方式探討排程策略的效果,觀察不同排程策略的實施對於測試效率的影響。

並列摘要


Due to the popularization of computers and the rapid development of computer software, computer intrusions taking advantage of software vulnerabilities are escalating. As a result, software security becomes more and more important, and we need to test computer software as thoroughly as possible so that bugs can be discovered and the quality of computer software can be improved. With the size and complexity of computer software ever increasing, manual software testing is both time-consuming and too complicate to be conducted efficiently. The alternative is automatic software testing. Given the executable code, automatic black-box software testing based on input data fuzzing can be performed without reference to source code to induce computer crash. When a crash is found, it can be analyzed to discover bugs. There are several automatic software testing tools and systems available. One important issue need to be studied is how to find as many of unique bugs as possible within a reasonable amount of time. A test scheduling strategy study has been performed based on simulation on recorded data. However, in software testing system adopting dynamic input seed file set, whether the findings still hold need to be re-examined. In this thesis, various scheduling strategies were implemented within the software testing system Failure Observation Engine(FOE). The effects of scheduling strategies on software testing efficiency were studied by performing testing experiments using the modified FOE.

參考文獻


[9] S.-K. Huang, M.-H. Huang, P.-Y. Huang, C.-W. Lai, H.-L. Lu, and W.-M. Leong. “CRAX:Software Crash Analysis for Automatic Exploit Generation by Modeling Attacks as Symbolic Continuations.” In Proceedings of IEEE Sixth International Conference on Software Security and Reliability (SERE 2012), pages 78–87, 2012.
[1]Fuzz Testing, http://en.wikipedia.org/wiki/Fuzz_testing
[2]Macintosh Stories: Monkey Lives, http://www.folklore.org/StoryView.py?story=Monkey_Lives.txt
[3]Failure Observation Engine, http://www.cert.org/vulnerability-analysis/tools/foe.cfm
[4]Basic Fuzzing Framework, http://www.cert.org/vulnerability-analysis/tools/bff.cfm

延伸閱讀