Les applications modernes ne sont plus de gigantesques monolithes, elles sont une collection de microservices, de composants open source et d'outils tiers. Mais cela rend très difficile de comprendre réellement l'intérieur de nos applications, en particulier si l'on considère que nos dépendances open source ont elles-mêmes des dépendances open source !
Le Software Bill of Materials (SBOM) joue un rôle clé ici. Les SBOM fournissent un inventaire détaillé de tous les composants logiciels. Cela nous aide non seulement à comprendre notre logiciel, mais nous permet également d'identifier les risques et de répondre à nos exigences de conformité et de gouvernance.
Pour que les SBOMs fonctionnent bien, ils doivent être standardisés et facilement partageables entre divers systèmes et outils. C'est là que les standards SBOM deviennent vitaux.
Comprendre les standards SBOM
Les standards SBOM établissent un format commun pour la création et le partage des données SBOM. Ils offrent un langage unifié, assurant une communication cohérente entre différentes organisations et outils.
La standardisation est nécessaire car les SBOMs peuvent être longs et remplis de détails sur les composants, les versions, les licences et les dépendances. Sans un format standard, l'interprétation et l'utilisation des données SBOM deviennent difficiles pour différentes entités.
Actuellement, trois principaux standards SBOM sont populaires dans l'industrie :
- CycloneDX : Un standard léger axé sur la sécurité, prenant en charge divers types de BOM, y compris les logiciels, le matériel et les services.
- SPDX (Software Package Data Exchange) : Le seul standard SBOM reconnu par l'ISO, connu pour son approche exhaustive des données de composants et ses origines dans les licences logicielles.
- Balises SWID (Software Identification) : Axées sur l'identification des logiciels, elles facilitent le suivi des logiciels installés pour la gestion des actifs.
Chaque standard possède des forces et des cas d'utilisation spécifiques, que nous aborderons plus en détail.
CycloneDX en un coup d'œil
- Conçu spécifiquement pour les cas d'usage de sécurité (par exemple, le suivi des vulnérabilités, le support VEX, le hachage de composants).
- Prend en charge nativement le VEX (Vulnerability Exploitability eXchange) et les arbres de dépendances.
- Compatible avec les pipelines DevSecOps modernes et des outils tels que OWASP Dependency-Check, Anchore, GitHub Advanced Security.
- Plus facile à intégrer dans les environnements CI/CD (léger, compatible JSON).
CycloneDX se distingue par son efficacité et ses fonctionnalités de sécurité robustes. Sa conception permet une intégration rapide, ce qui le rend idéal pour les équipes qui valorisent l'agilité et la sécurité. CycloneDX couvre les logiciels, le matériel et les matériaux liés aux services, ce qui le rend polyvalent pour différents environnements technologiques.
CycloneDX prend en charge plusieurs formats de données, notamment XML, JSON et protobuf, assurant la compatibilité avec divers outils. Sous l'égide de l'OWASP, CycloneDX évolue continuellement pour relever les défis de sécurité actuels dans les chaînes d'approvisionnement logicielles.
Exemple de formatage CycloneDX
{
"bomFormat": "CycloneDX",
"specVersion": "1.5",
"version": 1,
"components": [
{
"type": "library",
"name": "example-lib",
"version": "1.0.0",
"purl": "pkg:npm/example-lib@1.0.0",
"licenses": [{ "license": { "id": "MIT" } }]
}
]
}Exploration de SPDX
- Destiné aux équipes juridiques et à la due diligence PI (modèle de métadonnées de licence robuste).
- Un langage d'expression de licence étendu (liste de licences SPDX).
- Standardisé sous ISO/IEC 5962:2021.
- Utilisé dans des initiatives majeures comme OpenChain, ORT et Tern.
SPDX est reconnu mondialement comme le seul standard SBOM doté d'une accréditation ISO, ce qui renforce sa crédibilité. Initialement conçu pour la gestion des licences logicielles, SPDX a évolué pour répondre à des besoins plus larges en matière de transparence logicielle.
SPDX prend en charge plusieurs formats de données tels que tag/value, JSON, XML, YAML et RDF, s'intégrant facilement avec divers outils et plateformes. Il fournit des informations approfondies sur les composants logiciels, documentant les fichiers et les extraits de code pour un suivi détaillé de la conformité et de la sécurité.
Exemple de formatage SPDX
SPDXVersion: SPDX-2.3
DataLicense: CC0-1.0
SPDXID: SPDXRef-DOCUMENT
DocumentName: example-sbom
DocumentNamespace: http://spdx.org/spdxdocs/example-sbom
Creator: Tool: SPDX-Tools
Created: 2025-05-08T12:00:00Z
PackageName: example-lib
SPDXID: SPDXRef-Package-example-lib
PackageVersion: 1.0.0Package
DownloadLocation: NOASSERTION
PackageLicenseConcluded: MIT
PackageLicenseDeclared: MIT
PackageChecksum: SHA256: abcdef1234567890abcdef1234567890abcdef1234569uiComprendre les Tags SWID
- Destiné à la gestion des inventaires de logiciels d'entreprise.
- Standardisé sous ISO/IEC 19770-2 — très axé sur le gouvernement/militaire.
- Utilisé dans FedRAMP, NIST 800-171, et les cadres de conformité associés.
Les tags SWID se concentrent sur une délimitation claire des produits logiciels. Contrairement aux SBOMs exhaustives, les tags SWID identifient les packages logiciels individuels, ce qui est crucial pour une gestion précise des inventaires.
Dans la gestion des actifs, les Tags SWID offrent une méthode standardisée pour suivre les installations logicielles, garantissant aux organisations de maintenir un paysage logiciel précis. Cela contribue à la conformité et à l'optimisation des stratégies de gestion des actifs.
Les tags SWID s'intègrent à des frameworks tels que SCAP et les standards TCG, renforçant ainsi leur rôle en matière de sécurité et de conformité.
Exemple de formatage SWID
<SoftwareIdentity xmlns="http://standards.iso.org/iso/19770/-2/2015/schema.xsd" name="example-lib"
version="1.0.0"
tagId="example-lib@1.0.0"
patch="false"
</SoftwareIdentity>Comparaison des standards SBOM
Pour différencier CycloneDX, SPDX et les SWID Tags, commencez par leurs caractéristiques. CycloneDX est adapté à la gestion flexible des BOM dans des environnements de sécurité dynamiques. SPDX excelle dans le suivi de la conformité, tandis que les SWID Tags se concentrent sur l'identification précise des logiciels. Voici une comparaison rapide :
La structure de CycloneDX répond au besoin de transparence. SPDX fournit une documentation détaillée et assure l'intégrité des données pour la supervision de la conformité.
Chaque standard répond à des besoins spécifiques. CycloneDX convient aux équipes qui privilégient un développement rapide et sécurisé. SPDX séduit les organisations axées sur la conformité. Les balises SWID améliorent la gestion des actifs en assurant un suivi précis.
Les outils de conversion entre ces formats sont essentiels pour maintenir l'interopérabilité. Les solutions avancées permettent aux organisations de tirer parti des forces de chaque standard, en adaptant les stratégies pour répondre à des exigences spécifiques.
Choisir le bon standard SBOM
Il ne suffit pas de générer un SBOM dans un seul format. Différentes parties prenantes — qu'il s'agisse d'auditeurs internes, d'agences gouvernementales ou de clients d'entreprise — peuvent exiger le SBOM dans un format spécifique pour l'intégrer dans leurs outils ou workflows existants. Par exemple :
- Un contrat fédéral peut exiger SPDX, tandis qu'un fournisseur de sécurité effectuant une évaluation des risques peut préférer CycloneDX.
- Certains systèmes CI/CD peuvent ne prendre en charge que certains formats SBOM pour l'application de politiques ou l'analyse automatisée.
L'outillage est important : choisissez-en un qui prend en charge plusieurs formats
Compte tenu de cette variabilité, vous devez choisir un outil capable de générer des SBOM dans plusieurs formats à partir des mêmes artefacts source. Des outils comme Aikido Security simplifient ce processus en générant automatiquement des SBOM pendant votre pipeline de build ou vos analyses de sécurité et en les exportant dans des formats tels que CycloneDX, SPDX et d'autres selon les besoins.
Cette capacité multi-formats vous assure de rester conforme aux diverses exigences, sans dupliquer le travail ni introduire d'erreurs dues aux conversions manuelles.
Sécurisez votre logiciel dès maintenant.



.avif)
