Développement Sécurisé
Ref: 3IF5240
Description
La sécurité des logiciels est souvent absente des considérations au cours du développement des applications. Pourtant, il est possible -- et souhaitable -- de faire des choix de spécification et de conception qui favorisent la sécurité du logiciel produit. Certaines pratiques de programmation permettent d'implémenter des concepts de sécurité comme l'authentification, l'encapsulation, la gestion des exceptions, etc. L'objectif de ce cours est de présenter les différents concepts de sécurité qui sont soit intégrés aux langages, soit à redévelopper dans le langage utilisé.
Numéro de trimestre
SM11
Prérequis
Compilation
Systèmes d'exploitation
Modélisation et conception d'un système de supervision de capteurs
Syllabus
- Patrons de conception pour la sécurité
- Patrons de conception pour l'implémentation de la sécurité
- Sécurité applicative en Java
- Implémentation de la sécurité dans Spring
- Analyse statique de code C avec Frama-C
Composition du cours
CM 6h
TP 6h
Notation
2 Comptes-rendus de TP (1 TP Spring, 1 TP analyse statique)
La compétence C6 est validée par une note supérieure ou égale à 10 sur l'ensemble des comptes-rendus.
Ressources
Enseignants : Jean-François Lalande, Pierre Wilke
Résultats de l'apprentissage couverts par le cours
Développer des logiciels sécurisés
Choisir le langage approprié pour des besoins de sécurité donnés
Tester un logiciel déjà conçu
Connaître les protocoles de gestion d'identité et d'authentification
Description des compétences acquises à la fin du cours
C6.3 : software specification, design and validation
Support de cours, bibliographie
The Cybersecurity Body of Knowledge: The ACM/IEEE/AIS/IFIP Recommendations for a Complete Curriculum in Cybersecurity (Internal Audit and IT Audit) 1st Edition
by Daniel Shoemaker (Author), Anne Kohnke (Author), Ken Sigler (Author)