Effectiveness of fuzz testing high-security applications

Fuzzing is a testing methodology that is receiving increased attention in the field of software security. The methodology is interesting because almost anyone can download a fuzzer and search for bugs in large and well-tested programs or libraries. This thesis is a case study which examines the effi...

Full description

Bibliographic Details
Main Authors: West, Balthazar, Wengelin, Marcus
Format: Others
Language:English
Published: KTH, Skolan för datavetenskap och kommunikation (CSC) 2017
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-208359
Description
Summary:Fuzzing is a testing methodology that is receiving increased attention in the field of software security. The methodology is interesting because almost anyone can download a fuzzer and search for bugs in large and well-tested programs or libraries. This thesis is a case study which examines the efficiency of fuzzing a library with high security requirements. It was decided that the Mbed TLS, an open source SSL library, would be fuzzed using AFL, a state of the art fuzzer. The steps required to use AFL to fuzz Mbed TLS are outlined along with the results the study yielded. The fuzzing process did not succeed in finding input that causes crashes. However, there was a clear contrast between the results of the two fuzzed components of the library, and ultimately considered inconclusive primarily due to the fuzzing process being too time-consuming. The thesis is concluded by acknowledging the major takeaways and suggestions for future work. === Fuzz-testning är en testmetod som har fått ökad uppmärksamhet inom området mjukvarusäkerhet. Metoden är intressant för att i princip vem som helst kan ladda ner och använda en fuzzer för att hitta buggar i stora samt vältestade program och bibliotek. Denna rapport är en fallstudie som undersöker effektiviteten av att fuzz-testa ett bibliotek med höga säkerhetskrav. Biblioteket som studerats i denna rapport är mbed TLS, ett open-source SSL-bibliotek. Fuzzern som valdes kallas AFL, en vedertagen fuzzer som visat sig vara mycket effektiv. Stegen som togs för att fuzza mbed TLS beskrivs i rapporten, tillsammans med resultaten. Under fuzzingen hittades ingen input som genererade krascher. Dock finns en tydlig kontrast mellan resultaten av de två komponenterna av biblioteket som fuzzades, och i slutändan betraktas resultaten som ej slutgiltiga. Rapporten avslutas sedan med en diskussion samt rekommendationer för framtida forskning inom området.