Options
2020
Master Thesis
Title
Design and Evaluation of Methods for Efficient Fuzzing of Stateful Software
Abstract
Due to increasing connectivity, server software as well as embedded controllers are becoming ever more prevalent. As such, securing these components against attacks by finding bugs early in development is becoming more important. In recent years, fuzz testing has become increasingly popular as an automated testing method for this purpose. Most fuzzing approaches however only consider targets that process a single input and then exit, limiting their suitability for highly stateful software like servers or embedded controllers. This thesis analyses the most recent developments in stateful fuzzing and identifies automatic state identification as a possible improvement to the existing AFLNet, which currently requires manual specification. A novel approach for automatic state identification (SNAPP) is proposed, that uses the coverage information already provided by coverage guided fuzzers. The approach is implemented and evaluated on the three stateful targets open62541, light ftp, and live555. The obtained results show that SNAPP performs at least as well and in certain cases better than AFLNet, without needing a manually constructed input specification in order to extract states. The results also suggest that initial seed choice plays a key role in stateful fuzzer performance.
;
Aufgrund der zunehmenden Vernetzung von Server-Software und Embedded-Controllern gewinnt das frühzeitige Testen dieser Systeme auf Sicherheitslücken bereits während der Entwicklung an Relevanz. In den letzten Jahren hat Fuzz-Testing zu diesem Zweck zunehmend an Bedeutung gewonnen. Die meisten Fuzzing-Verfahren wurden jedoch entwickelt, um Systeme zu testen, die eine einzelne Eingabe entgegennehmen und sich dann beenden. Dadurch lassen sich diese Fuzzer in der Regel nur bedingt auf zustandsbehaftete Server-Software oder Embedded-Controller anwenden. Diese Arbeit analysiert die neuesten Entwicklungen im Bereich Fuzzing zustandsbehafteter Software. Die automatische Zustandserkennung wird als mögliche Verbesserung zu dem bereits existierenden Fuzzer AFLNet identifiziert, welcher aktuell eine manuelle Spezifikation benötigt, um Zustände zu extrahieren. Diese Arbeit konzipiert einen neuen Ansatz zur automatischen Extraktion von Zuständen (SNAPP), der die Coverage-Information verwendet, die Coverage-Guided-Fuzzern bereits zur Verfügung steht. Der Ansatz wird implementiert und auf den dreizustandsbehafteten Testzielen open62541, light ftp, und live555 evaluiert. Die durch die Evaluation erzielten Ergebnisse zeigen, dass SNAPP in den meisten Fällen mindestens genauso gut wie AFLNet und in manchen Fällen sogar besser abschneidet. Dabei benötigt SNAPP im Gegensatz zu AFLNet keine manuelle Spezifikation um Zustände zu extrahieren. Die Ergebnisse deuten auch darauf hin, dass die initiale Wahl des Corpus ausschlaggebend für die Performance der zustandsbehafteten Fuzzer ist.
Thesis Note
Karlsruhe, Karlsruher Institut für Technologie, Master Thesis, 2020
Publishing Place
Karlsruhe