Dépassement ou débordement de mémoire (Buffer overflow)

De M82 - DIMA's wiki
Version datée du 30 juillet 2025 à 19:52 par Achill cyber (discussion | contributions) (Page créée avec « Le buffer overflow est une technique d’exploitation de vulnérabilité dans le code d’un programme qui ne vérifie pas correctement la taille de certaines données qu’il manipule. En langage C, par exemple, certaines fonctions comme strcpy (copie d’une chaine de caractères) ne contrôlent pas que la zone de mémoire de destination soit de taille suffisante pour accueillir les données à copier. Il est alors possible d’écraser (ou de déborder) des zo... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Le buffer overflow est une technique d’exploitation de vulnérabilité dans le code d’un programme qui ne vérifie pas correctement la taille de certaines données qu’il manipule. En langage C, par exemple, certaines fonctions comme strcpy (copie d’une chaine de caractères) ne contrôlent pas que la zone de mémoire de destination soit de taille suffisante pour accueillir les données à copier. Il est alors possible d’écraser (ou de déborder) des zones mémoire du processus en cours d’exécution, en entrant plus de données que ce que la zone mémoire de destination pouvait contenir. Pour exploiter une telle vulnérabilité, il s’agira de parvenir à écraser la zone de mémoire qui contient l’adresse de la prochaine instruction à exécuter pour le processus, permettant ainsi à l’attaquant de contrôler le flot d’exécution du programme en cours et ainsi lui offrir la possibilité d’exécuter son propre code. Des mesures correctrices existent pour éviter ces dépassements de mémoire tampon. Il convient par exemple d’utiliser la fonction strlcpy au lieu de strcpy car elle prend en paramètre la taille de la zone mémoire de destination, et peut ainsi vérifier que les données à copier ne débordent pas. Le buffer overflow est la vulnérabilité la plus courante (et donc la plus exploitée par les attaquants informatiques). Les éditeurs de logiciels, de compilateurs, de systèmes d’exploitation et de matériel informatique ont donc mis en place des mécanismes de protection tel que les restrictions d’usage des zones mémoires (bit « NX » pour les processeurs Intel) par exemple, mais également des outils de vérification lors de la compilation de code ( outil « canari » dans le compilateur GCC).