Anwendungssicherheit
Mutations-Fuzzing
Auch bekannt als: Mutationelles Fuzzing, Sample-basiertes Fuzzing
Definition
Fuzzing-Strategie, die neue Testeingaben durch zufälliges Mutieren vorhandener gültiger Samples erzeugt – Bitflips, Byte-Einfügungen, Datei-Splices.
Beispiele
- AFL++ mutiert gültige PNG-Dateien, um Heap-Overflows in libpng zu finden.
- libFuzzer mutiert gültige HTTP-Requests, um einen eigenen HTTP-Parser zum Absturz zu bringen.
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.
Coverage-Guided Fuzzing
Fuzzing-Technik, die das Target instrumentiert, um Codeabdeckung zu messen, und gezielt Eingaben weiterentwickelt, die neue Pfade erreichen – mit deutlich höherer Bug-Findequote.
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.
Use-After-Free
Speicher-Sicherheitsfehler, bei dem ein Programm Speicher weiterhin nutzt, nachdem dieser bereits freigegeben wurde – ermöglicht oft Kontrolle über Objektzustand und Kontrollfluss.
Secure Coding
Secure Coding — definition coming soon.