Home / Teaching / Vulnérabilités logicielles: dépassements de tampons
Détails
Difficulté: ★ ★ ★ ★ ☆
Durée estimée: 10h
Language(s) utilisé(s): C, Assembleur x86, perl
Logiciel(s) utilisé(s): gcc, gdb
Objectifs
L'objectif principal de ce TP est d'expérimenter les mécanismes liés aux attaques par dépassement de tampon. Pour ce faire, des premiers exemples simples sont étudiés. Par la suite, est exposé l'utilisation des dépassements de tapons pour contrôler le flot d'exécution d'un programme. Finalement, sont exposés les problèmes et concepts auxquels un attaquant est confronté afin de développer une charge utile malveillante.
Plan du cours
- Rappels: compilation, allocation, exécution
- Espace d'adressage
- Fonctionnement de la pile d'exécution
- Comportements du compilateur
- Chaînes de caractères
- Premières attaques: confidentialité et intégrité des données
- Accès en lecture: atteinte à la confidentialité
- Accès en écriture: atteinte à l'intégrité
- La pile et son rôle dans le flot d'exécution
- Analyse approfondie du programme
- Attaque du programme
- Contremesures
- Exécution de code arbitraire: shellcode
- Écriture de la charge utile
- Exécution de l'attaque
- Maximiser les chances d'exécution
Sujet
Le sujet du cours est disponible ici.
no cookie, no javascript, no external resource, KISS!