Flux RSS - La vie du site - Nouveautés et mises à jour
Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet

Buffer Overflow

Un « buffer overflow » est un débordement d'utilisation d'une « zone tampon » (dont la taille est limitée) par absence de mesure de cette utilisation.

01.01.2012 - Révision 21.08.2020 - Révision mineure 13.05.2022. Auteur : Pierre Pinard.

Un « buffer » (« zone tampon » en français) est un espace de mémoire dans lequel des processus échangent des données (passent des données de l'un à l'autre).

Une erreur consiste à ne pas contrôler la taille des données injectées dans la zone tampon par rapport à la taille du tampon (et au gestionnaire du tampon de ne pas confiner le tampon dans un espace infranchissable). Il en résulte que les données débordent de la zone tampon et investissent d'autres zones de la mémoire ram, écrasant des données d'autres applications ou le code d'autres processus.

Ce phénomène s'appelle, en anglais, « buffer overflow » (traduit en français par « Débordement de tampon » (relativement usité) ou par « Dépassement de tampon » (inusité)).

Si les données, trop grandes, injectées dans le tampon, ne sont pas de simples données, mais du code exécutable, et que ce code écrase le code d'une autre application (d'un autre processus) en mémoire, par « buffer overflow », c'est ce code qui va être exécuté à la place de celui écrasé.

Les pirates (hackers, cybercriminels), qui sont de très bons informaticiens, tirent parti de cette faille et en profitent pour embarquer, dans une application servant de cheval de Troie, du code malveillant obfusqué, se faisant passer pour de bêtes données. Lors de l'exécution de l'application piégée, le code est déobfusqué et envoyé dans un buffer. La partie ayant débordé du buffer (« buffer overflow ») sera exécutée lorsque ce sera au tour du processus écrasé de s'exécuter.

Tout cela est dit en mots simples. Dans la réalité, c'est un peu plus technique, avec usurpation des données dans la pile d'exécution (Processus - Ordonnanceur).

Nota :

Si les données ayant débordé du buffer ne sont pas du code, mais de simples données, c'est-à-dire n'importe quoi au sens du système d'exploitation, le processus ainsi écrasé va « planter », voire il y a de fortes chances que la tentative d'exécuter ce « n'importe quoi » conduise au blocage total du système (BSOD).

# # # # # # # # # # # # # # # # # # # # # # # # # # # # #