Le monde du développement logiciel évolue constamment et avec lui, les défis liés à la sécurité des applications. Dans cette formation DevSecOps, nous allons explorer l'importance croissante de la sécurité dans le cycle de développement et comment elle peut être intégrée efficacement pour détecter, trier et corriger les vulnérabilités.
Nous aborderons des sujets tels que :
- Les principes fondamentaux de DevSecOps et son importance dans le développement moderne
- Les méthodes pour identifier et analyser les vulnérabilités dans le code source et les composants logiciels
- Les stratégies pour prioriser et gérer les vulnérabilités en fonction de leur gravité et de leur impact potentiel
- Les meilleures pratiques et outils pour corriger les vulnérabilités et améliorer la sécurité des applications
Cette formation combine théorie et pratique, avec des études de cas réels, des démonstrations et des exercices pratiques. Notre objectif est de vous fournir les compétences et les connaissances nécessaires pour appliquer les principes de DevSecOps dans votre environnement de travail, améliorant ainsi la sécurité et la robustesse de vos applications.
Public :
Ce cours s'adresse principalement aux membre des équipes de développement, d’intégration et de production, DevOps, SRE et DevSecOps souhaitant renforcer leur connaissances, ainsi qu'aux responsables informatiques, chefs de projets, architectes, product owner souhaitant mieux comprendre les enjeux, les tactiques et les procédures de la sécurisation logicielle.
Prérequis :
Pour suivre cette formation DevSecOps, il est nécessaire d’avoir une bonne connaissance des systèmes Linux, d'avoir des rudiments de sécurité des applications web et de maîtriser au moins un langage de développement parmi PHP, Java, Python ou Javascript.
Les principes fondamentaux de DevSecOps et l'importance de la sécurité dans le développement moderne
Introduction au DevSecOpsDéfinition et origine : comprendre ce qu'est DevSecOps et comment il évolue à partir des pratiques de DevOps
Principes clés : examiner les principes fondamentaux du DevSecOps, comme l'intégration de la sécurité dès le début du cycle de développement
Avantages : discuter des avantages du DevSecOps, notamment la réduction des risques et l'amélioration de la qualité du logicielIntégration de la sécurité dans le cycle de développementSécurité dès la conception : souligner l'importance d'intégrer la sécurité dès les premières phases de la conception
Outils et automatisation : présenter les outils couramment utilisés pour automatiser les tests de sécurité dans les pipelines CI/CD
Collaboration Interfonctionnelle : expliquer comment la collaboration entre les développeurs, les opérations et les équipes de sécurité est essentielle pour réussir le DevSecOpsRappel sur OWASP Top 10Introduction au projet OWASP Top 10, qui répertorie les 10 risques de sécurité les plus critiques pour les applications web. Brève histoire de l'OWASP Top 10 et comment il a évolué au fil des ans pour répondre aux nouvelles menaces.
Les risques de sécurité du Top 10 : Injection SQL, XSS, et autres vulnérabilités : discussion détaillée sur des vulnérabilités courantes comme les injections SQL et les attaques par cross-site scripting (XSS)
Exemples et études de Cas : analyse d'exemples réels d'attaques et de vulnérabilités pour illustrer comment elles se produisent et leurs impactsPrévention et mitigationStratégies de prévention : conseils sur les meilleures pratiques pour prévenir chaque risque listé dans l'OWASP Top 10
Outils et ressources : présentation d'outils et de ressources utiles pour détecter et atténuer les vulnérabilitésApplication de l’OWASP Top 10 dans le cadre DevSecOpsIntégration dans les pipelines CI/CD : comment intégrer la vérification des vulnérabilités du Top 10 dans les pipelines de développement continu
Formation et sensibilisation des Équipes : l'importance de former et de sensibiliser les équipes de développement et de sécurité aux risques du Top 10 et aux meilleures pratiques pour les éviterIdentification et analyse des vulnérabilités dans le code source et les composants logiciels
Comprendre les vulnérabilités dans le code sourceTypes de vulnérabilités : exploration des différentes catégories de vulnérabilités dans le code
Exemples et analyse de Code : présentation d'exemples concrets de code vulnérable et analyse de pourquoi et comment ces vulnérabilités se produisent
Utilisation de code source Sûr : discussion sur les pratiques de développement sécurisé, incluant la rédaction de code propre et sécuriséOutils pour détecter les vulnérabilitésScanners de vulnérabilités statiques (SAST) : introduction aux outils SAST, leur fonctionnement, et comment les intégrer dans le processus de développement
Scanners de vulnérabilités dynamiques (DAST) : présentation des outils DAST, leur rôle dans la détection des vulnérabilités au sein d'applications en cours d'exécution
Démos et tutoriels : démonstrations pratiques de l'utilisation de ces outils pour identifier les vulnérabilitésAnalyse des composants logiciels
Gestion des dépendances : comprendre l'importance de gérer les dépendances logicielles et les risques liés aux bibliothèques/librairies/packages/images Docker tiers
Scanners de composants logiciels (SCA) : explication de la façon dont les scanners de composants logiciels aident à détecter les vulnérabilités dans les bibliothèques tierces
Meilleures pratiques : fournir des stratégies pour maintenir les dépendances à jour et sécuriséesTriage des vulnérabilitésPriorisation des risques : enseigner comment évaluer et prioriser les vulnérabilités en fonction de leur gravité et de leur impact potentiel (calcul de CVSS dans ses différentes versions)
Gestion des faux positifs : stratégies pour gérer efficacement les faux positifs souvent générés par les outils de scan de sécurité
Communication et collaboration : importance de la communication entre les équipes de développement et de sécurité pour un triage efficace des vulnérabilitésAteliers pratiquesExercices : séances d’identification et de correction de vulnérabilités dans des exemples de code
Analyse de cas réels : travailler sur des études de cas basées sur des scénarios réels pour appliquer les compétences acquises dans un contexte pratique
Feedback et discussions de groupe : sessions interactives pour discuter des résultats des ateliers, partager des expériences, et apprendre des meilleures pratiques des autresStratégies pour prioriser et gérer les vulnérabilités en fonction de leur gravité et impact potentiel
Comprendre la gravité et l'impact des vulnérabilitésÉvaluation des risques : introduction aux méthodes d'évaluation des risques associés aux vulnérabilités, y compris la gravité, l'exploitabilité, et l'impact
Frameworks d'évaluation : présentation de cadres d'évaluation standard, tels que le Common Vulnerability Scoring System (CVSS), pour classer et prioriser les vulnérabilitésStratégies de priorisation des vulnérabilitésCritères de priorisation : discussion sur les critères à considérer pour prioriser les vulnérabilités, comme l'exposition, la criticité des systèmes affectés, et la facilité d'exploitation
Planification de la réponse : comment élaborer des plans d'action pour traiter les vulnérabilités en fonction de leur prioritéGestion des vulnérabilitésProcessus de gestion des vulnérabilités : établir un processus systématique pour la gestion des vulnérabilités, de la détection à la résolution
Outils de gestion des vulnérabilités : examiner les outils et plateformes disponibles pour aider à la gestion et au suivi des vulnérabilitésCorrection des vulnérabilitésTechniques de correction : techniques et meilleures pratiques pour corriger efficacement les vulnérabilités, y compris la réécriture du code, la mise à jour des dépendances et la configuration de la sécurité
Tests de non-régression : l'importance des tests post-correction pour s'assurer que les vulnérabilités sont entièrement résolues et que de nouvelles failles n'ont pas été introduitesDocumentation et rapportsDocumentation des vulnérabilités et des corrections : l'importance d'une documentation détaillée pour la traçabilité et la conformité
Rapports de sécurité : créer des rapports de sécurité efficaces pour communiquer les problèmes de vulnérabilités et les actions correctives aux parties prenantesAteliers et études de casExercices pratiques : ateliers pratiques pour appliquer les techniques de correction sur des cas de vulnérabilités réelles ou simulées
Retour d'expérience : analyser les retours d'expérience et les leçons apprises de cas réels de gestion et de correction de vulnérabilitésMeilleures pratiques et outils pour améliorer la sécurité des applications
Intégration de la sécurité dans le cycle de vie du développementDéveloppement sécurisé (Secure Coding) : approfondir les principes du développement sécurisé et comment ils s'intègrent dans le cycle de vie du développement logiciel
Sécurité en tant que culture : encourager une culture de la sécurité au sein des équipes de développement, opérations et sécuritéOutils et technologies de sécurité dans DevSecOpsAutomatisation de la sécurité : présentation des outils et technologies pour automatiser la sécurité dans les pipelines CI/CD
Sélection et mise en œuvre d'outils : conseils pour choisir et implémenter efficacement les outils de sécurité dans le cadre DevSecOps (par exemple génération de SBOM)Patterns/Anti-Patterns, meilleures pratiques de sécuritéSécurité par conception : approfondir les concepts de "Security by Design" et leur application pratique
Gestion des secrets : stratégies pour la gestion sécurisée des secrets, comme les clés API et les mots de passeMonitoring et réponse aux incidentsSurveillance en continu : techniques pour la surveillance continue de la sécurité des applications
Planification et réponse aux incidents : établir des plans de réponse aux incidents de sécurité et pratiquer des simulations d'incidentConformité et normes de sécuritéConformité réglementaire : discussion sur les exigences de conformité liées à la sécurité des applications (comme RGPD, LPM, NIST, DORA …)
Normes et framework : introduction aux normes de sécurité reconnues et à leur application dans le cadre de DevSecOpsAteliers et discussionsScénarios pratiques : mise en pratique des meilleures pratiques à travers des scénarios et ateliers interactifs
Discussions de groupe : échanges sur les défis et solutions liés à l'intégration de la sécurité dans le développement logiciel