Étude des vulnérabilités des logiciels (EVL)
Description
- Comprendre les vulnérabilités qui peuvent affecter les programmes développés dans des langages où la gestion de la mémoire est effectuée directement par le programmeur (par exemple C, C++).
- S'intéresser aux mécanismes (au niveau du système d'exploitation, du compilateur) permettant de détecter ces vulnérabilités, voire d'en empêcher le déclenchement à l'exécution.
- Connaître les contre-mesures couramment employées pour se protéger contre ces vulnérabilités.
Ce cours est un cours de tronc commun du parcours securité du master
informatique. Il comprend de nombreux TPs et son nombre d'heures est
plus élevé que les autres cours du parcours Science Informatique
Mots-clés
vulnérabilité logicielle, corruption mémoire, shellcode, rétro-ingéniérie de code binaire, obfuscation de code
Prérequis
Langage C, connaître un langage assembleur, connaissances de base en système d'exploitation (gestion mémoire) et en compilation
Contenu
- Débordement mémoire
- Mise en œuvre au moyen de shellcode
- Rétro-ingéniérie de code
- Obfuscation de code
- Autres mesures préventives
- Analyse statique, analyse dynamique de code
Compétences acquises
À l'issue de cette UE, les étudiants maîtriseront les techniques d'analyse de code binaire, de découverte de vulnérabilités de type débordement de mémoire et de protection associées.
Enseignants
Emmanuel Fleury (responsable), Colas Le Guernic