Aller au contenu

Analyse de Composition Logicielle (SCA)


L'Analyse de Composition Logicielle (SCA) est une pratique de sécurité qui automatise le processus d'identification des composants open-source et des dépendances tierces utilisés dans une base de code, puis les vérifie à la recherche de vulnérabilités connues, de problèmes de licence et de problèmes de versionnement. Les outils SCA analysent des artefacts tels que les gestionnaires de paquets, les fichiers manifestes ou les fichiers de verrouillage (par exemple, package.json, pom.xml, requirements.txt) pour détecter les bibliothèques non sécurisées ou obsolètes et aider les équipes à réagir avant que les problèmes n'atteignent la production.


Pourquoi la SCA est importante dans le DevSecOps moderne


La SCA joue un rôle essentiel dans le DevSecOps en :

  • Déplaçant la sécurité vers la gauche — permettant de détecter les vulnérabilités tôt dans le cycle de vie du développement
  • Améliorant la visibilité sur les risques liés aux dépendances à travers les dépôts et les équipes
  • Automatisant la conformité avec les licences open-source et les politiques de sécurité organisationnelles
  • Réduisant les surfaces d'attaque qui émergent des dépendances transitives ou imbriquées

En fin de compte, la SCA aide les organisations à maintenir une hygiène de sécurité tout en accélérant les vitesses de déploiement.


Comment Boost Security permet l'analyse SCA


Boost Security intègre l'analyse SCA dans vos flux de travail de développement pour inspecter automatiquement les dépôts de code source à la recherche de dépendances non sécurisées et de bibliothèques vulnérables.


Analyseurs pris en charge


Boost Security propose une suite complète d'analyseurs d'Analyse de Composition Logicielle (SCA) pour aider les équipes d'ingénierie et de sécurité à détecter les vulnérabilités dans les dépendances open-source. Ces analyseurs analysent les fichiers de verrouillage, les manifestes et le contenu du système de fichiers pour signaler les problèmes de sécurité connus à l'aide de bases de données de vulnérabilités sélectionnées.

Analyseur Nom du module du registre Flux Pull Request Description
Boost Security SCA boostsecurityio/boost-sca ✅ L'analyseur SCA natif de Boost Security qui exploite plusieurs vérifications open-source et internes avec des règles de sécurité sélectionnées.
Gestionnaires de paquets pris en charge
Snyk boostsecurityio/snyk-test ✅ Le module Snyk analyse les dépendances de paquets du projet à la recherche de vulnérabilités, en utilisant l'outil d'interface en ligne de commande (CLI) snyk avec la commande test (snyk test) pour la SCA.
Gestionnaires de paquets pris en charge
OSV Scanner boostsecurityio/osv-scanner ✅ Utilise la base de données Open Source Vulnerabilities (OSV) pour détecter les vulnérabilités connues dans les dépendances du projet.
Gestionnaires de paquets pris en charge
Bundler Audit boostsecurityio/bundler-audit ✅ Le module bundler audit analyse les dépendances du projet Ruby à la recherche de vulnérabilités en utilisant l'analyseur bundler-audit.
NPM Audit boostsecurityio/npm-audit ✅ Le module npm audit analyse les dépendances du projet Nodejs à la recherche de vulnérabilités, en utilisant l'analyseur npm audit.
Safety boostsecurityio/safety ✅ Le module Safety analyse les dépendances du projet Python à la recherche de vulnérabilités en utilisant l'analyseur safety.
Nancy boostsecurityio/nancy ✅ Le module Nancy analyse les dépendances du projet GoLang à la recherche de vulnérabilités en utilisant l'analyseur Nancy.
Trivy (Filesystem) boostsecurityio/trivy-fs ✅ Analyse le système de fichiers du projet à la recherche de dépendances open-source vulnérables.
Gestionnaires de paquets pris en charge
Dependabot boostsecurityio/dependabot ✅ Intègre GitHub Dependabot pour la surveillance des versions et la création automatique de pull requests pour les dépendances vulnérables.
Gestionnaires de paquets pris en charge

Chaque analyseur possède des capacités uniques, offrant aux organisations la flexibilité de choisir le bon outil pour leur écosystème. Boost Security prend en charge à la fois les analyseurs internes et tiers pour une couverture maximale.


Systèmes de Gestion de Code Source (SCM) pris en charge


Les capacités d'analyse SCA de Boost Security sont conçues pour être indépendantes de la plateforme, prenant en charge les intégrations avec tous les principaux fournisseurs SCM, notamment :

  • GitHub
  • GitLab
  • Bitbucket
  • Azure DevOps

La logique d'analyse et l'approche de configuration restent largement cohérentes à travers les SCM, garantissant une expérience unifiée quel que soit l'endroit où votre code est hébergé. Des événements tels que les pull requests, les fusions vers les branches par défaut (principales), ou les modifications de fichiers de dépendances peuvent tous déclencher des analyses, selon la configuration.


Comportement d'analyse par défaut


La plupart des analyseurs prennent en charge le déclenchement sur deux flux de travail clés :

  • Sur la branche principale : Déclenche une analyse lorsque le code est fusionné ou poussé vers la branche par défaut.
  • Sur Pull Request : Déclenche une analyse pour les modifications de code avant la fusion, aidant les réviseurs à évaluer le risque lié aux dépendances.
Analyseur Sur la branche principale Sur Pull Request
Boost Security SCA ✅ ✅
Bundler-Audit ✅ ✅
Nancy ✅ ✅
NPM Audit ✅ ✅
OSV Scanner ✅ ✅
Safety ✅ ✅
Snyk SCA ✅ ✅
Trivy FS ✅ ✅
Dependabot ✅ ☑️ (GitHub uniquement)

Comportement et couverture des analyseurs


Chaque analyseur de Boost Security dispose d'une façon unique de détecter les vulnérabilités et d'interagir avec la structure de votre projet. La plateforme Boost Security :

  • Analyse les fichiers de dépendances (par exemple, package-lock.json, poetry.lock, etc.) pour détecter les vulnérabilités
  • Normalise les résultats à travers différents écosystèmes et analyseurs en un format cohérent et unifié
  • S'intègre aux flux de travail CI/CD pour exécuter des analyses sur les pull requests, les poussées de branches, ou à des intervalles planifiés
  • Prend en charge plusieurs analyseurs, y compris l'analyseur SCA de Boost, OSV, et d'autres outils communautaires
  • Permet la configuration via .boost/config.yml pour personnaliser le comportement d'analyse par dépôt

Cette approche garantit une large visibilité sur les risques open-source tout en maintenant une flexibilité à travers des piles technologiques diverses.

Déduplication intelligente

Boost Security déduplique intelligemment les résultats à travers plusieurs analyseurs. Si plusieurs outils signalent la même vulnérabilité (par exemple, CVE-2023-1234 dans lodash@4.17.21), une seule entrée consolidée apparaît dans l'interface utilisateur ou dans les rapports exportés.

Cela garantit une expérience développeur plus propre, sans duplication bruyante ni notations de gravité contradictoires.

L'architecture flexible de Boost Security vous permet de combiner des analyseurs pour une couverture plus large ou plus approfondie à travers les dépôts polyglottes et les microservices.


Fichiers qui déclenchent chaque analyseur


Un analyseur s'exécute uniquement lorsque le dépôt contient au moins un des fichiers qu'il lit. Sinon, l'analyse s'arrête avec une erreur telle que la suivante, où le nom de l'analyseur varie selon le module :

Scan misconfiguration:
  Trivy scan did not run because no supported files were detected

Analyseurs basés sur Trivy : Boost Security SCA (boostsecurityio/boost-sca), Trivy (Filesystem) (boostsecurityio/trivy-fs) et Trivy (FS SBOM) (boostsecurityio/trivy-sbom).

Écosystème Fichiers
C/C++ conan.lock
Dart pubspec.lock
.NET *.deps.json, packages.config, *Packages.props, packages.lock.json
Elixir mix.lock
Go go.mod
Java *gradle.lockfile, pom.xml, *.sbt.lock
Julia Manifest.toml
JavaScript (Node.js) package-lock.json, yarn.lock, pnpm-lock.yaml
PHP composer.lock, installed.json
Python Pipfile.lock, requirements.txt, poetry.lock, uv.lock
Ruby Gemfile.lock, .gemspec
Rust Cargo.lock
Swift Package.resolved, Podfile.lock

Analyseurs basés sur OSV : OSV Scanner (boostsecurityio/osv-scanner) et OSV Scalibr (FS SBOM) (boostsecurityio/osv-scalibr-sbom).

Écosystème Fichiers
C/C++ conan.lock
Dart pubspec.lock
.NET *.csproj, deps.json, packages.config, packages.lock.json
Elixir mix.lock
Go go.mod
Haskell cabal.project.freeze, stack.yaml.lock
Java *.jar, buildscript-gradle.lockfile, gradle.lockfile, verification-metadata.xml, pom.xml
JavaScript (Node.js) bun.lock, package-lock.json, pnpm-lock.yaml, yarn.lock
PHP composer.lock
Python Pipfile.lock, poetry.lock, requirements.txt, pdm.lock, pylock.toml, uv.lock
R renv.lock
Ruby Gemfile.lock, gems.locked
Rust Cargo.lock
Tout osv-scanner.json (fichier de verrouillage personnalisé)

Choisissez les analyseurs basés sur OSV plutôt que Boost Security SCA lorsque vos dépendances sont déclarées uniquement dans des fichiers qui ne déclenchent pas les analyseurs basés sur Trivy : archives *.jar packagées, fichiers *.csproj .NET sans fichier de verrouillage packages.lock.json, pdm.lock, pylock.toml, bun.lock, verification-metadata.xml Gradle, cabal.project.freeze ou stack.yaml.lock Haskell, renv.lock R, gems.locked Ruby, ou un fichier de verrouillage personnalisé osv-scanner.json. Utilisez OSV Scanner pour les vulnérabilités et OSV Scalibr (FS SBOM) pour le SBOM.

Si vos fichiers de verrouillage utilisent des noms non standard, associez-les avec l'option scan.file-patterns d'un fichier de configuration trivy.yaml à la racine du dépôt. Les analyseurs basés sur Trivy nécessitent toujours au moins un fichier avec un nom standard du tableau ci-dessus : sans cela, l'analyse s'arrête avant de lire trivy.yaml.


Approvisionnement et Configuration


L'approvisionnement des analyseurs SCA se fait au niveau de la Gestion de Code Source. Cela signifie que vous pouvez choisir différentes configurations d'analyseurs pour chaque ressource en fonction de votre posture de sécurité.


Accessibilité SCA


Software Composition Analysis (SCA) est une pratique de sécurité qui automatise le processus d'identification des composants open-source et des dépendances tierces utilisés dans une base de code, puis les vérifie pour détecter des vulnérabilités connues, des problèmes de licences et des problèmes de versionnage. Les outils SCA analysent des artefacts tels que les gestionnaires de paquets, les fichiers manifestes ou les fichiers de verrouillage (par exemple, package.json, pom.xml, requirements.txt) pour détecter les bibliothèques non sécurisées ou obsolètes et aider les équipes à réagir avant que les problèmes n'atteignent la production.


Pourquoi le SCA est important dans le DevSecOps moderne


Le SCA joue un rôle essentiel dans le DevSecOps en :

  • Décalant la sécurité vers la gauche (« shifting left ») — permettant de détecter les vulnérabilités tôt dans le cycle de développement
  • Améliorant la visibilité sur les risques liés aux dépendances à travers les dépôts et les équipes
  • Automatisant la conformité avec les licences open-source et les politiques de sécurité organisationnelles
  • Réduisant les surfaces d'attaque qui émergent des dépendances transitives ou imbriquées

Au final, le SCA aide les organisations à maintenir une bonne hygiène de sécurité tout en accélérant les cycles de déploiement.


Comment Boost Security permet l'analyse SCA


Boost Security intègre l'analyse SCA dans vos flux de travail de développement afin d'inspecter automatiquement les dépôts de code source à la recherche de dépendances non sécurisées et de bibliothèques vulnérables.


Scanners pris en charge


Boost Security propose une suite complète de scanners Software Composition Analysis (SCA) pour aider les équipes d'ingénierie et de sécurité à détecter les vulnérabilités dans les dépendances open-source. Ces scanners analysent les fichiers de verrouillage, les manifestes et le contenu du système de fichiers pour signaler les problèmes de sécurité connus à l'aide de bases de données de vulnérabilités organisées.

Scanner Nom du module dans le registre Flux de Pull Request Description
Boost Security SCA boostsecurityio/boost-sca ✅ Le scanner SCA natif de Boost Security qui exploite plusieurs vérifications open-source et internes avec des règles de sécurité organisées.
Gestionnaires de paquets pris en charge
Snyk boostsecurityio/snyk-test ✅ Le module Snyk analyse les dépendances des paquets du projet à la recherche de vulnérabilités, en utilisant l'outil Command Line Interface (CLI) de snyk avec la commande test (snyk test) pour le SCA.
Gestionnaires de paquets pris en charge
OSV Scanner boostsecurityio/osv-scanner ✅ Utilise la base de données Open Source Vulnerabilities (OSV) pour détecter les vulnérabilités connues dans les dépendances du projet.
Gestionnaires de paquets pris en charge
Bundler Audit boostsecurityio/bundler-audit ✅ Le module bundler audit analyse les dépendances du projet Ruby à la recherche de vulnérabilités à l'aide du scanner bundler-audit.
NPM Audit boostsecurityio/npm-audit ✅ Le module npm audit analyse les dépendances du projet Nodejs à la recherche de vulnérabilités, en utilisant le scanner npm audit.
Safety boostsecurityio/safety ✅ Le module Safety analyse les dépendances du projet Python à la recherche de vulnérabilités à l'aide du scanner safety.
Nancy boostsecurityio/nancy ✅ Le module Nancy analyse les dépendances du projet GoLang à la recherche de vulnérabilités à l'aide du scanner Nancy.
Trivy (Filesystem) boostsecurityio/trivy-fs ✅ Analyse le système de fichiers du projet à la recherche de dépendances open-source vulnérables.
Gestionnaires de paquets pris en charge
Dependabot boostsecurityio/dependabot ✅ Intègre GitHub Dependabot pour la surveillance des versions et la création automatique de pull requests pour les dépendances vulnérables.
Gestionnaires de paquets pris en charge

Chaque scanner dispose de capacités uniques, offrant aux organisations la flexibilité de choisir l'outil adapté à leur écosystème. Boost Security prend en charge à la fois des scanners internes et tiers pour une couverture maximale.


Systèmes de gestion de code source (SCM) pris en charge


Les capacités d'analyse SCA de Boost Security sont conçues pour être agnostiques de la plateforme, prenant en charge les intégrations avec tous les principaux fournisseurs SCM, notamment :

  • GitHub
  • GitLab
  • Bitbucket
  • Azure DevOps

La logique d'analyse et l'approche de configuration restent largement cohérentes entre les SCM, garantissant une expérience unifiée quel que soit l'endroit où votre code est hébergé. Des événements tels que les pull requests, les fusions vers les branches par défaut (main), ou les modifications de fichiers de dépendances peuvent tous déclencher des analyses, selon la configuration.


Comportement d'analyse par défaut


La plupart des scanners prennent en charge le déclenchement sur deux flux de travail clés :

  • Sur Main : Déclenche une analyse lorsque le code est fusionné ou poussé vers la branche par défaut.
  • Sur Pull Request : Déclenche une analyse pour les modifications de code avant la fusion, aidant les réviseurs à évaluer le risque lié aux dépendances.
Scanner Sur Main Sur Pull Request
Boost Security SCA ✅ ✅
Bundler-Audit ✅ ✅
Nancy ✅ ✅
NPM Audit ✅ ✅
OSV Scanner ✅ ✅
Safety ✅ ✅
Snyk SCA ✅ ✅
Trivy FS ✅ ✅
Dependabot ✅ ☑️ (GitHub uniquement)

Comportement et couverture des scanners


Chaque scanner de Boost Security dispose d'une manière unique de détecter les vulnérabilités et d'interagir avec la structure de votre projet. La plateforme Boost Security :

  • Analyse les fichiers de dépendances (par exemple, package-lock.json, poetry.lock, etc.) pour détecter les vulnérabilités
  • Normalise les résultats à travers différents écosystèmes et scanners dans un format cohérent et unifié
  • S'intègre aux flux de travail CI/CD pour exécuter des analyses sur les pull requests, les poussées de branches ou à intervalles programmés
  • Prend en charge plusieurs scanners, y compris le scanner SCA de Boost, OSV, et d'autres outils communautaires
  • Permet la configuration via .boost/config.yml pour personnaliser le comportement d'analyse par dépôt

Cette approche garantit une large visibilité sur les risques liés à l'open-source tout en maintenant la flexibilité à travers des piles technologiques diversifiées.

Déduplication intelligente

Boost Security déduplique intelligemment les résultats provenant de plusieurs scanners. Si plusieurs outils signalent la même vulnérabilité (par exemple, CVE-2023-1234 dans lodash@4.17.21), une seule entrée consolidée apparaît dans l'interface utilisateur ou les rapports exportés.

Cela garantit une expérience développeur plus propre, sans duplication bruyante ni évaluations de gravité contradictoires.

L'architecture flexible de Boost Security vous permet de combiner des scanners pour une couverture plus large ou plus approfondie à travers les dépôts polyglottes et les microservices.


Provisionnement et configuration


Le provisionnement des scanners SCA s'effectue au niveau du système de gestion de code source. Cela signifie que vous pouvez choisir différentes configurations de scanners pour chaque ressource selon votre posture de sécurité.


Accessibilité SCA (SCA Reachability)


L'accessibilité SCA vous aide à prioriser les vulnérabilités open-source les plus critiques dans votre chaîne d'approvisionnement logicielle en déterminant quelles dépendances sont réellement accessibles dans votre base de code. Plutôt que de traiter toutes les vulnérabilités détectées de manière égale, l'analyse d'accessibilité de Boost Security identifie quels composants vulnérables sont critiques dans l'exécution de votre application ou les chemins de code — permettant à votre équipe de se concentrer sur les problèmes les plus importants.

En concentrant la remédiation sur les vulnérabilités accessibles, vous pouvez réduire l'exposition aux risques tout en optimisant les ressources de sécurité et d'ingénierie.


Comment cela fonctionne


Le scanner OSV du SCA (Software Composition Analysis) de Boost Security analyse vos dépendances dans vos projets Go et Rust, et effectue une analyse d'accessibilité pour déterminer si les chemins de code vulnérables sont accessibles depuis le code de votre application.

Le processus implique :

  1. Cartographie des dépendances – Le scanner identifie toutes les dépendances directes et transitives utilisées dans votre projet.
  2. Détection des vulnérabilités – Chaque dépendance est comparée aux vulnérabilités connues dans les avis publics et privés.
  3. Analyse d'accessibilité – Pour chaque composant vulnérable, Boost Security évalue si la fonction, la classe ou le module vulnérable est réellement référencé ou invoqué dans votre base de code.
  4. Vérification – Les vulnérabilités accessibles sont signalées comme « Accessible », tandis que celles sans preuve d'invocation sont étiquetées « Non accessible ».

Cela fournit une vue exploitable de vos résultats SCA, aidant les équipes à éviter la fatigue liée aux alertes et à prioriser les risques exploitables.


Avantages


  • Se concentrer sur les vulnérabilités exploitables : Identifiez les problèmes SCA qui représentent une menace réelle pour votre système.
  • Réduire le bruit : Minimisez le temps passé à trier les vulnérabilités sans impact.
  • Priorisation basée sur les données : Allouez les efforts de remédiation aux vulnérabilités vérifiées comme accessibles.
  • Intégration avec les pipelines CI/CD : Assurez un rapport de vulnérabilités en temps réel, tenant compte de l'accessibilité, dans le cadre de vos contrôles de sécurité.