Fuzzing
Fuzzing erzeugt automatisch zufällige oder halbzufällige Eingaben, um ein Programm zu füttern, und überwacht Abstürze und Anomalien, um Schwachstellen zu entdecken.
Zweck
Unbekannte Schwachstellen automatisch entdecken; vielfach für Sicherheitstests von Parsern und Protokollimplementierungen eingesetzt.
Mechanismus
Erzeugt zufällige oder mutierte Eingaben für das Ziel und überwacht Abstürze/ASAN-Meldungen/Timeouts. Coverage-geführtes Fuzzing (libFuzzer/AFL) nutzt Coverage-Feedback zur Steuerung der Eingabeerzeugung. Strukturbewusstes Fuzzing versteht das Eingabeformat.
Anwendungsfälle
- Schwachstellensuche
- Sicherheitstests von Parsern
- Protokoll-Robustheit