Plus une conférence de sécurité ne passe sans une présentation ayant pour thème le fuzzing. Cette méthode de recherche de vulnérabilités par injection de fautes est en effet de plus en plus utilisée et croît en complexité au niveau de l'algorithme de génération ou mutation des données (sauf exceptions comme le fuzzer à l'origine de la MS09-050 [SMB2]).
1. Introduction
Les outils de fuzzing se décomposent en plusieurs familles : locaux, distants, web, etc., qui se basent sur la génération de fichiers, de paquets réseaux, etc. Afin de générer des entrées qui seront traitées par des fonctions plus profondes de la cible, il devient indispensable de comprendre le format de fichier ou du protocole réseau. Cela est d'autant plus difficile dans le cas d'une application ne disposant pas de documentation librement disponible.
La méthode présentée dans cet article a pour but de déplacer le problème et d'essayer de le rendre plus simple (du moment que vous disposez de compétences en reverse engineering de binaires). Le in-memory fuzzing agit directement sur les données lors de leur traitement par l'application ciblée.
La première étape de l'écriture d'un in-memory fuzzer passe ainsi par l'identification des fonctions de traitement des donnés que l'on souhaite muter. Pour cette partie, c'est le module de...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première