Glossaire cyber

SBOM - Software Bill of Materials, formats et 2026

SBOM (Software Bill of Materials) : SPDX vs CycloneDX, outils 2026 (Syft, Trivy, cdxgen), VEX, Executive Order 14028, EU CRA, NIS2, supply chain.

Naim Aouaichia
17 min de lecture
  • Glossaire
  • SBOM
  • Supply Chain
  • DevSecOps
  • Compliance
  • OWASP
  • AppSec

Le SBOM (Software Bill of Materials) est l'inventaire structuré et machine-readable des composants logiciels, dépendances, bibliothèques et métadonnées d'un produit logiciel. C'est l'équivalent en software de la nomenclature (BOM) en industrie manufacturière. Le concept émerge fin 2010s mais explose à partir du 12 mai 2021 avec Executive Order 14028 « Improving the Nation's Cybersecurity » signé par Joe Biden post-incident SolarWinds (décembre 2020). L'EO impose aux fournisseurs du gouvernement fédéral US de fournir un SBOM avec leurs livrables. En Europe, EU Cyber Resilience Act (CRA) adopté en mars 2024 et applicable en décembre 2027 étend cette obligation à tous les fabricants de produits avec composants numériques vendus en UE, IoT, logiciels embarqués, applications, services managés. NIS2 transposée en France par ordonnance du 30 octobre 2024 et DORA applicable 17 janvier 2025 ajoutent des obligations supply chain. Deux formats dominent en 2026 : SPDX (Linux Foundation, ISO/IEC 5962:2021 depuis août 2021) et CycloneDX (OWASP, version 1.6 en 2024), les outils modernes (Syft Anchore, Trivy Aqua Security, cdxgen OWASP, Snyk SBOM, GitHub Dependency Graph SBOM Export, Microsoft sbom-tool) génèrent les deux. La couche VEX (Vulnerability Exploitability eXchange), OpenVEX CNCF, CycloneDX VEX depuis 1.4 (2022), OASIS CSAF VEX profile, réduit les 60-80 % de faux positifs de CVE non-exploitables matchées contre dépendances dormantes. Comprendre les standards SPDX/CycloneDX, l'intégration CI/CD, le rôle critique du VEX, les drivers réglementaires 2024-2027, et l'arbitrage open-source vs commercial est non-négociable pour tout éditeur logiciel sérieux en 2026.

Pour le contexte adjacent : voir CVE - Définition, format, processus pour les vulnérabilités matchées contre les dépendances SBOM, et SAST - Static Application Security Testing pour la couche analyse code complémentaire.

1. Définition précise et enjeu supply chain 2026

Un SBOM est plus qu'une liste de packages : c'est un objet structuré, signable, versionné qui contient :

ÉlémentDéfinitionExemple
ComponentsListe des packages, libraires, moduleslodash@4.17.21, openssl@3.2.1
VersionsVersion exacte de chaque composant4.17.21 strict
SuppliersÉditeur ou maintainernpm registry / Apache Foundation
LicensesLicence (MIT, Apache 2.0, GPL, etc.)Critique pour compliance
HashesSHA-256 du composantVérification intégrité
RelationshipsDépendances directes vs transitivesapp → express → body-parser → bytes
CPE / PURLIdentifiants standardiséspkg:npm/lodash@4.17.21 (PURL)
MetadataDate, auteur, contexte de générationtimestamp + commit_sha + author

Le driver structurel 2024-2026 est la chaîne d'attaques supply chain documentées :

DateIncidentImpactApport SBOM
Décembre 2020SolarWinds Orion compromise18 000 organisations affectées dont gov USSBOM aurait permis identification rapide des produits Orion-affectés
Décembre 2021Log4Shell (CVE-2021-44228)Trillions devices exposésSBOM aurait permis matching instantané vs scan complet 2-6 semaines
Mars 2024xz-utils backdoor (CVE-2024-3094)Linux distros à 1 mois de prodSBOM avec versions exactes = mitigation 24h vs 7-14 jours
Juillet 2023Storm-0558 MicrosoftGov US accounts compromisIndirect, SBOM service-side
Avril 2024HTTP/2 Continuation Flood (CVE-2024-27316)Apache, NGINX, libcurlSBOM permet identification rapide des produits affectés

Sans SBOM, l'identification des produits affectés par une CVE supply chain prend 2-6 semaines dans une organisation 1000+ services. Avec SBOM continu + matching automatique, c'est 24-72 heures.

2. SPDX vs CycloneDX - les deux standards dominants 2026

2.1 SPDX (Software Package Data Exchange)

CaractéristiqueDétail
MaintainerLinux Foundation
Origine2010, lancé par groupe open-source compliance
Standard ISOISO/IEC 5962:2021 depuis août 2021
FormatJSON, YAML, RDF, XML, tag-value
Version 2026SPDX 3.0 (publiée 2024)
ForceMaturité, adoption gouvernementale (US gov, NIST), licensing focus
LimiteMoins riche en metadata sécurité que CycloneDX

Exemple SPDX 3.0 minimal :

{
  "spdxVersion": "SPDX-3.0",
  "dataLicense": "CC0-1.0",
  "SPDXID": "SPDXRef-DOCUMENT",
  "name": "my-app-1.2.3",
  "documentNamespace": "https://example.com/sbom/my-app-1.2.3",
  "creationInfo": {
    "created": "2026-05-02T09:00:00Z",
    "creators": ["Tool: Microsoft.SBOM.Tool@2.0", "Organization: Example Corp"]
  },
  "packages": [
    {
      "SPDXID": "SPDXRef-Package-lodash",
      "name": "lodash",
      "versionInfo": "4.17.21",
      "downloadLocation": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
      "filesAnalyzed": false,
      "licenseConcluded": "MIT",
      "supplier": "Organization: npm Inc.",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "679591c564c3bffaae8454cf0b3df370c3d6911c9b1b9b9e2f9d4e34e5e87f12"
        }
      ],
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE-MANAGER",
          "referenceType": "purl",
          "referenceLocator": "pkg:npm/lodash@4.17.21"
        }
      ]
    }
  ]
}

2.2 CycloneDX (OWASP)

CaractéristiqueDétail
MaintainerOWASP CycloneDX Project
Origine2017
FormatJSON, XML, Protocol Buffers
Version 2026CycloneDX 1.6 (publiée 2024)
ForceSecurity-first, VEX intégré natif, supply chain attestations, ML-BOM (modèles ML)
LimiteMoins reconnu sur compliance gouvernementale historique

CycloneDX 1.6 ajoute des extensions structurantes :

ExtensionUsage
VEX (Vulnerability Exploitability eXchange)Contexte exploitabilité par CVE × produit
VDR (Vulnerability Disclosure Report)Disclosure vulns pre-public
SaaSBOMInventaire services SaaS vs composants binaires
ML-BOMInventaire modèles machine learning + datasets
HBOMInventaire hardware (en émergence 2024-2026)
OBOMInventaire opérationnel (configurations runtime)
CBOMCryptography BOM (algorithmes crypto, key sizes, conformity post-quantum)

2.3 Comparaison stratégique 2026

CritèreSPDXCycloneDX
Adoption gov USForte (NIST, Executive Order 14028)Moyenne
Adoption AppSec moderneMoyenneForte (OWASP, DevSecOps cloud-native)
VEX integrationExterne (CSAF)Natif depuis 1.4 (2022)
ML-BOM / SaaSBOMPas natifNatif depuis 1.5-1.6
ToolingMicrosoft sbom-tool, Tern, syftTrivy, syft, cdxgen, Snyk
Format dominant 2026JSON SPDX 3.0JSON CycloneDX 1.6

Position tranchée 2026 : générer CycloneDX 1.6 par défaut pour la chaîne sécurité interne (intégration VEX, ML-BOM, plus moderne), exporter SPDX 3.0 en parallèle pour compliance et tier customers gov US qui le demandent. Beaucoup d'outils (Syft, Trivy) génèrent les deux nativement, donc le coût marginal est nul.

3. Outils SBOM 2026

3.1 Génération SBOM

OutilVendorForce 2026FormatsTarif
SyftAnchoreOSS, multi-langage, scan filesystem + container + Kubernetes, ~30+ types packagesSPDX, CycloneDX, Syft natifGratuit
TrivyAqua SecurityOSS, scan + SBOM en un, container + filesystem + repo + cloudCycloneDX, SPDXGratuit
cdxgenOWASP CycloneDX ProjectOSS dédié CycloneDX, multi-langageCycloneDXGratuit
Microsoft sbom-toolMicrosoftOSS, intégration Azure DevOps, focus SPDXSPDXGratuit
Snyk SBOMSnykSaaS, intégration Snyk Open SourceCycloneDX, SPDXInclus Snyk
GitHub Dependency Graph SBOM ExportMicrosoft / GitHubExport SBOM des repos GitHub via UI ou APISPDXGratuit GHAS
TernVMwareContainer-focused, image layer analysisSPDXGratuit
Black Duck (Synopsys spin-off 2024)Black DuckEnterprise SCA + SBOMMulti-formatsVariable

3.2 Stockage et SBOM management

OutilTypeForce 2026
OWASP Dependency-TrackOSSPlateforme SBOM + VEX management mature, communautaire forte
Sigstore (Cosign + Rekor)OSS CNCFSigning + transparency log pour SBOM signés
Anchore EnterpriseCommercialSBOM enterprise + governance + compliance
SnykSaaSBundle SCA + SBOM management
Mend (ex-WhiteSource)SaaSSCA + SBOM + reachability analysis
Endor LabsCommercialSBOM + reachability native, IPO 2024
GUAC (Graph for Understanding Artifact Composition)OSS SigstoreGraph DB pour SBOM cross-projet
Sonatype LifecycleCommercialNexus + SBOM enterprise

3.3 VEX (Vulnerability Exploitability eXchange) outils

FormatSpecOutils
OpenVEXCNCF Sandbox 2023, JSON minimalistevexctl, OpenVEX libraries Go/Python/JS
CycloneDX VEXDepuis CycloneDX 1.4 (2022)cdxgen, Dependency-Track
OASIS CSAF VEX profileCommon Security Advisory FrameworkAnchore, Snyk, GitHub Advisory DB

4. Pipeline SBOM CI/CD complet 2026

Pipeline mature en 6 étapes avec OSS stack :

# .github/workflows/sbom.yml
name: SBOM continuous generation + VEX
on:
  push:
    branches: [main]
    tags: ['v*']
  pull_request:
  schedule:
    - cron: '0 4 * * *'  # Nightly re-match SBOM vs new CVE
 
permissions:
  contents: read
  packages: write
  id-token: write  # for Cosign keyless signing
 
jobs:
  generate-sbom:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
 
      - name: Build container image
        run: |
          docker build -t ghcr.io/${{ github.repository }}:${{ github.sha }} .
 
      # 1. Génération SBOM avec Syft
      - name: Generate SBOM (CycloneDX + SPDX)
        run: |
          # Install Syft
          curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
 
          # Generate CycloneDX (default for internal pipeline)
          syft ghcr.io/${{ github.repository }}:${{ github.sha }} \
            -o cyclonedx-json=sbom.cdx.json \
            -o spdx-json=sbom.spdx.json
 
      # 2. Vulnerability matching avec Grype
      - name: Match SBOM against CVE database
        run: |
          curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin
          grype sbom:sbom.cdx.json -o json > vulnerabilities.json
 
      # 3. Sign SBOM avec Cosign + Rekor (transparency log)
      - name: Sign SBOM with Cosign keyless
        env:
          COSIGN_EXPERIMENTAL: 1
        run: |
          curl -sSfL https://github.com/sigstore/cosign/releases/latest/download/cosign-linux-amd64 \
            -o /usr/local/bin/cosign
          chmod +x /usr/local/bin/cosign
 
          # Sign avec OIDC (GitHub Actions identity)
          cosign sign-blob --yes sbom.cdx.json \
            --output-signature sbom.cdx.json.sig \
            --output-certificate sbom.cdx.json.cert
 
      # 4. Attach SBOM au container image
      - name: Attach SBOM to container image
        run: |
          cosign attach sbom \
            --sbom sbom.cdx.json \
            --type cyclonedx \
            ghcr.io/${{ github.repository }}:${{ github.sha }}
 
      # 5. Upload SBOM dans Dependency-Track pour management long terme
      - name: Upload SBOM to Dependency-Track
        run: |
          curl -X POST "${DTRACK_URL}/api/v1/bom" \
            -H "X-API-Key: ${DTRACK_API_KEY}" \
            -H "Content-Type: multipart/form-data" \
            -F "project=my-app-prod" \
            -F "bom=@sbom.cdx.json"
 
      # 6. Generate VEX statements pour les CVE matched mais not_affected
      - name: Generate VEX statements with vexctl
        run: |
          go install github.com/openvex/vexctl@latest
 
          # Pour chaque CVE FP connue, ajouter VEX statement
          vexctl create --product=pkg:oci/my-app@${{ github.sha }} \
            --vuln=CVE-2024-49872 \
            --status=not_affected \
            --justification="vulnerable_code_not_in_execute_path" \
            --impact-statement="Library X est inclus mais le code vulnérable Y n'est jamais appelé" \
            --file=vex-statements/cve-2024-49872.openvex.json
 
          # Sign VEX statements
          for vex in vex-statements/*.openvex.json; do
            cosign sign-blob --yes "$vex"
          done
 
  gate-decision:
    needs: generate-sbom
    runs-on: ubuntu-latest
    steps:
      - name: Gate on critical CVEs after VEX filtering
        run: |
          # Match SBOM × VEX statements × CISA KEV
          # Bloquer si CVE Critical ET VEX != not_affected ET CVE in CISA KEV
          ./scripts/sbom-gate.sh

5. Drivers réglementaires SBOM 2024-2027

RégulationDate cléImpact SBOM
Executive Order 14028Signé 12 mai 2021 (Biden)SBOM obligatoire pour fournisseurs gov US
NIST SP 800-218 SSDFPublication 2022SBOM dans Secure SDF practices PW.4
NIST IR 8425Septembre 2022IoT Device Cybersecurity, SBOM intégré
CISA SBOM Minimum ElementsJuillet 20217 éléments minimaux SBOM
CISA Secure by Design pledgeMai 2024Engagement vendor SBOM + transparency
EU Cyber Resilience Act (CRA)Adopté mars 2024, applicable décembre 2027SBOM obligatoire produits avec composants numériques en UE
NIS2Transposée FR octobre 2024Article 21.2.d supply chain risk management
DORA (UE)Applicable 17 janvier 2025Article 28-30 third-party risk management
PCI-DSS v4.0Mandatory mars 2025Requirement 6.3.2 (inventaire composants logiciels)
FDA Premarket CybersecuritySeptembre 2023SBOM obligatoire dispositifs médicaux US

Position tranchée 2026 : pour tout éditeur logiciel vendant en UE ou aux US, le SBOM est non-négociable d'ici 2027, pas pour la conformité immédiate (CRA mandatory décembre 2027), mais parce que les clients enterprise demandent déjà le SBOM lors des appels d'offres et audits tierce partie. Ne pas avoir de SBOM en 2026 = perte de deals en sales cycle.

6. SBOM minimal selon CISA - les 7 éléments obligatoires

CISA a défini en juillet 2021 les 7 éléments minimaux d'un SBOM acceptable :

#ÉlémentDescription
1AuthorQui a généré le SBOM
2TimestampQuand il a été généré
3Supplier nameÉditeur de chaque composant
4Component nameNom du composant
5VersionVersion exacte
6Unique identifierPURL, CPE, ou autre ID standard
7Dependency relationshipDirect vs transitif

Tous les outils modernes (Syft, Trivy, cdxgen) génèrent ces 7 éléments par défaut. Un SBOM qui manque l'un d'eux est non-conforme aux exigences CISA / NIST / NTIA.

7. VEX et réduction des faux positifs

Sans VEX, un SBOM avec 500 dépendances génère typiquement 30-100 CVE matches, dont 60-80 % sont des faux positifs (lib présente mais code vulnérable non-appelé). Les développeurs perdent alors 30-90 minutes par CVE pour investiguer.

VEX statements documentent par CVE × produit quatre statuts possibles :

Statut VEXDéfinitionAction
not_affectedLa vuln existe mais n'est pas exploitable dans ce produitSuppress alert + justification
affectedLa vuln existe et est exploitablePatch obligatoire SLA-bound
fixedLa vuln a été corrigéeConfirmer version patched
under_investigationStatut indéterminé en cours d'analyseTriage tier 2

Exemple OpenVEX statement :

{
  "@context": "https://openvex.dev/ns/v0.2.0",
  "@id": "https://example.com/vex/cve-2024-3094-myapp-2026-05-02",
  "author": "Example Corp Security Team",
  "timestamp": "2026-05-02T09:00:00Z",
  "version": 1,
  "statements": [
    {
      "vulnerability": {
        "name": "CVE-2024-3094",
        "@id": "https://nvd.nist.gov/vuln/detail/CVE-2024-3094"
      },
      "products": [
        {
          "@id": "pkg:oci/myapp:2.3.1",
          "subcomponents": [
            { "@id": "pkg:deb/debian/xz-utils@5.6.1" }
          ]
        }
      ],
      "status": "not_affected",
      "justification": "vulnerable_code_not_in_execute_path",
      "impact_statement": "xz-utils est dans l'image base mais sshd n'est pas activé sur ce conteneur (port 22 fermé, service disabled). La backdoor CVE-2024-3094 nécessite sshd actif pour être exploitée."
    }
  ]
}

Position tranchée 2026 : un programme SBOM sans pipeline VEX automatique est incomplet. Adopter OpenVEX (CNCF Sandbox) comme format pivot interne, exporter en CycloneDX VEX ou CSAF VEX selon besoin compliance.

8. Erreurs fréquentes SBOM et anti-patterns

ErreurSymptômeFix
SBOM généré une fois au releaseObsolète dès la prochaine dépendance ajoutéeGénération continue à chaque build CI
Pas de signing SBOMTampering possible, audit trail faibleSign avec Cosign + Sigstore Rekor
Pas de VEX60-80 % FP sur CVE matchedPipeline OpenVEX + Dependency-Track
Format mono (SPDX OU CycloneDX)Compliance ou intégration loupéeGénérer les deux (Syft, Trivy le font nativement)
Pas de matching CVE continuCVE découverte non-détectéeRe-match nightly contre OSV.dev + NVD + GHSA
Pas de stockage centraliséSBOM perdus, pas d'historiqueOWASP Dependency-Track ou Anchore Enterprise
SBOM stocké dans le repo GitBloat, pas de versioning blobContainer OCI attached SBOM ou registry dédié
Pas de PURL ou CPEMatching CVE imprécisToujours inclure PURL + CPE dans chaque component
Pas de signing du SBOM par vendorTier customers ne font pas confianceCosign keyless OIDC + transparency log Rekor
Pas de mapping NIST SSDFCompliance gov manquéeTagger SBOM avec NIST SSDF practice mapping

9. ROI mesurable et tarification 2026

ROI typique d'un programme SBOM mature en 2026 :

MétriqueSans SBOMAvec SBOM mature 2026
MTTR sur CVE supply chain critique9-12 semaines24-72 heures
Identification produits affectés (CVE-2021-44228 type)2-6 semaines< 1 heure
Audit annuel reconstitution inventaire30-50 jours-homme0 jours (auto)
Volume FP CVE supply chain60-80 %< 20 % avec VEX
Adoption developer triage30-60 min/finding5-15 min/finding
Compliance documentationReconstruction manuelleExport automatique

Calcul TCO réaliste 2026 pour 100 développeurs + 200 services :

StackCoût annuelEffort ETP
OSS pure (Syft + Trivy + Dependency-Track + OpenVEX + Cosign)0 € licence + infra0.5-1 ETP DevSecOps
Snyk Open Source + SBOM60-150 k€/an0.3-0.5 ETP
Mend (ex-WhiteSource)50-120 k€/an0.3-0.5 ETP
Anchore Enterprise80-200 k€/an0.3-0.5 ETP
Sonatype Lifecycle100-300 k€/an0.3-0.5 ETP
Endor Labs (reachability + SBOM)80-250 k€/an0.2-0.4 ETP

Position tranchée 2026 : pour PME/ETI, stack OSS Syft + Trivy + Dependency-Track est rarement contestable, ROI immédiat, formats portables, communauté forte. Pour grandes orgs avec compliance forte (banking, healthcare, gov), Snyk + Mend ou Anchore Enterprise justifient le coût avec support et governance UI riche.

10. Pour aller plus loin

11. Points clés à retenir

  • SBOM = inventaire structuré et machine-readable des composants, dépendances, licences, hashes d'un produit logiciel.
  • Drivers structurels : SolarWinds (déc 2020), Log4Shell (déc 2021), xz-utils (mars 2024 CVE-2024-3094) ont révélé l'urgence supply chain.
  • Executive Order 14028 signé Joe Biden le 12 mai 2021 = trigger réglementaire majeur pour SBOM aux US.
  • EU Cyber Resilience Act (CRA) adopté mars 2024, mandatory décembre 2027, SBOM obligatoire pour produits numériques vendus en UE.
  • Deux formats dominants : SPDX (Linux Foundation, ISO/IEC 5962:2021) et CycloneDX (OWASP, version 1.6 en 2024). Stack moderne = générer les deux.
  • CycloneDX 1.6 extensions : VEX (1.4+), VDR, SaaSBOM, ML-BOM, HBOM, OBOM, CBOM (Crypto Bill of Materials post-quantum).
  • Outils OSS 2026 : Syft (Anchore), Trivy (Aqua), cdxgen (OWASP), OWASP Dependency-Track, Cosign (Sigstore), OpenVEX (CNCF Sandbox 2023).
  • Outils commerciaux : Snyk SBOM, Mend, Anchore Enterprise, Sonatype Lifecycle, Endor Labs (IPO 2024 avec reachability).
  • VEX (Vulnerability Exploitability eXchange) réduit les 60-80 % de faux positifs CVE supply chain. OpenVEX (CNCF) format pivot recommandé.
  • CISA SBOM Minimum Elements (juillet 2021) : 7 champs obligatoires (Author, Timestamp, Supplier, Component name, Version, Unique ID, Dependency).
  • MTTR sur CVE supply chain : 9-12 semaines sans SBOM → 24-72 heures avec SBOM continu + VEX + Dependency-Track.
  • Tarification 2026 : stack OSS pure 0 € + 0.5-1 ETP ; commercial 50-300 k€/an pour 100 développeurs + 200 services.
  • Anti-pattern n°1 : SBOM généré une fois au release → obsolète. Génération continue à chaque build CI obligatoire.
  • Anti-pattern n°2 : pas de VEX → 60-80 % FP ingérable. OpenVEX + Dependency-Track non-négociables en 2026.
  • Compliance : SBOM mappe Executive Order 14028, NIST SP 800-218 SSDF (PW.4), EU CRA (mandatory 2027), NIS2 article 21.2.d, DORA articles 28-30, PCI-DSS v4.0 Req 6.3.2, FDA medical devices (septembre 2023).

Questions fréquentes

  • SPDX vs CycloneDX : lequel choisir en 2026 ?
    **Cas par cas selon contexte**. **SPDX** (Software Package Data Exchange) maintenu par **Linux Foundation**, **ISO/IEC 5962:2021** depuis août 2021, format historique focus licensing + dépendances, version 3.0 publiée en 2024. **CycloneDX** (OWASP, https://cyclonedx.org/) lancé par **OWASP** en 2017, version 1.6 en 2024, focus security + supply chain + vulnérabilités, intégration native avec **VEX** (Vulnerability Exploitability eXchange). Position 2026 : pour **secteur public US/UE** où Executive Order 14028 et NIST SSDF dominent, SPDX est souvent demandé explicitement. Pour **AppSec moderne / DevSecOps cloud-native**, **CycloneDX** est dominant (Trivy, Syft, OWASP Dependency-Track, Snyk supportent les deux mais préfèrent CycloneDX). Beaucoup d'outils génèrent les deux formats nativement, donc la décision est souvent moins critique qu'elle paraît. **Recommandation 2026** : générer en CycloneDX pour la chaîne sécurité interne, exporter en SPDX pour compliance et tier customers.
  • Comment intégrer SBOM en CI/CD avec Syft, Trivy ou cdxgen ?
    **Pipeline mature 2026 en 4 étapes**. (1) **Génération** : `syft <image>:<tag> -o cyclonedx-json=sbom.json` ou `trivy image --format cyclonedx --output sbom.json <image>` ou `cdxgen -t java -o sbom.json` selon stack. (2) **Stockage versionné** : push le SBOM dans un registry signé (Cosign + Rekor + Sigstore) ou un blob storage avec versioning. (3) **Vulnerability matching continu** : OSV-scanner, Trivy, Snyk Open Source, Mend SCA matchent le SBOM contre CVE/CWE en continu (pas juste au build). (4) **VEX statements** publication : pour chaque CVE matché, générer un VEX statement indiquant si la vuln est `not_affected`, `under_investigation`, `affected`, ou `fixed`. Outils : **OpenVEX** (CNCF), **vexctl**, **Dependency-Track**. Position 2026 : un SBOM sans pipeline VEX automatique est **incomplet**, chaque CVE matché contre une dépendance déclenche typiquement 60-80 % de FP sans VEX (lib présente mais code non-appelé).
  • Executive Order 14028 et EU Cyber Resilience Act : quelles obligations SBOM en 2026 ?
    **Deux drivers réglementaires majeurs**. **Executive Order 14028** (« Improving the Nation's Cybersecurity », signé Joe Biden le 12 mai 2021 post-SolarWinds) : impose aux fournisseurs du gouvernement fédéral US de fournir un SBOM lors de la livraison logiciel, implémenté via NIST SP 800-218 SSDF + NIST IR 8425. **EU Cyber Resilience Act (CRA)** : adopté en mars 2024, entrée en vigueur 11 décembre 2024 avec mandatory en **décembre 2027**, impose un SBOM aux fabricants de produits avec composants numériques vendus en UE (logiciels embarqués, IoT, applications, etc.). **NIS2** transposée en France par ordonnance du 30 octobre 2024 : impose mesures de gestion des risques de la chaîne d'approvisionnement (article 21.2.d). **DORA** (UE, applicable 17 janvier 2025) : impose le risk management de la chaîne ICT pour acteurs financiers UE (article 28-30). Position 2026 : tout éditeur logiciel sérieux **doit** déjà générer un SBOM en continu d'ici 2027 ; ce n'est plus optionnel.
  • VEX (Vulnerability Exploitability eXchange) : pourquoi c'est critique en 2026 ?
    **Parce que SBOM seul génère 60-80 % de FP** sur les CVE matchées. Exemple : votre image contient `lodash` (transitivement via 50 packages), CVE détectée dans `lodash.merge()`, mais votre code n'appelle jamais cette fonction. Sans VEX, le ticket est ouvert et le dev passe 30 min à investiguer. Avec VEX, le vendor publie un statement `not_affected` avec justification + scope, le scanner consomme le VEX et **n'alerte plus**. **Formats VEX 2026** : **OpenVEX** (CNCF Sandbox 2023, format JSON minimaliste), **CycloneDX VEX** (depuis CycloneDX 1.4 en 2022), **OASIS CSAF VEX profile** (Common Security Advisory Framework, lourd mais standard officiel). **Outils** : `vexctl` (OpenVEX), Anchore Enterprise, Dependency-Track, Snyk VEX support, GitHub Advisory Database VEX. Position 2026 : adopter **OpenVEX** comme format pivot interne (simple, JSON, signable Cosign), exporter en CycloneDX VEX ou CSAF pour compliance. Sans VEX, le SBOM est une source de bruit ingérable au-delà de 100 dépendances.
  • Combien coûte un programme SBOM mature en 2026 et quel ROI ?
    **Investissement modeste, ROI élevé en 2026**. **Stack open-source** : Syft + Trivy + OWASP Dependency-Track + OpenVEX = **gratuit en licence**, ~0.5-1 ETP DevSecOps pour ops + tuning. **Stack commercial** : Snyk Open Source + Snyk SBOM ~50-150 $/dev/mois ; Mend (ex-WhiteSource) ~30-100 $/dev/mois ; Anchore Enterprise ~50-200 $/host/mois ; Sonatype Lifecycle ~50-200 $/contributeur/mois. Pour 100 développeurs + 200 services : **stack open-source 50-100 k€/an** ; **stack commercial 150-400 k€/an**. **ROI mesurable** : (1) réduction MTTR sur CVE supply chain de 9-12 semaines à 2-4 semaines (CVE-2021-44228 Log4Shell type), (2) conformité Executive Order 14028 / EU CRA / NIS2 simplifiée, (3) audit annuel facilité, un éditeur sans SBOM en 2026 paie 30-50 jours-homme d'audit manuel pour reconstituer l'inventaire. ROI positif typique en 6-12 mois.

Écrit par

Naim Aouaichia

Cyber Security Engineer et fondateur de Zeroday Cyber Academy

Ingénieur cybersécurité avec un parcours hybride : développement, DevOps Capgemini, DevSecOps IN Groupe (sécurité des documents d'identité régaliens), audits CAC 40. Fondateur de Hash24Security et Zeroday Cyber Academy. Présence LinkedIn 43 000 abonnés, Substack Zeroday Notes 23 000 abonnés.