Éditeurs de liens, chargeurs et exécutables

Quel est l'objectif de l'ASLR (randomisation de l'agencement de l'espace d'adressage) ?

  1. AChanger à chaque exécution les adresses de la pile, du tas, des bibliothèques, etc., pour qu'un attaquant puisse difficilement prévoir les adresses visées
  2. BChoisir les adresses mémoire au hasard pour améliorer le taux de succès du cache
  3. CLibérer au hasard la mémoire inutilisée pour augmenter l'espace libre
Afficher la réponse et l'explication

Réponse : A. Changer à chaque exécution les adresses de la pile, du tas, des bibliothèques, etc., pour qu'un attaquant puisse difficilement prévoir les adresses visées

Dans les attaques exploitant un débordement de tampon notamment, connaître l'adresse des fonctions de bibliothèque ou des données sur la pile est essentiel. L'ASLR décale à chaque démarrage de processus les adresses de la pile, du tas, des bibliothèques partagées et de l'exécutable, empêchant l'attaquant de viser des adresses fixes. Elle ne suffit pas seule à tout empêcher et s'utilise en combinaison avec d'autres mesures, comme la séparation écriture-exécution.

S'entraîner sur ce thème Retour au thème

Autres questions sur Éditeurs de liens, chargeurs et exécutables

  1. Quelle est la principale raison de produire un exécutable sous forme de PIE (exécutable indépendant de la position) ?
  2. Que fait le chargeur de l'OS au démarrage d'un programme (execve sous Linux notamment) ?
  3. Quelle affirmation concernant l'adresse où l'OS commence l'exécution d'un programme C (point d'entrée) est correcte ?
  4. Lorsque la fonction main d'un programme C se termine par « return 3; », que devient généralement cette valeur 3 ?
  5. Que se passe-t-il lorsqu'on applique la commande strip à un exécutable ?

Comparatifs sur ce thème