<Précédent | Table des matières | Suivant>
11.4.2. Corruption de la mémoire
Une corruption de mémoire se produit lorsqu'un emplacement dans l'espace mémoire d'un processus est accidentellement modifié en raison d'erreurs de programmation. Les bogues de corruption de mémoire conduisent généralement à un comportement de programme imprévisible, cependant dans de nombreux cas, ces bogues permettent la manipulation de la mémoire de processus de telle manière que le flux d'exécution du programme peut être contrôlé, permettant une activité définie par l'attaquant.
Ces attaques sont généralement appelées débordements de tampon, bien que ce terme soit une simplification excessive. Les types de corruption de mémoire les plus courants sont très différents les uns des autres et ont leurs propres tactiques et techniques requises pour une exploitation réussie.
• Débordement de la mémoire tampon de la pile : lorsqu'un programme écrit plus de données dans une mémoire tampon de la pile qu'il n'y a d'espace disponible pour lui, la mémoire adjacente peut être corrompue, provoquant souvent le plantage du programme.
• Corruption du tas : la mémoire du tas est allouée au moment de l'exécution et contient généralement des données du programme en cours d'exécution. Des corruptions de tas se produisent en manipulant les données pour les écraser via la liste liée de pointeurs de mémoire de tas.
• Débordement d'entier : ces débordements se produisent lorsqu'une application essaie de créer une valeur numérique qui ne peut pas être contenue dans l'espace de stockage qui lui est alloué.
• Chaîne de formatage : lorsqu'un programme accepte l'entrée de l'utilisateur et la formate sans la vérifier, les emplacements de mémoire peuvent être révélés ou écrasés, selon les jetons de format qui sont utilisés.
Documentation