Créer des SBOM avec la Snyk CLI
5 février 2025
0 minutes de lectureLa nomenclature logicielle (SBOM) s’impose rapidement comme un élément essentiel de la sécurité et de la conformité open source. Dans cet article, nous allons voir ce que sont les SBOM, pourquoi ils sont nécessaires et quel est leur rôle dans la sécurité open source.
Que sont les SBOM ?
Une nomenclature logicielle (SBOM) est un inventaire complet de tous les composants utilisés dans un produit logiciel. Elle fournit tous les détails nécessaires sur chaque composant, comme son nom, sa version et sa licence. On peut comparer les SBOM à la liste des ingrédients d’un logiciel : elles offrent une transparence totale sur sa composition.
Prenons l’exemple d’un projet Python simple avec différentes dépendances. Voici à quoi pourrait ressembler une version simplifiée de son SBOM :
Avertissement :
Le code ci-dessus est un extrait simplifié d’un SBOM potentiel. Cet exemple est fourni à titre d’illustration uniquement et ne fonctionnera pas lors de l’analyse, car il est incomplet.
Pourquoi avons-nous besoin de SBOM ?
Les SBOM jouent un rôle essentiel pour comprendre la composition de nos logiciels. Mais dans le développement open source, leur rôle est encore plus important. Les composants open source ont souvent leurs propres dépendances, créant un réseau complexe de composants interconnectés. Les SBOM permettent de démêler ce réseau et de comprendre toute l’étendue de notre exposition aux risques de sécurité potentiels ou aux problèmes de conformité liés aux dépendances tierces de nos applications.
Fournir un SBOM avec l’artefact créé est essentiel, car cela permet à toute personne utilisant le logiciel d’évaluer la sécurité du projet. Si une vulnérabilité majeure est révélée dans un package open source particulier, comme ce fut le cas avec Log4Shell et Spring4Shell, tous les utilisateurs des composants vulnérables peuvent alors déterminer s’ils sont concernés.
Les SBOM sont un complément précieux pour tout logiciel et devraient accompagner chaque version. Ils apportent de la transparence, renforcent la sécurité et la conformité, et contribuent à améliorer la qualité des logiciels.
Créer des SBOM avec la Snyk CLI
L’interface en ligne de commande de Snyk (CLI) est un outil de sécurité open source qui permet aux développeurs et aux professionnels DevOps de détecter, corriger et surveiller les vulnérabilités connues dans les dépendances open source. La Snyk CLI prend en charge un large éventail de langages de programmation et de gestionnaires de packages, notamment JavaScript (npm, yarn), Python (pip), Java (Maven), .NET (NuGet), Ruby (RubyGems), PHP (Composer), et bien d’autres. La Snyk CLI peut être utilisée en local ou dans un pipeline pour analyser un projet logiciel avec SAST, SCA, Container et IaC.
Et désormais, elle peut aussi générer des SBOM pour vos projets.
Installer la Snyk CLI
Pour commencer à utiliser la Snyk CLI, vous devez l’installer dans votre environnement de développement. Voici un guide simple pour l’installer avec npm. Pour en savoir plus ou découvrir d’autres méthodes d’installation de la Snyk CLI, consultez notre documentation utilisateur.
Après avoir installé la Snyk CLI, vous devez authentifier votre compte à l’aide de la commande snyk auth. Un navigateur Web s’ouvrira pour vous permettre de vous connecter à votre compte Snyk ou d’en créer un.
Vous pouvez également définir votre jeton Snyk comme variable d’environnement : c’est la méthode recommandée pour utiliser la CLI dans un pipeline CI/CD. Consultez notre aide-mémoire de la CLI ou la documentation officielle pour en savoir plus.
Générer des SBOM avec la Snyk CLI
Une fois la CLI opérationnelle et connectée à un compte Snyk Enterprise, vous pouvez générer des SBOM pour vos projets logiciels à l’aide de la commande suivante :
L’option --format est obligatoire et permet de spécifier le format de sortie du SBOM. Vous avez le choix entre CycloneDX en XML ou SPDX au format JSON.
Pour enregistrer les SBOM dans un fichier, utilisez l’option --json-file-output=<OUTPUT_FILE_PATH> afin d’exporter la sortie JSON des SBOM dans un fichier JSON.
En exécutant cette commande à la racine de votre projet, vous obtiendrez un fichier SBOM que vous pourrez livrer avec votre artefact.
Plusieurs projets
La Snyk CLI utilise le fichier manifeste du système de build pour déterminer l’arborescence des dépendances et, par conséquent, les données d’entrée du SBOM. Par défaut, la CLI s’arrête après avoir trouvé un fichier manifeste. Toutefois, votre projet peut contenir plusieurs fichiers manifestes et plusieurs systèmes de build. Par exemple, vous pouvez avoir un projet avec un backend Java utilisant Maven et un frontend Node.js utilisant npm. En ajoutant l’option --all-projects à la commande SBOM, la Snyk CLI parcourt votre projet à la recherche de fichiers manifestes et les ajoute au résultat, c’est-à-dire à la sortie du SBOM.
Par défaut, la profondeur de recherche des fichiers manifestes est de quatre niveaux. Vous pouvez la configurer avec l’option --detection-depth. Vous pouvez également exclure certains fichiers avec l’option --exclude.
Notez qu’un grand nombre d’options de ligne de commande sont disponibles pour gérer des écosystèmes spécifiques, comme les fichiers Maven multi-modules, les attributs de configuration Gradle ou les espaces de travail Yarn. Pour découvrir toutes les options disponibles pour les SBOM Snyk, consultez notre documentation détaillée.
Automatiser la génération de SBOM avec la Snyk CLI
Automatiser la génération de nomenclatures logicielles avec la Snyk CLI est une étape essentielle pour renforcer la sécurité et la conformité du pipeline CI/CD. En intégrant la Snyk CLI à votre processus de build, vous pouvez générer automatiquement un SBOM complet à chaque compilation de votre code. Ce SBOM répertorie toutes les dépendances, y compris les dépendances transitives.
À mesure que le code progresse dans le pipeline CI/CD, Snyk peut non seulement détecter les vulnérabilités, mais aussi veiller à ce qu’un SBOM à jour soit généré et livré avec chaque version du build. Cette automatisation simplifie la gestion d’un SBOM sécurisé et à jour et intègre les pratiques de sécurité à votre cycle de développement logiciel. Vous pouvez ainsi plus facilement respecter les exigences réglementaires et les normes du secteur, tout en renforçant la confiance de vos clients.
Analyser les SBOM
La création de SBOM est un moyen simple et efficace d’utiliser la Snyk CLI. Mais que faire si vous devez exploiter un SBOM et vérifier si un package logiciel contient des vulnérabilités connues ? Plusieurs options sont actuellement disponibles :
Test des SBOM avec la Snyk CLI
La Snyk CLI peut non seulement créer un SBOM pour votre projet, mais aussi l’analyser. Si la Snyk CLI est connectée à un compte Enterprise, vous pouvez l’utiliser pour lui indiquer un fichier SBOM, comme ci-dessous :
Au moment de la rédaction de cet article, cette fonctionnalité est encore expérimentale, d’où l’option `--experimental`. Notez également qu’elle n’accepte actuellement que les fichiers JSON encodés en UTF-8 pour
CycloneDX : versions 1.4, 1.5 et 1.6
SPDX : version JSON 2.3
Consultez la documentation du test des SBOM avec la Snyk CLI pour connaître les dernières mises à jour de cette fonctionnalité et les autres options disponibles.

Bomber
Bomber est une application open source qui analyse les SBOM pour détecter les vulnérabilités de sécurité. Snyk fait partie des fournisseurs intégrés à bomber pour l’analyse des SBOM.
Pour installer bomber, téléchargez la dernière version depuis le dépôt GitHub officiel, utilisez Homebrew sur macOS ou l’outil dpkg sur Linux.
Homebrew (macOS) :
Dpkg (Linux) :
Pour exécuter bomber depuis la ligne de commande avec Snyk, vous devez fournir un jeton d’API Snyk. Vous pouvez le récupérer dans l’interface Web de Snyk. Sinon, si la CLI est installée sur votre machine, exécutez snyk config get api.
Une fois votre jeton d’API Snyk récupéré, vous pouvez exécuter bomber comme suit :
La sortie affichera toutes les vulnérabilités connues.

Fournir des SBOM à jour avec Snyk
La Snyk CLI vous aide à créer des SBOM à jour à chaque build de votre logiciel. Il est recommandé — et parfois obligatoire — de fournir un SBOM avec un artefact compilé pour être en conformité.
Automatiser la production de SBOM dans votre pipeline avec la Snyk CLI est un moyen simple d’y parvenir. Pour conclure, voici quelques étapes à suivre pour utiliser les SBOM dans vos projets :
Bien démarrer avec Snyk CLI
Installez Snyk CLI pour détecter et corriger les vulnérabilités dans vos projets locaux et vos pipelines.
npm install snyk -g