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.
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
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.
Mutations-Fuzzing
Fuzzing-Strategie, die neue Testeingaben durch zufälliges Mutieren vorhandener gültiger Samples erzeugt – Bitflips, Byte-Einfügungen, Datei-Splices.
Symbolische Ausführung
Programmanalyse-Technik, die Code mit symbolischen Eingaben statt mit konkreten Werten ausführt und Pfadbedingungen aufbaut, die ein SMT-Solver löst, um Bugs zu finden.
Pufferüberlauf
Speicher-Sicherheitslücke, bei der ein Programm über das Ende eines allokierten Puffers hinausschreibt, benachbarten Speicher überschreibt und häufig Codeausführung ermöglicht.
Speicherkorruption
Sammelbegriff für Schwachstellen, bei denen ein Programm außerhalb der vorgesehenen Speichergrenzen schreibt und so Typsicherheit, Kontrollfluss oder Datenintegrität untergräbt.
Secure Coding
Secure Coding — definition coming soon.