Fuzz-Testing zielt darauf ab, automatisch Programmeingaben zu generieren, um die Robustheit eines Programms gegenüber willkürlichen Eingaben zu bewerten. Das Ziel ist es dabei, ein unerwünschtes Verhalten, z.B. einen Programmabsturz auszulösen. Wenn auf diese Weise eine Schwachstelle gefunden wurde, können Entwickler diesem Verhalten auf den Grund gehen und das Problem frühzeitig lösen.
Aufgrund der hohen Effektivität der Methode wurden in jüngster Zeit in vielen Forschungsprojekten Ansätze entwickelt, um das Fuzzing-Verfahren zu verbessern. Allerdings ist der Vergleich unterschiedlicher Fuzzer alles andere als trivial, denn die aktuellen Forschungsarbeiten nutzen viele unterschiedliche Methoden und befolgen dabei nicht immer vollumfänglich existierende Empfehlungen. David Paaßen, Sebastian Surminski, Michael Rodler und Prof. Lucas Davi haben systematisch überprüft, welchen Einfluss unterschiedliche Parameter auf die Evaluation von Fuzzern haben. Dazu haben sie Experimente mit einer Laufzeit von über 280 Tausend CPU-Stunden durchgeführt. So konnten sie unter anderem zeigen, dass die Nutzung unterschiedlicher Testprogramme einen entscheidenden Einfluss auf die Ergebnisse hat. Ihr Setup zur Evaluierung und die Ergebnisse stellen die paluno-Forscher im Oktober auf dem 26th European Symposium on Research in Computer Security (ESORICS) 2021 vor.
Um zukünftige Forschungsarbeiten zu unterstützen, veröffentlichen sie ihr eingesetztes Evaluations-Framework SENF (Statistical EvaluatioN of Fuzzers) und alle dazugehörigen Datensätze auf Github. Eine Vorabversion des ESORICS Paper ist auf arXiv verfügbar.
Veröffentlichung
Paaßen, David; Surminski, Sebastian; Rodler, Michael; Davi, Lucas: My Fuzzer Beats Them All! Developing a Framework for Fair Evaluation and Comparison of Fuzzers. In: Proc. of 26th European Symposium on Research in Computer Security. Springer International Publishing, Darmstadt 2021. arXiv