Alertes de sécurité en cours Discussion Discussion
Faire un lien Lien
Assiste.com - Sécurité informatique - Décontamination - Antivirus - Protection - Protection de la Vie Privée Assiste.com - Sécurité informatique - Décontamination - Antivirus - Protection - Protection de la Vie Privée

Buffer Overflow

Dernière mise à jour : 2017-04-28T00:00 - 28.04.2017
29.09.2014 - 00h00 - Paris - (Assiste - Pierre Pinard) - Mise à jour

Buffer Overflow - Dépassement de tampon - Débordement de tampon

Buffer OverflowBuffer OverflowBuffer Overflow

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.

Nota :
Si les données ayant débordé du buffer ne sont pas du code mais de simple 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 forte chance que la tentative d'exécuter ce "nimporte quoi" conduise au blocage totale du système.