Dernière mise à jour : 12/06/2024
Chaque année, des vulnérabilités logicielles sont exploitées par des attaquants. Les logiciels sont au coeur de nos systèmes informatiques et sont une cible de choix. Il est possible d'éviter de nombreuses vulnérabilités en adoptant de bons réflexes de
développement sécurisé.
• Comprendre les différentes vulnérabilités web et applicatives utilisées par les attaquants
• Connaitre les outils de développement sécurisé
• Acquérir les bonnes pratiques de développement d'application pour développer de façon sécurisée
• Développeurs
• Équipes informatique ou sécurité
• Chefs de projet
• Consultants
• Gestionnaires de risques
• Avoir une culture générale en informatique
• Connaitre un langage de programmation
Introduction aux enjeux de la sécurité logicielle
• Définition de la cybersécurité
• Analyse d'attaques récentes et de leurs conséquences
• Le logiciel : vecteur d'attaque
• Concepts de sécurité : confidentialité, intégrité et disponibilité, sécurité par défaut, défense en profondeur…
• Les acteurs de la sécurité des développements logiciels
• Les standards de la sécurité en développement logiciel
Les pratiques recommandées
• La formation à la sécurité des personnes
• L'analyse de risques intégrée dans un cycle de développement
• Les spécifications des exigences de sécurité liées aux spécifications du logiciel
• Les choix de design du logiciel
• L'implémentation du logiciel
• La vérification : l'importance du test dans le développement et la maintenance
• Le déploiement sécurisé des applications
• Protéger la confidentialité des échanges : introduction au chiffrement
Les principales failles de sécurité et contre-mesures
• Classement du MITRE CWE/SANS des erreurs logicielles les plus dangereuses
• Les principales sources de vulnérabilités : gestion des entrées/sorties (chaines de caractères, fichiers, entiers)
• Cas pratiques : analyse de codes vulnérables, exploitation et application de correctifs :
Les pratiques de développement
• Tests lors du développement
• La pratique des tests d'intrusion
• Les tests statiques et dynamiques
• Audit de code
• Cas pratique : déroulé de tests
• Les outils existants intégrables dans une chaine de développement (DevSecOps)