In den letzten Jahren haben moderne Fuzz Testing Techniken sehr an Popularität gewonnen. Mit Fuzzing wurden bereits 4000 Bugs im Chrome Browser gefunden. Allerdings ist das große Problem der aktuellen Fuzzer wie AFL, libFuzzer und hongFuzz, dass sie so komplex sind, dass sie sehr spezielle Security Expertise benötigen und deswegen außerhalb von großen Firmen wie Google, Microsoft, Facebook und ähnlichen kaum zum Einsatz kommen.
In diesem Vortrag wird eine wissenschaftliche Studie vorgestellt in der aktuelle Probleme von Fuzzern vorgestellt werden sowie Lösungsansätze die Fuzzing für alle Tester ermöglichen.
Zielpublikum: Tester, Entwickler, Testmanager, Projektleiter, Entscheider
Vorraussetzungen: Grundlegende Programmierkenntnisse
Schwierigkeitsgrad: Basic
Extended Abstract:
Die Komplexität moderner Software wächst ständig und folglich wächst auch der Aufwand für Tests ständig mit. Testing ist essentiell um die Qualität und Sicherheit der Software zu gewährleisten. In den letzten Jahren haben moderne Fuzzing Techniken in Industrie und Akademia sehr an Popularität gewonnen. Bei Google wurden in 2019 die meisten Schwachstellen durch fuzzing gefunden[1].
Mit Fuzzing wurden bereits 4000 Bugs im Chrome Browser gefunden. Im Gegenteil zu statische Code Analyse hat Fuzzing den großen Vorteil, dass alle gefundenen Bugs tatsächliche Bugs und keine False Positives sind. Allerdings ist das große Problem der aktuellen Fuzzer wie AFL, libFuzzer und hongFuzz, dass sie so komplex sind, dass sie sehr spezielle Security Expertise benötigen und deswegen außerhalb von großen Firmen wie Google, Microsoft, Facebook und ähnlichen kaum zum Einsatz kommen.
In diesem Vortrag wird eine wissenschaftliche Studie die in Kollaboration mit der Arbeitsgruppe 'Usable Security And Privacy' der Uni Bonn durchgeführt wurde vorgestellt. Die Studie zeigt Benutzbarkeitsprobleme von aktuellen Fuzzern und erklärt warum der Einsatz bisher nicht weiter verbreitet ist. Darauf aufbauend werden Techniken vorgestellt mit denen Fuzzing benutzerfreundlicher und effektiver gestaltet werden können. Das Ziel dabei ist, Fuzzing im Softwareentwicklungs- und Testingprozess zu integrieren und automatisieren, sodass ohne besondere Expertise Schwachstellen früh gefunden werden können.
Zentrale Inhalte sind:
- Semi-automatisierte Generierung von Fuzz Tests
- Buildsystem-agnostisches Kompilieren von Code für Fuzzing
- Structure-aware fuzzing um tiefe Bugs zu finden
- Automatisches Testing von Netzwerkschnittstellen
- Unassisted Fuzzing von REST APIs
- Integration von Fuzzing in CI/CD
- Intuitive Monitoring und Analyse von gefundenen Bugs.
Der Vortrag wird zeigen wie mit diesen Techniken Tests deren Einrichtung bisher erhebliche Expertise und Zeit benötigten, innerhalb von wenigen Minuten erstellt werden können und so Fuzzing ein Werkzeug für alle Tester werden kann.
Khaled Yakdan is Co-Founder & Chief Scientist at Code Intelligence. He drives the customer-oriented development of the CI Fuzz security testing platform. As a malware analyst, he is an expert in binary code analysis, with over 7 years of experience in reverse engineering and penetration testing.