Qu'est-ce qu'un débordement de tampon de pile?
Un débordement de tampon de pile est ce qui se passe lorsqu'un programme fait une entrée dans la mémoire d'un ordinateur plus long que l'espace alloué. Dans certaines circonstances, cela peut corrompre d'autres données en mémoire, causant des problèmes dans l'exécution de l'ordinateur. Dans d'autres cas, un débordement de tampon de pile peut être exploité par une application malveillante pour prendre le contrôle d'autres parties de l'ordinateur.
Le nom d'un débordement de tampon de pile provient d'abord de la pile, qui est effectivement une liste active dans laquelle les données sont organisées: le terme provient de l'analogie de l'empilement des éléments physiques. Une version de cela, la pile d'appels , est la liste qu'un programme informatique utilise pour garder une trace des différentes parties du programme, les sous-programmes, qui fonctionnent à un moment particulier. Comme la pile d'appels fonctionne sur une base temporaire et doit être accessible rapidement, elle est située dans la mémoire de l'ordinateur plutôt que dans un stockage permanent tel que le disque dur.
Étant donné que les systèmes d'exploitation modernes permettent à plusieurs programmes de s'exécuter en même temps, il est nécessaire d'organiser la façon dont la mémoire est allouée, y compris pour appeler les piles. Cela se fait efficacement en attribuant des tampons, un espace dans la mémoire conçu pour être suffisamment grand pour faire face à l'espace maximal requis par un tampon particulier. Dans la plupart des cas, une partie de l'espace ne sera pas utilisée, elle agit donc comme un tampon entre les données de différentes applications, laissant la place pour faire face si l'on a soudainement besoin d'espace supplémentaire. Une façon de le visualiser serait de penser à une bibliothèque qui a alloué une certaine quantité d'espace à chaque domaine, en s'assurant de laisser une place supplémentaire pour faire face si, par exemple, tous les livres sur un sujet étaient dans la bibliothèque en même temps, plutôt que l'un d'entre eux étant vérifié.
Un débordement de tampon de pile se produit lorsqu'un programme écrit des données de pile d'appels dans le tampon d'une manière qui dépasse l'espace alloué. Cela peut arriver par erreur, uSually via un bug dans un programme. Par exemple, si une application est conçue pour permettre à l'utilisateur de saisir un numéro de téléphone, mais n'a aucune limite au nombre de caractères qui peuvent être entrés, un pirate peut être en mesure d'utiliser le champ illimité pour provoquer intentionnellement un débordement de tampon de pile. Selon le fonctionnement du système d'exploitation, cela pourrait permettre au pirate d'accéder indirectement une autre application ou le système d'exploitation lui-même.
Il existe plusieurs approches pour atténuer les effets d'un débordement de tampon de pile. L'un est connu sous le nom de randomisation de mise en page d'espace d'adressage. Cela organise les domaines les plus importants de données sur l'ordinateur de manière aléatoire. L'idée est que même si un pirate provoque ou exploite un débordement de tampon de pile, il ne pourra pas exploiter la violation de manière fiable.