Sécurité applicative
Fuzzing par mutation
Aussi appelé: Fuzzing mutationnel, Fuzzing basé sur des échantillons
Définition
Stratégie de fuzzing qui produit de nouvelles entrées de test en mutant aléatoirement des échantillons valides existants : flip de bits, insertion d'octets, splice de fichiers.
Exemples
- AFL++ mutant des PNG valides pour découvrir des heap overflows dans libpng.
- libFuzzer mutant des requêtes HTTP valides pour faire crasher un parseur HTTP maison.
Termes liés
Fuzz testing
Technique de test automatisé qui soumet un programme à de grandes quantités d'entrées malformées, aléatoires ou inattendues pour révéler des crashs, des corruptions mémoire et des vulnérabilités.
Fuzzing guidé par couverture
Technique de fuzzing qui instrumente la cible pour mesurer la couverture de code et fait évoluer les entrées explorant de nouveaux chemins, augmentant drastiquement l'efficacité.
Exécution symbolique
Technique d'analyse de programme qui exécute le code avec des entrées symboliques au lieu de valeurs concrètes, construisant des contraintes de chemin résolues par un solveur SMT.
Débordement de tampon
Faille de sûreté mémoire où un programme écrit au-delà de la fin d'un tampon alloué, corrompant la mémoire adjacente et permettant souvent l'exécution de code.
Use-After-Free
Bug de sûreté mémoire où un programme continue d'utiliser une zone mémoire après sa libération, permettant souvent à un attaquant de manipuler l'état des objets et de détourner l'exécution.
Secure Coding
Secure Coding — definition coming soon.