Evaluation of Fuzzing as a Test Method for an Embedded System
Wilson, Thomas (2018)
Wilson, Thomas
Yrkeshögskolan Novia
2018
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201805148092
https://urn.fi/URN:NBN:fi:amk-201805148092
Tiivistelmä
When creating software, the stability, quality, and security of the software is an important part of the development. To ensure good quality, some form of software testing must be used.
This thesis evaluates the use of fuzzing as a software testing method. The basic idea of fuzzing is to, in a semi-random way, manipulate input data to a program in an attempt to make the program crash or misbehave, and thereby find faults in the software. The theory of fuzzing and different types of fuzzing will be described. The focus is set on fuzzing to improve the quality of the software, rather than the security aspect.
Methods used to evaluate fuzzing as a test method include; finding what kind of fuzzing tools that are available today, and implementation of one fuzzing method. For the implementation, the fuzzing tool American Fuzzy Lop (AFL) was chosen to do tests on an embedded systems application.
The results are that fuzzing can be used as a test method for an embedded system. But the benefits of fuzzing can vary, depending on the system tested. In the tests that were made only low hanging fruit, shallow faults, could be found. Kvalité, stabilitet och säkerhet är viktiga faktorer som måste beaktas när en mjukvara utvecklas. För att säkerställa att alla faktorer uppfylls, så måste mjukvaran genomgå någon form av testning.
I denna avhandling undersöktes mjukvarutestning med metoden fuzzing. Grundidén med fuzzing är att, på ett delvis slumpartat sätt, manipulera data som skickas till ett program för att se hur programmet reagerar. Om programmet då kraschar, eller på annat sätt utförs felaktigt, så har ett problem hittats i mjukvaran. I avhandlingen beskrevs teorin bakom fuzzing, såväl som olika typer av fuzzing. Fokus låg på fuzzing i syfte att öka kvalité och stabilitet, och mindre på säkerhetsfaktorn.
Metoder som använts för att evaluera fuzzing som testmetod inkluderar; undersökning av vilka fuzzing verktyg som finns tillgängliga idag, och implementering av en fuzzingmetod. Till implementeringen valdes fuzzing verktyget American Fuzzy Lop (AFL), för att utföra tester på en applikation för ett inbyggt system.
Resultatet var att fuzzing är en metod som kan användas för ett inbyggt system, men beroende på systemet så kan fördelarna med fuzzing variera. I de utförda testerna så kunde endaste ytliga problem påträffas.
This thesis evaluates the use of fuzzing as a software testing method. The basic idea of fuzzing is to, in a semi-random way, manipulate input data to a program in an attempt to make the program crash or misbehave, and thereby find faults in the software. The theory of fuzzing and different types of fuzzing will be described. The focus is set on fuzzing to improve the quality of the software, rather than the security aspect.
Methods used to evaluate fuzzing as a test method include; finding what kind of fuzzing tools that are available today, and implementation of one fuzzing method. For the implementation, the fuzzing tool American Fuzzy Lop (AFL) was chosen to do tests on an embedded systems application.
The results are that fuzzing can be used as a test method for an embedded system. But the benefits of fuzzing can vary, depending on the system tested. In the tests that were made only low hanging fruit, shallow faults, could be found.
I denna avhandling undersöktes mjukvarutestning med metoden fuzzing. Grundidén med fuzzing är att, på ett delvis slumpartat sätt, manipulera data som skickas till ett program för att se hur programmet reagerar. Om programmet då kraschar, eller på annat sätt utförs felaktigt, så har ett problem hittats i mjukvaran. I avhandlingen beskrevs teorin bakom fuzzing, såväl som olika typer av fuzzing. Fokus låg på fuzzing i syfte att öka kvalité och stabilitet, och mindre på säkerhetsfaktorn.
Metoder som använts för att evaluera fuzzing som testmetod inkluderar; undersökning av vilka fuzzing verktyg som finns tillgängliga idag, och implementering av en fuzzingmetod. Till implementeringen valdes fuzzing verktyget American Fuzzy Lop (AFL), för att utföra tester på en applikation för ett inbyggt system.
Resultatet var att fuzzing är en metod som kan användas för ett inbyggt system, men beroende på systemet så kan fördelarna med fuzzing variera. I de utförda testerna så kunde endaste ytliga problem påträffas.