Return to search

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

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. / 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.

Identiferoai:union.ndltd.org:oulo.fi/oai:oulu.fi:nbnfioulu-201405291614
Date02 June 2014
CreatorsKovalainen, V.-V. (Ville-Veikko)
PublisherUniversity of Oulu
Source SetsUniversity of Oulu
LanguageEnglish
Detected LanguageFinnish
Typeinfo:eu-repo/semantics/masterThesis, info:eu-repo/semantics/publishedVersion
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess, © Ville-Veikko Kovalainen, 2014

Page generated in 0.0026 seconds