L'inventaire des composants logiciels ou SBOM est une description normalisée de votre logiciel, similaire à ce qu'est une recette pour un repas. Les SBOM contiennent la liste de tous les composants directs et transitifs du logiciel, avec leur numéro de version respectif et leur modèle de licence. Ils constituent l'entrée de notre scanner de vulnérabilité Dependency Track et permettent d'analyser chaque logiciel de votre infrastructure informatique. Étant donné que les SBOM contiennent une description précise et complète de votre logiciel, notre scanner ne nécessite aucune connexion à votre système informatique.

Comment extraire ou générer des SBOM
à partir de presque n'importe quel logiciel ?

Pour commencer, vous devrez générer des SBOM en utilisant l’un des différents outils en fonction du système ou de l’application à suivre. Notre solution Dependency Track SaaS vous offre une vue agrégée unique pour les surveiller en un seul emplacement central.

Aller un pas plus loin en automatisant la génération de SBOM garantira que votre inventaire de logiciels reste toujours à jour et facilitera votre parcours vers la transparence du logiciel. Des informations supplémentaires sur l’automatisation du transfert de SBOM sont disponibles sur cette page de documentation.

Comme la récupération des SBOM est un sujet en constante évolution, avec des outils qui apparaissent ou disparaissent avec le temps, nous ferons de notre mieux pour maintenir cette page à jour et refléter la situation actuelle de la communauté open source.

Contactez-nous pour partager d'autres outils formidables que vous avez trouvés pour faciliter le processus de génération de SBOM, nous les examinerons et les inclurons ici pour aider les autres.

Passons maintenant à la pratique…

Extraire le SBOM durant le développement

Idéalement, les applications construites à partir de leur code source devraient générer leur SBOM en tant qu’étape complémentaire au sein du processus d’intégration et de déploiement en continus (CI/CD).

De nombreux outils et plugins différents vous aideront en fonction de la technologie employée par vos applications :

Ou vous préférez peut-être utiliser cdxgen, qui est un générateur d’inventaire multi-languages compatible avec presque tous les langages de programmation, gestionnaires de paquets et systèmes d’exploitation.

Extraire le SBOM lors du déploiement

Idéalement, vous devriez obtenir le SBOM pour toute solution tierce directement auprès de son fournisseur. Cependant, de nombreux fournisseurs ne sont pas encore prêts pour cela. Alors que l’industrie achève sa mûe dans ce domaine, vous devrez peut-être générer vous-même le SBOM des applications tierces.

Heureusement, cela peut aussi être entièrement automatisé et intégré dans votre pipeline de déploiement. Nous vous montrerons dans cette section les outils à utiliser pour cette extraction.

Applications installées via des gestionnaires de paquets

Les SBOM pour les applications installées via des gestionnaires de paquets peuvent être analysés assez facilement à l’aide d’outils tels que syft ou spdx. Dans les exemples ci-dessous, nous nous concentrerons sur syft, car il ne nécessite aucune conversion et est légèrement plus mature que spdx.

Linux / MacOS

L’analyse peut être effectuée sur toutes les distributions à l’aide de la commande suivante :

# Installer syft
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sudo sh -s -- -b /usr/local/bin

# Analyser la machine complète
sudo /usr/local/bin/syft scan dir:/--output cyclonedx-json > "$HOSTNAME.sbom.json"

Alternativement, si vous avez Docker sur cette machine et que vous préférez exécuter syft sans installation préalable pour analyser l’hôte, vous exécuterez simplement la commande suivante :

docker run --rm -a stdout -v /:/host:ro anchore/syft scan dir:/host --output cyclonedx-json > "$HOSTNAME.sbom.json"

Windows

De manière similaire pour Windows, la dernière version de syft peut être téléchargée depuis la page release. Parfois, la version Windows est publiée après les versions Linux et Darwin, vous pouvez choisir une version binaire précédente ou exécuter la version Linux dans WSL ou la version Docker si vous préférez utiliser la dernière version immédiatement.

Pour exécuter la version Windows, adaptez la commande suivante à vos besoins dans une fenêtre de commande administrateur :

syft scan dir:"c:" --output cyclonedx-json > "%ComputerName%.sbom.json"

Environnements virtuels

Conteneurs Docker

Si vous avez le plugin cli sbom Docker (installé par défaut sous Windows), vous pouvez utiliser la commande suivante :

# Replacer {{container:tag}} par la bonne valeur
docker sbom {{container:tag}} --format cyclonedx-json --output {{container:tag}}.sbom.json

Sous Linux, vous pouvez éviter les tracas de la gestion des plugins Docker et accéder à plus de fonctionnalités en utilisant notre script simple syft.sh présenté ci-dessous.

#!/bin/bash

docker run --rm 
  -v /:/host:ro 
  -v ${PWD}:/out 
  -v /var/lib/docker/volumes:/var/lib/docker/volumes:ro 
  -v /var/run/docker.sock:/var/run/docker.sock:ro 
  -a stdin -a stdout -a stderr 
  -i anchore/syft "$@"

Il peut être utilisé de nombreuses manières différentes (consultez toutes les possibilités en utilisant syft.sh --help). Par exemple, pour analyser des images existantes, vous utiliseriez la commande suivante :

# Replacer {{container:tag}} par la bonne valeur
syft.sh scan registry:{{container:tag}} --format cyclonedx-json > {{container:tag}}.sbom.json

Système d’exploitation / Machine virtuelle / Autres applications

Les applications installées manuellement, y compris les applications à code source fermé, sont plus difficiles à analyser à l’heure actuelle. Vous pouvez analyser les applications installées via des gestionnaires de paquets à l’aide de syft, comme indiqué dans la section ci-dessus, et vous pouvez également couvrir d’autres scénarios avec cdxgen.

# Analyser tous les paquets OS avec syft (par ex: debian)
syft scan dir:/var/lib/dpkg --output cyclonedx-json > "$HOSTNAME.sbom.json"

# Analyser tout avec syft (peut être lent)
syft scan dir:/ --output cyclonedx-json > "$HOSTNAME.sbom.json"

Binaires / Application Mobile

L’analyse des binaires, tels que les packages d’applications mobiles (APK pour Android et IPA pour iOS), représente des défis significatifs. Cependant, cette pratique demeure nécessaire, notamment dans les cas où le fournisseur n’a pas encore fourni une liste de composants logiciels (SBOM - Software Bill of Materials). cve-bin-tool peut s’avérer utile pour extraire certaines informations dans ces situations :

cve-bin-tool --sbom-type cyclonedx --sbom-output application.sbom.json Application.apk

Conclusion

La communauté propose de nombreux outils pour extraire et générer des SBOM. Nous espérons que cette page vous a aidé à sélectionner les outils les plus appropriés pour votre cas d’utilisation.

Les SBOM sont déjà la norme lors de la livraison de logiciels au gouvernement américain. Nous pensons que cette pratique se développera également dans le monde entier et que le SBOM deviendra un artefact de livraison standard qui aidera l’industrie à améliorer la transparence de la chaîne d’approvisionnement.

La génération de SBOM n’est que la première étape de votre parcours. La solution cloud Dependency Track SaaS basée sur la solution open-source éponyme est la solution la plus polyvalente, elle est disponible pour votre entreprise afin d’organiser et surveiller l’ensemble des SBOM de manière centralisée.

Pour la suite de la lecture, nous vous suggérons notre page d’automatisation du transfert de SBOM.

Vous ne savez toujours pas comment extraire un SBOM ?
Contactez-nous dès aujourd'hui !

Contactez-nous

Copyright © 2024 YourSky.blue Sàrl. Tous droits réservés.

Site web sans cookie alimenté par de l'énergie renouvelable