~~NOTOC~~ ====== Sécurité Informatique ====== ===== Description ===== Ce cours développe les fondations de la sécurité du logiciel. Nous étudierons les principales vulnérabilités logicielles 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 fichiers) ainsi qu'une bonne connaissance du langage C et son écosystème (compilateur GCC, débogueur gdb). ===== Syllabus ===== ==== Sujets centraux ==== * 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 ===== Pré-requis ===== * Cours Langage C du L2 : * Utilisation du compilateur C * Modèle mémoire C (pointeurs) * Convention d'appel de fonctions * Cours [[sy5|Système d'exploitation du L3]] : * Rôle du système d'exploitation * Aisance avec le shell & terminal Linux * Notion de processus