Panorama des vulnérabilités logicielles : débordement dans la pile, return-into-libc, débordement dans le tas, DATA, BSS, chaînes de caractères, entiers ;
– Les risques et précautions liées à l’utilisation de programmes SUID ;
– Les contre-mesures techniques pour faire face à ces différentes vulnérabilités (les mécanismes de protection usuels des compilateurs, les canary, la randomization de l’espace d’adressage (ASLR), etc) ;
– Historique des virus et des vers ;
– Présentation des anti-virus (théorème de Cohen), des techniques de détection et de leur efficacité et de la conduite à tenir ;
– Expérimentations de techniques de détection des vers et virus ;
– Bonnes pratiques, langages restreints et cycles de développement et validation du code ;
– Programmation défensive, principes du moindre privilège dans les programmes SUID, utilisation d’API plus sûres ;
– Preuves formelles.
Sécurité du logiciel
Description
Objectifs
A la fin de ce module, l'étudiant devra avoir compris et pourra expliquer (principaux concepts) : - Les différents types de vulnérabilités logicielles que l'on rencontre fréquemment, en particulier dans les programmes écrits en langage C ; L'étudiant devra être capable de : - Développer des logiciels en tenant compte des risques liés aux vulnérabilités logicielles ;
- Les contre-mesures usuelles de protections mémoires permettant de se protéger de ces différents types de vulnérabilités ;
- La théorie liée aux vers et virus, en particulier les algorithmes utilisés par les vers et virus pour infecter les systèmes informatique et se répandre, les protections contre ces malveillances et le fonctionnement des antivirus et des méthodes qu'ils emploient ;
- Les bonnes pratiques pour développer du logiciel de façon sécurisée.
- Les méthodes formelles permettant le développement de logiciel sécurisés
- Employer les méthodes formelles pour la détection de vulnérabilités logicielles ;
- Apprécier les enjeux de la protection virale, décrire les différents types d¿infection informatique, analyser les techniques virales et antivirales et réagir en cas d'infection
Pré-requis
De bonnes compétences en programmation en langage C et assembleur ;
- Un minimum de connaissances sur le fonctionnement des OS ;
- Des bases en algèbre et sur l¿utilisation de la théorie des automates
Évaluation
L’évaluation des acquis d’apprentissage est réalisée en continu tout le long du semestre. En fonction des enseignements, elle peut prendre différentes formes : examen écrit, oral, compte-rendu, rapport écrit, évaluation par les pairs…
En bref
Crédits ECTS :
Nombre d’heures :

INSA Toulouse
135 avenue de Rangueil
31077 Toulouse cedex 4
Tél : 05 61 55 95 13
Fax : 05 61 55 95 00

Dans un souci d'alléger le texte et sans aucune discrimination de genre, l'emploi du genre masculin est utilisé à titre épicène.