Description
Ce cours est une introduction à la sécurité des systèmes d’exploitation. Il propose une initiation à la programmation noyau sous Linux et à l’exploitation des failles noyaux depuis l’espace utilisateur ainsi qu’une initiation aux attaques physiques.
Le but est de donner les clés nécessaires pour:
- Comprendre les articles de recherche du domaine;
- Réaliser un audit de sécurité sur une distribution ou un système Unix;
- Programmer des modules pour le noyau Linux et connaître quelques aspects de la programmation noyau;
- Savoir programmer un rootkit noyau Linux avec plusieurs fonctionnalités;
- Savoir exploiter les bugs du noyau depuis l’espace utilisateur et connaître les différentes méthodes de remédiations pour s’en défendre;
- Faire des attaques physiques sur un système embarqué de type Io.T
Plan du cours
- Introduction to Linux Kernel Programming
- Programming a Linux Kernel Rootkit
- Linux Kernel Exploits and Mitigations
- Physical Attacks on Embedded Systems
Références
- Understanding the Linux Kernel (3nd edition), by Daniel P. Bovet and Marco Cesati, 2005.
- Linux Device Drivers (3nd edition), by Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman, 2005.
- The Linux Kernel Module Programming Guide, by Peter Jay Salzman, Michael Burian, and Ori Pomerantz, 2007
- Linux Kernel Development (3rd Edition), by Robert Love, 2010.
- Designing BSD Rootkits: An Introduction to Kernel Hacking, by Joseph Kong, 2007.
- A Guide to Kernel Exploitation: Attacking the Core, by Enrico Perla and Massimilio Oldani, 2010.
Enseignants
- Emmanuel FLEURY (responsable)