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

0
148
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 :

  • -b (BuildDropPath) – Le dossier dans lequel enregistrer les manifestes SPDX SBOM générés.
  • -bc (BuildComponentPath) – Le dossier qui sera analysé pour trouver les dépendances dans votre projet.
  • -nsb (NamespaceUriBase) – Le chemin de base qui sera utilisé comme espace de noms du manifeste SBOM. Il doit s'agir d'une URL appartenant à votre organisation, telle que https://example.com/sbom.

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 :

  • -pn (NomPackage) – Le nom de votre projet ou package.
  • -pv (PackageVersion) – La version du projet que vous analysez. Cela doit correspondre à la version fournie par votre SBOM afin que les utilisateurs puissent corréler les listes de dépendances avec des versions spécifiques.

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 :

  • Les fichiers rubrique– Cela répertorie tous les fichiers contenant le code source que vous avez écrit dans votre projet. SBOM Tool ne remplira cette section que lorsque certains types de projets sont analysés, tels que les solutions C#.
  • La section des packages – Un catalogue complet de toutes les dépendances tierces présentes dans votre projet, avec des références à leur gestionnaire de paquets source, la version utilisée et le type de licence qui s'applique.
  • La section des relations– Cela détaille toutes les relations entre les composants répertoriés dans le SBOM. La relation la plus courante que vous verrez est DEPENDS_ON, qui déclare un élément dans la section packages comme l'une des dépendances de votre projet. Plusieurs autres types de relations existent également, telles que CREATED_BY, DEPENDENCY_OF et PATCH_FOR.
  • Détails des métadonnées du rapport– Des champs tels que name, documentNamespace, spdxVersion et creationInfo identifient le SBOM, l'outil utilisé pour le créer et la révision du manifeste SPDX qui s'applique.

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

  • › iOS 16.0.2 est sorti, voici les bogues qu'il corrige
  • › Les meilleurs étuis pour iPhone 14 Pro Max de 2022
  • › Comment réparer l'erreur de démarrage Linux dans le BIOS
  • › Comment personnaliser l'horloge sur l'écran de verrouillage Android
  • › Comment débloquer Netflix
  • &rsaquo ; L'écran intelligent que nous aimons est à 45 % de réduction jusqu'à dimanche