Qu'est-ce que la pulvérisation de tas?
La pulvérisation de tas est une technique de piratage utilisée pour exploiter les vulnérabilités des logiciels informatiques. Il s'agit de prendre le contrôle d'un programme en exploitant une partie de sa mémoire. Une fois qu'une partie de la mémoire est contrôlée par le code de piratage, le pirate peut prendre le contrôle de l'exécution du code en mettant en œuvre un débordement de mémoire tampon dans la zone de tas de la mémoire. L'application la plus courante pour la pulvérisation de tas est le piratage de navigateurs Web tels qu'Internet Explorer®.
Un "tas" est un bloc de mémoire dynamique que l'ordinateur attribue à un programme particulier, ainsi nommé car l'ordinateur dédie une pile virtuelle de mémoire au programme. Cela peut être considéré comme un espace de stockage dans un placard ou un bureau. Ce tas de mémoire appartient au programme jusqu'à ce que le logiciel ou le code de collection du système d'exploitation le libère. Le code de collection est simplement un périphérique de sécurité qui récupère de la mémoire si le programme se bloque ou si le logiciel lui-même ne libère pas la mémoire une fois son utilisation terminée.
Lors de la pulvérisation de tas, un pirate tente de "pulvériser" le tas de mémoire avec une portion de code spécifique. L’objectif est de placer le code à un emplacement spécifique dans la mémoire du programme, comme si vous vouliez coincer un pied de biche dans le bord d’un cadre de porte afin de vous aider à forcer l’ouverture de la porte. Une fois les informations bloquées dans le segment de mémoire par projection de chaleur, le pirate informatique peut alors déborder du segment de mémoire ou de la mémoire tampon entière, générant des erreurs au sein du système. Une fois que des erreurs se sont produites, le pirate informatique peut en profiter pour exécuter son propre code sur le système.
La pulvérisation de tas fonctionne en raison de l'allocation dynamique de mémoire dans le système. Le programme informatique "possède" essentiellement la totalité de la mémoire pour le moment, de sorte que le pirate informatique connaît déjà l'emplacement relatif dans la mémoire que l'ordinateur a attribuée au programme. Par conséquent, le pirate informatique a besoin de peu de précision pour coincer son code dans les fissures; il peut pulvériser le code à l'aveugle, sachant que le bloc de mémoire sera toujours là tant que le programme continuera à s'exécuter. Cela pourrait être comparé à essayer de prendre une serrure les yeux bandés; la tâche devient presque impossible si le verrou est en mouvement, mais le travail devient possible tant qu'il reste dans un emplacement fixe (tout comme la quantité de mémoire dans le système).