Présentation

Effectué

Les applications modernes dépendent fortement des composants open source et des bibliothèques tierces. Bien que ces dépendances accélèrent le développement et fournissent des fonctionnalités éprouvées, elles introduisent également des vulnérabilités de sécurité et des risques de conformité des licences. L’analyse de composition logicielle (SCA) fournit des outils et processus automatisés pour identifier, suivre et gérer les risques de sécurité et de conformité dans votre chaîne d’approvisionnement logicielle.

Sans analyse systématique des dépendances, les organisations ne connaissent pas les vulnérabilités dans leurs applications jusqu’à ce que les violations se produisent. Les chercheurs en sécurité découvrent des milliers de nouvelles vulnérabilités dans les composants open source chaque année, et les applications utilisant des versions affectées restent vulnérables jusqu’à ce que les dépendances soient mises à jour. Le suivi manuel des dépendances entre des centaines d’applications n’est pas pratique, nécessitant des solutions SCA automatisées.

Ce module fournit des conseils complets sur l’implémentation de l’analyse de composition logicielle dans vos flux de travail de développement. Vous allez découvrir les principes fondamentaux de la SCA, implémenter la détection automatisée des vulnérabilités avec GitHub Dependabot, intégrer des outils SCA dans Azure Pipelines, automatiser l’analyse des conteneurs et interpréter les alertes de sécurité pour hiérarchiser efficacement la correction.

Ce que vous allez apprendre

Ce module couvre les connaissances essentielles pour l’implémentation de l’analyse de composition logicielle :

  • Présentation de l’analyse de la composition logicielle : Vous allez découvrir ce que sCA est, pourquoi il est essentiel pour le développement moderne, quels outils SCA détectent et les avantages de l’analyse automatisée des dépendances. Comprendre les principes fondamentaux de l’autorité de certification SCA vous aide à reconnaître pourquoi la gestion manuelle des dépendances ne s’adapte pas et comment les outils automatisés offrent une visibilité continue des risques de sécurité et de conformité.

  • Inspection et validation des bases de code : Vous allez apprendre à inventorier toutes les dépendances dans vos applications, valider la conformité des licences pour éviter les problèmes juridiques, détecter les vulnérabilités de sécurité connues via des bases de données CVE et évaluer la qualité des dépendances, notamment l’état de maintenance et l’intégrité de la communauté.

  • Implémentation de GitHub Dependabot : Vous découvrirez comment GitHub Dependabot analyse automatiquement les dépendances pour détecter les vulnérabilités, crée des demandes de tirage avec des mises à jour de sécurité, génère des graphiques de dépendances présentant des dépendances transitives et s’intègre à l’onglet Sécurité GitHub pour la gestion centralisée des vulnérabilités.

  • Intégration de SCA dans des pipelines : Vous allez découvrir comment implémenter l’analyse automatisée dans Azure Pipelines pendant la génération et le déploiement, configurer des outils SCA, y compris Mend (WhiteSource), Snyk et OWASP Dependency-Check, établir des portes de qualité qui échouent lorsque des vulnérabilités critiques sont détectées et générer une facture logicielle de matériaux (SBOM) pour la conformité et la transparence.

  • Examen des outils SCA : Vous allez comparer différentes solutions SCA qui comprennent leurs forces, limitations et cas d’usage idéaux. Les outils couverts incluent des offres commerciales telles que Mend et Snyk qui fournissent une analyse complète avec prise en charge, des options open source telles que OWASP Dependency-Check pour l’analyse rentable et des solutions intégrées à la plateforme comme les sources en amont d’Azure Artifacts et GitHub Dependabot.

  • Automatisation de l’analyse des conteneurs : Vous allez apprendre à analyser les images de base de conteneurs pour détecter les vulnérabilités, analyser les dépendances d’application au sein des conteneurs, intégrer l’analyse des conteneurs dans des pipelines CI/CD et configurer des registres de conteneurs tels qu’Azure Container Registry et Docker Hub pour bloquer automatiquement les images vulnérables.

  • Interprétation des alertes du scanneur : Vous découvrirez comment évaluer la gravité des vulnérabilités à l’aide des scores CVSS, déterminer l’exploitabilité en considérant si les vulnérabilités sont accessibles dans votre application, hiérarchiser la correction en fonction de l’impact et du risque métier, et gérer les faux positifs qui peuvent submerger les équipes si elles ne sont pas correctement filtrées.

Objectifs d’apprentissage

Une fois ce module terminé, vous pourrez :

  • Comprendre l’analyse de composition logicielle (SCA) et reconnaître pourquoi l’analyse automatisée des dépendances est essentielle pour gérer les risques de sécurité et de conformité dans les applications modernes conçues à partir de composants open source.
  • Inspectez et validez les bases de code en stockant toutes les dépendances, notamment les dépendances transitives, en validant la conformité des licences, en détectant les vulnérabilités connues par le biais de bases de données CVE et en évaluant la qualité des dépendances.
  • Implémentez GitHub Dependabot pour détecter automatiquement les dépendances vulnérables, recevoir des demandes de tirage avec des mises à jour de sécurité, visualiser des graphiques de dépendances et intégrer des alertes de vulnérabilité à l’onglet Sécurité GitHub.
  • Intégrez des contrôles SCA dans Azure Pipelines en implémentant l’analyse automatisée pendant les builds, en configurant des portes de qualité qui échouent les builds en présence de vulnérabilités critiques, en générant des rapports de conformité et en créant une liste de matériaux logiciels (SBOM).
  • Examinez et configurez des outils SCA , notamment des solutions commerciales telles que Mend (WhiteSource) et Snyk, des outils open source comme OWASP Dependency-Check et des solutions intégrées à la plateforme comme les sources en amont d’Azure Artifacts.
  • Automatisez l’analyse des images conteneur pour détecter les vulnérabilités dans les images de base et les dépendances d’application, intégrer l’analyse dans les flux de travail CI/CD et configurer des registres pour empêcher le déploiement de conteneurs vulnérables.
  • Interpréter les alertes des outils d’analyse en évaluant la gravité avec les scores CVSS, en déterminant l’exploitabilité et l’accessibilité, en hiérarchisant la correction en fonction de l’impact de l’entreprise et en gérant efficacement les faux positifs.

Conditions préalables

Voici les prérequis pour commencer ce module :

  • Compréhension des dépendances logicielles : Connaissance de base de la façon dont les applications utilisent des bibliothèques, des frameworks et des packages à partir de gestionnaires de packages tels que npm, pip, NuGet ou Maven.
  • Connaissance des concepts DevOps : Compréhension de l’intégration continue, de la livraison continue, des pipelines de build et du cycle de vie du développement logiciel.
  • Expérience de contrôle de version : Expérience de base avec Git, les pull requests et la revue de code dans des flux de travail où la gestion des dépendances a généralement lieu.
  • Sensibilisation open source : Comprendre en général que les composants open source peuvent contenir des vulnérabilités de sécurité et avoir des exigences de licence (les connaissances des modules précédents sont bénéfiques).
  • Expérience Azure DevOps ou GitHub : Familiarisez-vous avec Azure Pipelines ou GitHub Actions pour implémenter l’analyse automatisée dans les flux de travail CI/CD.

L’expérience de travail dans les organisations qui fournissent des logiciels est bénéfique, mais pas nécessaire. Ce module s’appuie sur les concepts logiciels open source et fournit des conseils d’implémentation pratiques pour l’analyse de la composition logicielle.