ECTS
3 crédits
Composante
UFR Informatique
Période de l'année
Semestre 6
Description
Ce cours développe les fondations de la sécurité du logiciel. Nous étudierons les principales vulnérabilités logiciels ainsi que les attaques qui les exploitent (tel que les dépassements de tampon, les injections SQL ou les détournements de session). Nous aborderons également quelques mécanismes de défense permettant d'empêcher ou de restreindre l'impact de ces attaques. Nous insisterons en particulier sur l'importance de penser la sécurité du logiciel dès sa conception, y compris dans le choix des langages de programmation et l'utilisation de techniques d'analyse statique ou dynamique. Ce cours exige une maîtrise des outils Unix (ligne de commande, système de fichier) ainsi qu'une bonne connaissance du langage C et son écosystème (compilateur GCC, débogueur gdb).
Pré-requis nécessaires
- Cours Langage C du L2 :
- Utilisation du compilateur C
- Modèle mémoire C (pointeurs)
- Convention d'appel de fonctions
- Cours Système d'exploitation du L3 :
- Rôle du système d'exploitation
- Aisance avec le shell & terminal Linux
- Notion de processus
Syllabus
- Représentation machine des programmes
- TP : bombes logiques
- Pile d'appel et flot de contrôle
- TP : dépassements de tampon
- Attaques sur le Web
- TP : injections SQL, XSS
- Attaques par canaux cachés
Dernière mise à jour le 9 janvier 2023