CyberGlossary

Anwendungssicherheit

Coverage-Guided Fuzzing

Auch bekannt als: Greybox-Fuzzing, Feedback-getriebenes Fuzzing

Definition

Fuzzing-Technik, die das Target instrumentiert, um Codeabdeckung zu messen, und gezielt Eingaben weiterentwickelt, die neue Pfade erreichen – mit deutlich höherer Bug-Findequote.

Coverage-Guided-Fuzzer instrumentieren das Target zur Compile-Zeit oder per dynamischer Binärübersetzung und führen Kandidaten aus, während Edge- oder Basic-Block-Coverage erhoben wird. Eingaben, die neue Coverage erzeugen, werden behalten und mit einem evolutionären Algorithmus weiter mutiert, sodass der Korpus immer schwerer erreichbaren Code anstrebt. Diese Feedback-Schleife – populär gemacht durch AFL und verfeinert in AFL++, libFuzzer und Honggfuzz – ist um Größenordnungen effektiver als blindes Random-Fuzzing. Sie treibt z. B. Google OSS-Fuzz, das durch kontinuierliches Coverage-Guided-Fuzzing zehntausende Bugs in Open-Source-Code gefunden hat.

Beispiele

  • Einen C-Parser mit AFL++-Instrumentierung kompilieren und mit afl-fuzz einen coverage-gesteuerten Korpus aufbauen.
  • libFuzzer nutzt SanitizerCoverage, um Eingaben für eine Rust-Crate zu evolvieren.

Verwandte Begriffe