IGFF CSC 4534
M1
Graduate
Fall
Programme Ingénieur
Français/French
4
45
90
À la fin du cours, les étudiants devront comprendre les enjeux du développement sécurisé, ainsi que les menaces courantes. Ils auront acquis certains réflexes et bonnes pratiques dans leur manière de développer, afin qu'ils soient capables d'intégrer la sécurité au plus tôt dans le développement logiciel.
De plus, il serait souhaitable que les élèves développent pendant ce cours un esprit critique leur permettant d'adapter leur connaissance aux nouvelles menaces.
Connaître un langage de programmation, Utilisation Unix
développement, méthodologie, sécurité, qualité logicielle
La validation de cette UV se fait sur deux TP notés à réaliser individuellement, et sur un projet bibliographique en binôme présenté devant la classe. Le module fera également l'objet de quelques QCM rapides en début de sessions pour apporter un bonus de contrôle continu.
Note = (TP1 + TP2 + Exposé) / 3 + CC
(Le contrôle continu consiste en des questionnaires réalisés pendant les séances et permet d'ajouter jusqu'à 2 points à la moyenne)
Aucune lecture n'est nécessaire préalablement à ce cours, mais voici quelques liens utiles pour les étudiants intéressés :
- la liste de diffusion oss-security (http://www.openwall.com/lists/oss-security/) sur laquelle sont publiées des vulnérabilités et des correctifs de sécurité concernant des logiciels libres ;
- le site web du CERT-FR (http://www.cert.ssi.gouv.fr/) ou la liste de diffusion correspondante permet d'obtenir des informations sur les vulnérabilités existantes, ainsi que de l'information plus large sur l'actualité de la SSI ;
- Smashing Stack For Fun and Profit, l'article historique décrivant l'exploitation d'un dépassement de tampon (http://insecure.org/stf/smashstack.html) ;
- les études de l'ANSSI sur les langages de programmation: JavaSec (https://www.ssi.gouv.fr/javasec) et LaFoSec (https://www.ssi.gouv.fr/lafosec).
Le module repose sur une proportion importante de partique (travaux pratiques), et vise à donner les bases méthodologiques pour développer de manière propre et sécurisée. Il est également prévu un exposé en binôme pour développer la compréhension d'une faille logicielle.