AllInfo

Comment générer un SBOM avec l'outil Open Source de Microsoft

Shutterstock.com/Song_about_summer

Un SBOM (Software Bill of Materials) vous aide à comprendre votre chaîne d'approvisionnement logicielle en répertoriant les packages et les fournisseurs sur lesquels repose votre code. Les SBOM gagnent rapidement du terrain en tant que moyen d'améliorer la sécurité à la suite d'importantes attaques réelles de la chaîne d'approvisionnement.

L'un des principaux partisans des SBOM est Microsoft, qui a publié son approche de leur génération en octobre 2021. Plus tôt cette année, la société a ouvert son outil de production de SBOM sur Windows, macOS et Linux.

Dans cet article, vous apprendrez à commencer à utiliser le projet pour indexer les dépendances de votre code. Il produit des documents compatibles SPDX qui répertorient les fichiers, les packages et les relations au sein de votre projet. SPDX (Software Package Data Exchange) est la norme acceptée par l'ISO pour les SBOM afin que vous puissiez transmettre les rapports générés directement dans d'autres outils de l'écosystème.

Microsoft avait initialement annoncé le projet sous le nom de Salus. Il a depuis été retiré de ce terme car il est en conflit avec le projet de sécurité de code Salus existant qui a pris naissance chez Coinbase. Le générateur SBOM est désormais simplement appelé sbom-tool.

Démarrage

Vous pouvez télécharger l'outil SBOM à partir du référentiel GitHub de Microsoft. Les binaires précompilés sont disponibles sur la page des versions. Sélectionnez le bon téléchargement pour votre système, puis rendez le binaire exécutable et déplacez-le vers un emplacement de votre chemin.

Voici un exemple pour Linux :

$ wget https://github.com/microsoft/sbom-tool/releases/download/v<VERSION>/sbom-tool-linux-x64 $ chmod +x sbom-tool-linux-x64 $ mv sbom-tool-linux-x64 /usr/local /bin/sbom-tool

Vous devriez pouvoir exécuter sbom-tool pour afficher les informations d'aide dans votre fenêtre de terminal :

$ sbom-tool Aucune action n'a été spécifiée L'outil Sbom génère un SBOM pour tout artefact de construction. Utilisation – Microsoft.Sbom.Tool <action> -options

Génération d'un SBOM

De nouveaux SBOM sont créés en exécutant la sous-commande generate de l'outil. Quelques arguments doivent être fournis :

SBOM Tool doit également connaître votre projet nom et version. Il peut souvent déduire cela à partir de fichiers déjà présents dans votre référentiel, tels que les champs de nom et de version de package.json, mais vous devrez peut-être fournir les informations manuellement ou remplacer les valeurs par défaut dans certains cas. Ajoutez les drapeaux pn et pv pour cela :

Voici un exemple de génération d'un SBOM pour les fichiers de votre répertoire de travail. Le SBOM sera placé dans le sous-répertoire sbom-output. Cela doit exister avant que vous n'exécutiez l'outil.

$ mkdir sbom-output $ sbom-tool generate -b sbom-output -bc . -pn example -pv 1.0 -nsb https://example.com/sbom

Un aperçu des résultats de l'analyse sera affiché dans votre terminal :

[INFO] Énumération de 3728 fichiers et 607 répertoires en 00:00 :00.5938034 [INFO] |Identifiant du détecteur de composant |Heure de détection |# Composants trouvés |# Explicitement référencés | … [INFO] |Npm |0,63 seconde |241 |0 | … [INFO] |Total |0.64 secondes |241 |0 | [INFO] Temps de détection : 0,6374678 secondes.

Ce projet utilise npm pour gérer ses dépendances. L'outil a détecté 241 packages dans le fichier package.json du répertoire de travail.

SBOM Tool prend actuellement en charge 19 langages de programmation et formats de packages différents. La liste comprend npm, NuGet, PyPi, Maven, Rust Crates et Ruby gems, ainsi que les packages Linux présents dans les images Docker. Les références aux référentiels GitHub distants sont également prises en charge.

Contenu SBOM

Le SBOM généré sera écrit dans _manifest/spdx_2.2/manifest.spdx.json dans le répertoire de sortie de construction que vous avez spécifié. Le SBOM est un fichier JSON assez détaillé qui est destiné à être utilisé par d'autres logiciels.

{ "files" : [], "packages" : [ { "name" : "color- convert”, “SPDXID”: “SPDXRef-Package-A72B0922E46D9828746F346D7FD11B7F81EDEB15B92BEEDAE087F5F7407FECDC”, … }

Il existe quatre principaux types d'informations dans le rapport :

Vous avez maintenant un SBOM vous pouvez commencer à l'utiliser avec d'autres outils pour effectuer des analyses de vulnérabilité et gérer la conformité des licences. Vous pouvez envisager de distribuer le SBOM avec vos versions logicielles afin que les consommateurs puissent inspecter le contenu de chaque nouvelle version. Les SBOM sont mieux générés dans le cadre de votre pipeline de build afin qu'ils restent à jour.

Avoir accès à un SBOM est inestimable lorsque de nouveaux problèmes majeurs de la chaîne d'approvisionnement apparaissent. Les organisations utilisant des SBOM étaient mieux placées pour répondre à Log4j, par exemple. Ils pourraient inspecter leurs rapports pour trouver rapidement des projets en fonction de la bibliothèque vulnérable, au lieu d'auditer manuellement les listes de packages.

Scanning Docker Images

SBOM L'outil est capable de numériser des images Docker existantes dans le cadre d'une génération de rapport. Pour utiliser cette fonctionnalité, vous devez ajouter l'indicateur -di et spécifier la balise d'image ou le résumé que vous souhaitez numériser. Le reste des arguments reste le même.

$ sbom-tool generate -di ubuntu:latest -b sbom-output -bc . -pn demo -pv 1.0 -nsb https://demo.com/demo

L'image Docker sera analysée pour identifier les packages qu'elle contient. Ils seront ajoutés au rapport SBOM avec les dépendances trouvées dans votre dossier source. Vous pouvez numériser plusieurs images Docker en une seule opération en séparant leurs balises ou en digérant les hachages par des virgules.

Résumé

SBOM Tool est un jeune utilitaire open-source de génération SBOM développé chez Microsoft. Il prend en charge plusieurs formats de package de premier plan et produit une sortie compatible SPDX. Cela signifie que vous pouvez alimenter les SBOM générés directement dans d'autres outils comme Grype pour trouver automatiquement les vulnérabilités de sécurité et les dépendances obsolètes.

Les SBOM sont un moyen efficace d'accroître la sensibilisation aux chaînes d'approvisionnement logicielles et de découvrir les problèmes cachés. La production et la distribution d'un SBOM aident les utilisateurs à comprendre ce qui est inclus silencieusement dans leur projet. L'outil SBOM est un moyen de générer des rapports standard avec une seule commande, ce qui facilite l'offre d'un SBOM avec chacune de vos versions.

LIRE LA SUITE

Exit mobile version