Accueil l'audio Qu'est-ce que l'écrasement de pile? - définition de techopedia

Qu'est-ce que l'écrasement de pile? - définition de techopedia

Table des matières:

Anonim

Définition - Que signifie Stack Smashing?

L'écrasement de la pile est une forme de vulnérabilité dans laquelle la pile d'une application informatique ou d'un système d'exploitation est forcée de déborder. Cela peut conduire à subvertir le programme / système et à le bloquer.


Une pile, un circuit premier entré, dernier sorti, est une forme de tampon contenant des résultats intermédiaires d'opérations. Pour simplifier, l'écrasement de pile met plus de données dans une pile que sa capacité de stockage. Les pirates qualifiés peuvent délibérément introduire des données excessives dans la pile. Les données excessives peuvent être stockées dans d'autres variables de pile, y compris l'adresse de retour de la fonction. Lorsque la fonction revient, elle passe au code malveillant sur la pile, ce qui pourrait corrompre l'ensemble du système. Les données adjacentes sur la pile sont affectées et forcent le programme à se bloquer.

Techopedia explique Stack Smashing

Si le programme affecté par l'écrasement de pile accepte des données provenant de réseaux non approuvés et s'exécute avec des privilèges spéciaux, c'est un cas de vulnérabilité de sécurité. Si le tampon contient des données fournies par un utilisateur non fiable, la pile peut être corrompue en injectant du code exécutable dans le programme, obtenant ainsi un accès non autorisé à un ordinateur. Un attaquant peut également écraser les informations de flux de contrôle stockées dans la pile.


Comme l'écrasement de pile est devenu une vulnérabilité très grave, certaines technologies sont mises en œuvre pour surmonter la catastrophe de l'écrasement de pile. La protection contre le débordement du tampon de pile modifie l'organisation des données dans le cadre de pile d'un appel de fonction pour inclure des valeurs canaries. Ces valeurs, lorsqu'elles sont détruites, indiquent qu'un tampon le précédant en mémoire a été débordé. Les valeurs Canary surveillent les débordements de tampon et sont placées entre les données de contrôle et le tampon de la pile. Cela garantit qu'un débordement de tampon corrompt le canari en premier. Une vérification échouée des données canaries signifie un débordement dans la pile. Les trois types de canaris sont aléatoires, Terminator et Random XOR.


Le canari de terminateur est basé sur le fait que l'attaque de dépassement de tampon de pile dépend des opérations de chaîne se terminant aux terminateurs. Les canaris aléatoires sont générés de manière aléatoire à partir d'un démon de collecte d'entropie, ce qui empêche les attaquants de connaître les valeurs. Les canaris aléatoires sont générés à l'initialisation du programme et stockés dans des variables globales. Les canaris XOR aléatoires sont des porteurs aléatoires qui sont brouillés XOR à l'aide de données de contrôle. Il est similaire aux canaris aléatoires, sauf que la «méthode de lecture depuis la pile» pour obtenir le canari est complexe. Le pirate a besoin du canari, de l'algorithme et des données de contrôle pour produire le canari original. Ils protègent contre les attaques impliquant des tampons débordants dans une structure en pointeurs pour changer le pointeur pour pointer sur une donnée de contrôle.

Qu'est-ce que l'écrasement de pile? - définition de techopedia