? Sécurité informatique devient ésotérique lorsqu'il s'agit de failles de sécurité au niveau du matériel. Même la structure d'exécution de base des ordinateurs a des trous que les pirates peuvent exploiter. Les ingénieurs doivent continuellement développer des techniques pour contourner les attaques de pirates . Pour faire face à la manipulation de la mémoire exploite comme les dépassements de tampon , les ingénieurs de la pile développée ou adresse aménagement de l'espace , la randomisation . Cette technique permet attaques traditionnelles et reproductibles moins efficace et protège les ordinateurs de failles de sécurité de base. L'appel Stack
La structure de données générique défini comme une "pile" représente une liste de base des articles dans lesquels ajoute chaque élément ajouté à la fin de la liste , et chaque élément supprimé provient de la fin de la liste dans un ordre dernier entré , premier sorti. La pile d'appel d'une course programme fonctionne bien de la même manière . Au lieu d'éléments de données simples , cependant, la pile d'appel organise références en mémoire de fonctions dans le programme d'exécution.
Tampons mémoire et la mémoire vulnérabilité
Un des inconvénients de en utilisant la structure de données de la pile à organiser des programmes est liée à la façon dont la mémoire est organisée . Bien que chaque fonction en cours d'exécution dans un programme se trouve dans la pile d'appel , ils sont souvent assis côte-à- côte dans la mémoire physique. Par conséquent, si les dépassements un attaquant un tampon variables en offrant trop de données pour une structure de données pour gérer , par exemple , l'information supplémentaire peut écraser les données dans des emplacements de mémoire physique adjacents , ce qui affecte le flux d'exécution du programme.
stack randomisation
Pour répondre aux préoccupations de sécurité , les ingénieurs ont développé une technique d'allocation de mémoire appelée randomisation de la pile, ou l'espace d'adressage de la randomisation du format . En règle générale, la mémoire est allouée de façon séquentielle au cours de l'exécution du programme . Lorsqu'un programme démarre, il est attribué au prochain espace de mémoire disponible dans la mémoire. Lorsque vous utilisez la randomisation de la pile, l'ordinateur détermine un emplacement pseudo- aléatoire basé sur un décalage prédéterminé. Les pointeurs de trame sur la pile sont placés par ce décalage ainsi . Le décalage est déterminé au moment du démarrage du système d'exploitation.
Stack randomisation et la sécurité
raison de la randomisation de la pile, les données du programme ne réside pas entièrement consécutivement dans la mémoire du système . Cela pose un problème pour les pirates qui tentent d' utiliser une attaque comme un dépassement de mémoire tampon . Même si un dépassement de mémoire tampon peut se produire , les effets ne peuvent être prédéterminés. Avant la randomisation de la pile, si un pirate savait combien de données à utiliser dans un dépassement de mémoire tampon , il pourrait utiliser le même exploit sur le même programme , à plusieurs reprises . Avec randomisation , aucune attaque tampon est un succès garanti entre chaque instance en cours d'exécution d'un programme , même sur le même ordinateur .