SBOM (Software Bill of Materials)

DevOps 🟡 Mid

Définition

Inventaire formel de tous les composants d'un logiciel (paquets, versions, licences, empreintes), au format machine. Deux standards dominent : CycloneDX, de l'OWASP, normalisé ECMA-424 (1.6 en juin 2024, 1.7 en décembre 2025), et SPDX, de la Linux Foundation, normalisé ISO/IEC 5962:2021. Il permet de savoir en minutes si l'on est touché par une vulnérabilité de dépendance, et répond à la catégorie A03:2025 « Software Supply Chain Failures » de l'OWASP.

Analogie

La liste des ingrédients sur un emballage : en cas de rappel d'un lot de farine, on sait immédiatement quels gâteaux retirer des rayons.

Exemple de code

# Générer un SBOM CycloneDX à partir du lockfile npm
npx @cyclonedx/cyclonedx-npm --output-file sbom.cdx.json

# Ou depuis une image Docker (Syft), au format SPDX
syft ghcr.io/acme/api:1.4.0 -o spdx-json > sbom.spdx.json

# Docker Buildx peut attacher le SBOM à l'image
docker buildx build --sbom=true -t ghcr.io/acme/api:1.4.0 --push .

# Scanner le SBOM contre les CVE connues (Grype)
grype sbom:sbom.cdx.json --fail-on high

Cas d'usage

Réagir vite à une CVE type Log4Shell, répondre aux exigences clients ou réglementaires, alimenter le scan de vulnérabilités en CI.

Anti-pattern

Générer un SBOM une fois pour l'audit puis le laisser vieillir : il doit être produit à chaque build et rattaché à l'artefact livré.
#devops#security#supply-chain

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre