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.
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.
L'objectif de ce cours est d'introduire les étudiants à la pensée algorithmique, de les familiariser avec les fondamentaux de l'Informatique et de développer une première compétence en programmation (
This is an introductory course to computer security and privacy. Its goal is to provide students with means to reason about security and privacy problems, and provide them with tools to confront them.
Discrete mathematics is a discipline with applications to almost all areas of study. It provides a set of indispensable tools to computer science in particular. This course reviews (familiar) topics a
Le Stack-Smashing Protector (également appelé SSP, et autrefois connu sous le nom de ProPolice) est une extension au compilateur GCC qui permet de minimiser les dommages qui peuvent être dus à des attaques de type dépassement de tampon. En particulier, il fournit une protection contre la corruption de pile (stack-smashing). La protection Stack-Smashing Protector a originairement été écrite, et est toujours entretenue, par Hiroaki Etoh d'IBM. La première implémentation a été faite pour GCC 3 et a ensuite été réécrite de façon moins intrusive puis intégrée dans GCC 4.
L’address space layout randomization (ASLR) (« distribution aléatoire de l'espace d'adressage ») est une technique permettant de placer de façon aléatoire les zones de données dans la mémoire virtuelle. Il s’agit en général de la position du tas, de la pile et des bibliothèques. Ce procédé permet de limiter les effets des attaques de type dépassement de tampon par exemple. Elle consiste à rendre la configuration des processus « aléatoire », en plaçant différents éléments de base à des endroits variables.
La protection de l'espace exécutable (executable space protection) correspond, en sécurité informatique, à une protection contre les dépassements de tampon en prévenant l'exécution d'un code sur la pile ou le tas. Une tentative d'attaque sur un système protégé ainsi provoque une exception. Des exemples d'implémentation de ce mécanisme sont : sous Linux : PaX, Exec Shield, et Openwall ; sous OpenBSD et d'autres systèmes : W^X ; sous Microsoft Windows : Data Execution Prevention. Dépassement de tampon Catégo
Couvre l'injection de code et les attaques de détournement de flux de contrôle, ainsi que des défenses telles que la prévention de l'exécution des données et Stack Canaries.
Présente les bases de la programmation LabVIEW, couvrant l'interface utilisateur, les types de données, la gestion des fichiers et la gestion des erreurs.
Explore les vulnérabilités dans les applications web et logicielles, en discutant le contrôle d'accès cassé, les défauts d'injection, et les stratégies de défense comme DEP et ASLR.