2010-08-31 5 views
2

Possible en double:
Memory randomization as application security enhancement?ce qui est la mise en page Espace d'adressage aléatoire

salut,

Peut certains me expliquer s'il vous plaît ce que l'espace d'adressage Layout Randomization et comment est-il mis en œuvre. Comment cette technique affecte-t-elle la pile, le tas et les données statiques? Je suis également intéressé par tous les articles qui expliquent la randomisation de la disposition de l'espace adresse.

Merci & Cordialement,

Mousey.

Répondre

1

ASLR est une technique conçue pour rendre plus difficile l'exploitation de divers types de dépassements de tampon, en déplaçant des segments autour d'un bit. La pile peut être déplacée de quelques octets (ou pages), les sections de votre programme (et même les bibliothèques que votre code utilise) peuvent être chargées à différentes adresses, etc.

Les débordements de mémoire tampon fonctionnent généralement en incitant le processeur à fonctionner code à une certaine adresse (souvent sur la pile). ASLR complique cela en rendant l'adresse plus difficile à prévoir, car elle peut changer à chaque fois que le programme s'exécute. Très souvent, au lieu d'exécuter du code arbitraire, le programme va juste se bloquer. C'est évidemment une mauvaise chose, mais pas aussi grave que si un joker aléatoire était autorisé à prendre le contrôle de votre serveur.

Une forme très simple et brutale d'ASLR peut effectivement être implémentée sans l'aide du système d'exploitation, simplement en soustrayant une petite quantité du pointeur de la pile. (C'est un peu difficile à faire dans les langages de niveau supérieur, mais un peu plus simple dans C - et carrément trivial dans ASM.) Cela ne protégera que contre les débordements qui utilisent la pile, cependant. L'OS est plus utile. ça peut changer toutes sortes de choses si ça fait envie. Cela dépend cependant de votre système d'exploitation.

Questions connexes