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.