Automatische Testfallgenerierung mittels Generator-based Fuzzing
Wann und Wo
Semesterprojekt: Dienstag, 13-15 Uhr, RUD 25, 4.113
Wer
Dozent: Hoang Lam Nguyen
Beschreibung und Aufbau der Lehrveranstaltung
Fuzzing ist eine automatisierte Testmethode, bei der mittels zufällig generierter Test-Inputs nach Bugs und Sicherheitslücken in Programmen gesucht wird. Eine besondere Herausforderung stellt dabei das Fuzzing von Programmen dar, welche strukturierte Eingaben erwarten (z.B. Compiler oder Web-Browser).
Ziel des Semesterprojekts ist es, dass die Teilnehmenden neuartige Fuzzing-Techniken kennenlernen und anwenden. Der Fokus liegt dabei auf der Generierung von strukturierten Test-Inputs, wie z.B. XML-, PDF-, oder JavaScript, welche typischerweise von komplexen Input-Processing Pipelines weiterverarbeitet werden.
Unter Anleitung der Lehrenden werden Fuzzer für verschiedene strukturierte Eingabeformate implementiert und evaluiert. Hierzu werden unter anderem Grundlagen im wissenschaftlichen Arbeiten vermittelt, die für Abschlussarbeiten dringend relevant sind. Die Implementation erfolgt in Java.
Inhalte:
- Einführung in die automatisierte Testfallgenerierung mittels Fuzzing
- Fortgeschrittene Fuzzing-Techniken (coverage-guided fuzzing, grammar-based fuzzing, generator-based fuzzing)
- Einführung in das JQF-Framework
- Benchmarking als Evaluationsmethode