SPDX vs CycloneDX : comparaison des formats SBOM

Tous Les Articles

Malgré l'adoption croissante de la nomenclature logicielle (SBOM) comme outil de gestion des vulnérabilités et de cybersécurité, de nombreuses organisations ont encore du mal à comprendre les deux formats SBOM les plus populaires utilisés aujourd'hui, SPDX et CycloneDX. Dans cet article, nous comparerons ces deux formats pour vous aider à choisir celui qui convient le mieux à vos besoins.

Que sont les formats SBOM

Lors de l'élaboration de nomenclatures logicielles pour le développement de logiciels et la gestion des vulnérabilités, il est nécessaire de respecter un format ou des normes spécifiques. Les formats SBOM standard définissent une structure spécifique et unifiée pour la génération du SBOM et déterminent également comment elle sera partagée avec les clients et les utilisateurs tout au long de la chaîne d'approvisionnement logicielle. Les formats SBOM définissent également la composition du logiciel dans un format facile à comprendre pour les autres outils de cybersécurité. Généralement, il existe trois formats SBOM. Ils comprennent:

Échange de données de progiciels (SPDX): il s'agit d'un projet SBOM open source et lisible par machine de la fondation Linux. Il a été conçu principalement pour garantir la conformité et la transparence dans la gestion du code open source et propriétaire par les équipes de développement et les entreprises.

CycloneDX (CDX) : il s'agit également d'un format SBOM open source et lisible par machine développé par la communauté Open Web Application Security Project (OWASP). Il s'agit d'un format SBOM léger axé sur la facilité d'adoption et l'automatisation de la génération SBOM tout au long de votre pipeline de développement logiciel. 

Balises d'identification du logiciel (SWID) :  Les balises SWID sont davantage considérées comme un identifiant de logiciel que comme un format SBOM. Il fournit un moyen simple et transparent de suivre l'inventaire des logiciels en stockant des informations spécifiques sur la version du logiciel.

Généralement, seuls les formats SPDX et CycloneDX SBOM sont officiellement reconnus. L'utilisation principale du format SWID est l'identification des logiciels car il n'offre pas autant d'informations que les deux autres formats.

SPDX et CycloneDX contiennent des informations qui se chevauchent, et beaucoup ont fait valoir qu'ils peuvent être utilisés de manière interchangeable puisqu'il n'existe pas de format SBOM « standard ». Cependant, les deux formats ont traditionnellement des cas d'utilisation différents au sein du cycle de vie du développement logiciel. Par conséquent, différentes organisations doivent déterminer laquelle leur convient le mieux en fonction de leurs besoins uniques en matière de cybersécurité et de conformité.

Cliquez ici pour en savoir plus sur les formats standards SBOM.

Comparaison SPDX et CycloneDx

SPDX et CyclonDX sont les deux formats standards pour la génération SBOM, et ils le resteront probablement pendant longtemps. La plupart des plateformes de génération SBOM prennent en charge les deux formats. Cependant, ce sont des outils distincts avec des cas d’utilisation différents. Certaines de leurs principales différences sont mises en évidence ci-dessous :

Présentation du CycloneDX

CycloneDX est un projet SBOM open source de l'une des principales organisations de sécurité logicielle, l'Open Web Application Security Project (OWASP). Le projet a été lancé en 2017 en tant que plateforme d'analyse de composants pour aider les utilisateurs à identifier les risques dans la chaîne d'approvisionnement des logiciels. L'identification des vulnérabilités reste le principal cas d'utilisation de CycloneDX. Ce format SBOM contribue également à la conformité des licences et à l'identification des composants logiciels obsolètes.

CycloneDX se concentre sur l'automatisation et facilite l'adoption des exigences SBOM tout au long du cycle de construction du logiciel. Le format est utilisé par les organisations de logiciels open source et propriétaires pour les cas d'utilisation de sécurité.

En tant que format de nomenclature, CycloneDX a d'autres applications au-delà de la préparation de nomenclatures logicielles. Il peut également être utilisé pour compiler des composants, des vulnérabilités et des services de matériel et de systèmes cloud. Les SBOM préparés au format Cyclone DX répertorient les vulnérabilités dans trois domaines principaux. Ceux-ci sont:

  • Common Platform Enumeration (CPE) : vulnérabilités au sein d'une application, de périphériques matériels ou d'un système d'exploitation.
  • SWID : la balise d'identification du logiciel permet d'analyser les composants des logiciels installés
  • URL du package (PURL). CycloneDX répertorie également les métadonnées des progiciels.

En plus de cela, le format CycloneDX prend également en charge le suivi de la provenance des produits logiciels et de leurs composants. Cela facilite l’identification des auteurs et fournisseurs du logiciel et de tous ses composants.

Vue d'ensemble SPDX

SPDX signifie Échange de données de progiciels. Il s'agit d'un projet open source de la Linux Foundation créé dans le but de servir de format commun pour la collecte et le partage de données logicielles, en particulier d'informations sur les licences.

La norme SPDX a été initialement développée en 2011 en tant qu'outil de gestion de licences open source. Au fil des années, le format a été affiné pour inclure de nouveaux champs qui améliorent la capacité du format à capturer des informations importantes liées à la sécurité et le rendent plus interopérable avec d'autres formats SBOM standard.

En septembre 2021, l'Organisation internationale de normalisation a reconnu le format SPDX comme norme internationalement reconnue pour la publication SBOM. SPDX est le seul format SBOM à avoir réussi cet exploit.

Désormais en version 2.2.2, la version originale de la spécification SPDX a été développée pour faciliter la conformité aux politiques de licences logicielles. Les versions ultérieures ont ajouté quelques fonctionnalités qui le rendent utile pour un large éventail de cas d'utilisation, notamment l'identification des vulnérabilités logicielles.

La dernière version du SPDX a été conçue conformément à la norme de la NTIA relative aux « Éléments minimum pour une nomenclature logicielle ». Il répertorie les composants, les droits d'auteur, les licences et les références de sécurité d'un logiciel.

Un document SBOM au format SPDX doit comporter des champs et des sections spécifiques, comme indiqué ci-dessous :

  • Informations sur la création de documents : ces informations sont utilisées pour déterminer la compatibilité avec les outils de traitement standards
  • Informations sur le package : les informations sur le package définissent les entités importantes qui partagent le même contexte au sein du progiciel, telles que les conteneurs, les composants et les produits.
  • Informations sur les fichiers : informations d'identification des fichiers logiciels, telles que le nom, la licence et les informations de copyright pour chaque fichier.
  • Informations sur les extraits : cela n'est pas toujours applicable. Les informations d'extrait ne sont nécessaires que lorsque les données du logiciel proviennent d'une source différente.

●  Relations et annotations : un SBOM au format SPDX indique également la relation entre les différents documents, fichiers et packages utilisés dans le logiciel avec des annotations claires qui permettent à quiconque de revoir plus facilement les relations entre les composants logiciels.

SPDXCycloneDX
Informations : Le format SPDX SBOM capture des informations sur l'auteur de la nomenclature du logiciel, comment elle a été créée et quand elle a été créée pour chaque version du fichier SPDX.Métadonnées de nomenclature : le format CycloneDX capture des informations importantes sur le fabricant/fournisseur du logiciel et les composants cibles. Il comprend également des informations sur les licences et les métadonnées des outils utilisés pour créer la nomenclature.
Informations sur le package : inclut les données relatives aux propriétés communes de l’ensemble du progiciel.Composants : décrit tous les composants du logiciel tout au long de la chaîne d'approvisionnement.
Informations sur les fichiers : données relatives à tous les fichiers inclus dans le progiciel.Services : décrit les API externes, les URL des points de terminaison et les exigences d'authentification. Faites confiance aux traversées des limites et aux autres exigences externes du logiciel.
Informations sur les extraits de code : données liées à une partie spécifique d'un fichier.Dépendances : ce champ décrit la relation directe et transitive entre les différents composants d'un logiciel
Informations sur les licences : champ permettant de capturer des données sur les licences non capturées dans la liste des licences SPDX.Extensions : fournit des données sur les points d'extension qui seront utiles pour les futurs cas d'utilisation et fonctionnalités.
Corrélation entre les éléments SPDX : le champ montre comment les différents fichiers, documents et packages détaillés dans la documentation SPDX sont liés les uns aux autres.
Notes : informations supplémentaires pour expliquer comment le document SPDX a été révisé, qui l'a révisé et quand il a été révisé.

Quelle est la différence entre SPDX et CycloneDX ?

Les deux formats SBOM standard mis en évidence ci-dessus peuvent être utilisés pour générer, partager et gérer des données SBOM. Ils permettent aux utilisateurs de générer des informations précises sur les composants d'un produit logiciel. Le format SPDX (Software Package Data Exchange) a été principalement conçu comme un moyen de gérer les licences de logiciels open source et de partager des informations sur les packages. CycloneDX, quant à lui, permet aux utilisateurs de créer des SBOM (Software Bill of Materials) qui fournissent des informations détaillées sur les composants logiciels.

Quelle norme est-il préférable d’utiliser ?

Étant donné que le format que vous choisissez détermine la structure de votre document SBOM, ses composants, la manière dont il sera généré et comment il sera partagé avec les utilisateurs, il est important que vous choisissiez le bon format SBOM pour générer du SBOM en fonction des besoins uniques de votre organisation.

Bien que SPDX et CycloneDX aient des applications très similaires, ils sont différents en termes de cas d'utilisation d'origine. Le format SPDX a été créé en 2011 comme outil de gestion de licences. Aujourd'hui, il est toujours utile pour partager des informations détaillées sur les composants d'un système logiciel avec les humains tout au long de la chaîne d'approvisionnement. Cela rend ce format plus utile à des fins de développement de logiciels.

CycloneDX (CDX), quant à lui, a été développé plus récemment dans le but principal de générer une documentation SBOM, ce qui en fait un outil de gestion des vulnérabilités plus efficace car il détaille tous les composants standards d'un produit logiciel. La nature légère de CycloneDX en fait également un outil efficace pour générer des nomenclatures logicielles lisibles par machine que vous pouvez partager et traiter rapidement.

En fin de compte, il n'y a pas de « meilleur » format entre ces deux-là. Le choix dépend en grande partie des besoins spécifiques de votre organisation et du cas d'utilisation prévu du document SBOM que vous souhaitez générer. 

Ce contenu vous est proposé par Scribe Security, l'un des principaux fournisseurs de solutions de sécurité de bout en bout pour la chaîne d'approvisionnement logicielle, offrant une sécurité de pointe aux artefacts de code ainsi qu'aux processus de développement et de livraison de code tout au long des chaînes d'approvisionnement logicielles. En savoir plus.