É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

Sandrine Blazy (responsable), Colas Le Guernic