Fuzz-Testing
Was ist Fuzz-Testing?
Fuzz-TestingAutomatisierte Testtechnik, die ein Programm mit großen Mengen fehlerhafter, zufälliger oder unerwarteter Eingaben füttert, um Crashes, Speicherkorruption und Sicherheitslücken aufzudecken.
Fuzz-Testing (Fuzzing) beschießt ein Ziel – Funktion, Parser, Protokoll oder ganze Anwendung – mit mutierten oder generierten Eingaben und beobachtet dabei Crashes, Hangs, Assertion-Fehler oder Sanitizer-Reports. Ziel ist es, Eingaben zu finden, die Sicherheitseigenschaften verletzen: Out-of-Bounds, Use-After-Free, Endlosschleifen, unbehandelte Exceptions oder Logikfehler. Moderne Fuzzer wie AFL++, libFuzzer, Jazzer und Atheris nutzen Coverage-Feedback, um Eingaben gezielt in neue Codepfade zu treiben – besonders wirksam bei Parsern, Decodern und Kryptocode. Fuzzing ist heute fester Bestandteil der SSDLCs von Google (OSS-Fuzz) und Microsoft und hat viele hochwirksame CVEs ans Licht gebracht.
● Beispiele
- 01
OSS-Fuzz lässt libFuzzer kontinuierlich gegen den OpenSSL-Parser laufen, um Speicherkorruptionen zu finden.
- 02
Jazzer fuzzt einen Java-JSON-Parser und findet DoS durch tief verschachtelte Eingaben.
● Häufige Fragen
Was ist Fuzz-Testing?
Automatisierte Testtechnik, die ein Programm mit großen Mengen fehlerhafter, zufälliger oder unerwarteter Eingaben füttert, um Crashes, Speicherkorruption und Sicherheitslücken aufzudecken. Es gehört zur Kategorie Anwendungssicherheit der Cybersicherheit.
Was bedeutet Fuzz-Testing?
Automatisierte Testtechnik, die ein Programm mit großen Mengen fehlerhafter, zufälliger oder unerwarteter Eingaben füttert, um Crashes, Speicherkorruption und Sicherheitslücken aufzudecken.
Wie schützt man sich gegen Fuzz-Testing?
Schutzmaßnahmen gegen Fuzz-Testing kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für Fuzz-Testing?
Übliche alternative Bezeichnungen: Fuzzing.