Concept

Return-to-libc attack

Résumé
Une attaque de type return-to-libc est une attaque informatique démarrant généralement par un dépassement de tampon dans lequel l'adresse de retour dans la pile est remplacée par l'adresse d'une autre fonction et une seconde partie de la pile est modifiée pour fournir les paramètres à cette fonction. Ceci permet à un attaquant d'utiliser une fonction existante et d'éviter d'injecter du code malveillant dans le programme. La bibliothèque partagée libc fournit le moteur d'exécution C sur les systèmes de type Unix. Bien que l'attaquant puisse faire pointer l'adresse de retour n'importe où, libc est la cible la plus probable car étant toujours liée au programme et fournissant des fonctions utiles (comme la fonction system() qui ne nécessite qu'un seul paramètre et permet d'exécuter un programme arbitraire). C'est pour cette raison que cet exploit est appelé return-to-libc même si l'adresse de retour peut pointer sur un endroit totalement différent. Une pile non-exécutable peut protéger de l'exploitation de certains dépassements de tampon mais pas d'une attaque de type return-to-libc car seul du code exécutable existant est utilisé. D'autres protections contre les dépassements de tampon peuvent empêcher ou entraver l'exploitation en détectant la corruption de la pile et éventuellement supprimer le segment compromis. L'address space layout randomization (ASLR) laisse très peu de chance de réussite pour ce type d'attaque sur une machine 64-bits car les positions des fonctions en mémoire sont aléatoires. Pour les systèmes 32-bits, l'ASLR n'est pas très avantageux car seuls 16 bits sont aléatoires, et peuvent ainsi être trouvés par force brute en quelques minutes. Dans certains systèmes d'exploitation, le chargement des bibliothèques en mémoire s'effectue à une adresse contenant au moins un octet de poids fort égal à 0x00. Ceci empêche l'attaquant d'utiliser l'adresse lors de l'exploitation du buffer overflow, l'octet 0x00 (null) correspondant au caractère de fin de chaîne.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.