A l'issue de cette unité, l'étudiant·e sera capable de :
- de décrire les types d'attaques les plus courants contre un logiciel ;
- d'identifier et d'expliquer les vulnérabilités typiques dans les logiciels et de proposer les mesures préventives adaptées ;
- d'évaluer et appliquer les méthodes et outils pour tester la sécurité des logiciels ;
- de lister les bonnes pratiques de développement sécurisé ;
- de concevoir des systèmes de validations d'entrées (input validation) ;
- d'encoder correctement les sorties d'un système ;
- de mettre en place correctement l'authentification (mots de passe, multifacteur) ;
- de mettre en place des contrôles d'accès ;
- de protéger les données sensibles ;
- de protéger les communications ;
- de mettre en place des historiques des événements (logs) d'une application ;
- de comparer les mécanismes de sécurité existants dans divers langages de programmation ;
- d'utiliser correctement le langage de programmation Rust ;
- d'utiliser des outils permettant de développer et de tester de manière efficace afin d'obtenir une application sécurisée ;
- d'utiliser un fuzzer.
- Professeur-e: Augier Maxime