University of Oulu

Comparative analysis of fuzzing frameworks and techniques in terms of effectiveness and deployment

Saved in:
Author: Kovalainen, Ville-Veikko1
Organizations: 1University of Oulu, Faculty of Information Technology and Electrical Engineering, Department of Computer Science and Engineering, Computer Science
Format: ebook
Version: published version
Access: open
Online Access: PDF Full Text (PDF, 0.6 MB)
Persistent link: http://urn.fi/URN:NBN:fi:oulu-201405291614
Language: English
Published: Oulu : V.-V. Kovalainen, 2014
Publish Date: 2014-06-02
Physical Description: 84 p.
Thesis type: Master's thesis (tech)
Tutor: Röning, Juha
Reviewer: Röning, Juha
Schaberreiter, Thomas
Description:
Fuzz-testaus, eli fuzzaus, on ohjelmistotestauksen muoto, jossa testattavaa toteutusta jykevyystestataan altistamalla se odottamattomille tai osittain valideille syötteille. Fuzz-sovelluskehyksiä voidaan käyttää fuzz-testisarjojen kehittämiseen. Tässä työssä toteutettiin vertaileva analyysi erilaisille fuzz-sovelluskehyksille mukaanlukien kaksi ilmaista testikehystä ja yksi kaupallinen ratkaisu. Testikohteiksi valittiin kolme verkkoprotokollaa ja kokoelma niitä hyödyntäviä ohjelmistoja. Valitut protokollat olivat File Transfer Protocol (FTP), Locator/ID Separation Protocol (LISP) ja Session Initiation Protocol (SIP). Testikohteille rakennettiin omat testiympäristönsä. Fuzz-testikehyksien avulla kehitettiin fuzz-testisarjat valituille protokollille. Testisarjoja suoritettiin testikohteita vastaan ja tuloksia valvottiin tarkasti. Testaukselle määriteltiin joukko metriikoita, mukaanlukien tehokkuus löydettyjen kaatumisien muodossa, koodikattavuus ja ajonaikainen suorituskyky. Saadut tulokset osoittavat selvän eron testattujen fuzz-sovelluskehysten välillä. Kaupallinen ratkaisu tarjosi parhaan kattavuuden, löysi eniten kaatumisia ja oli kaiken kaikkiaan joustavin kehityksen ja käyttöönoton suhteen. Muut vaikuttivat myös lupaavilta, mutta jäivät jälkeen suorituskyvyssä tai tehokkuudessa, yleisessä laadussa ja osoittivat myös puutteita kehityksen ja käyttöönoton suhteen.
see all

Fuzz testing, or fuzzing, is a form of software testing where the implementation under test is exposed to unexpected or semi-valid inputs in the interest of robustness testing. Fuzzing frameworks can be utilized to develop fuzzing test suites. In this thesis, a comparative analysis was performed on different fuzzing frameworks including two freely distributed frameworks and one commercial solution. Three network protocols and a collection of software implementations utilizing these protocols were chosen as test targets. The protocols were File Transfer Protocol (FTP), Locator/ID Separation Protocol (LISP), and Session Initiation Protocol (SIP). A set of test environments was constructed for all the test targets. Fuzzing test suites for the chosen protocols were developed with the fuzzing frameworks. The test suites were executed towards the test targets and the results monitored closely. A set of metrics for the tests was defined, including effectiveness in terms of found crashes, code coverage, and run-time performance. The obtained test results show a clear distinction between the tested frameworks. The commercial solution was proven to offer best coverage, found most crashes, and it was overall the most flexible in terms of development and deployment. The others showed promise as well, but lacked in performance or effectiveness, overall quality, and had some shortcomings in development and deployment.
see all

Subjects:
Copyright information: © Ville-Veikko Kovalainen, 2014. This publication is copyrighted. You may download, display and print it for your own personal use. Commercial use is prohibited.