Software Bill of Materials : Template et Exemple Concret
Software Bill of Materials : Template et Exemple Concret
Introduction : L’impératif du SBOM dans le cadre de NIS2
La directive NIS2 (Directive (UE) 2022/2555) introduit des exigences renforcées en matière de transparence des chaînes d’approvisionnement logicielles. Pour les dirigeants et RSSI des secteurs critiques comme la santé (HDS) et la finance, le Software Bill of Materials (SBOM) devient un outil stratégique de conformité.
Selon l’article 21, paragraphe 2 de la directive, les entités essentielles et importantes doivent “identifier et évaluer systématiquement les risques pesant sur la sécurité des réseaux et systèmes d’information”. Le SBOM répond précisément à cette obligation en fournissant une cartographie exhaustive des composants logiciels.
Contexte réglementaire clé :
- Directive (UE) 2022/2555 du 14 décembre 2022
- Transposition française en cours (délai initial dépassé le 17 octobre 2024)
- Sanctions pouvant atteindre 10M€ ou 2% du CA mondial pour les entités essentielles
- 18 secteurs concernés (Annexe I et II de la directive)
Section 1 : Les exigences NIS2 relatives au SBOM
1.1 Fondements juridiques dans la directive
L’article 21, paragraphe 2 point d) impose explicitement aux entités concernées de :
- “Évaluer les risques liés aux relations avec les fournisseurs et la chaîne d’approvisionnement”
- “Adopter des mesures pour garantir la sécurité des produits acquis”
- “Maintenir une traçabilité des composants logiciels critiques”
L’ANSSI précise dans son guide d’application que le SBOM doit couvrir au minimum :
- Les bibliothèques tierces et leurs versions
- Les dépendances directes et transitives
- Les licences associées
- Les vulnérabilités connues (CVE)
1.2 Secteurs prioritaires pour l’implémentation
Certains secteurs de l’Annexe I sont particulièrement concernés :
| Secteur | Risque spécifique | Exigence SBOM |
|---|---|---|
| Santé (HDS) | Intégrité des dispositifs médicaux | SBOM complet pour les logiciels médicaux (FDA recommandations) |
| Secteur bancaire | Conformité DORA + NIS2 | SBOM pour les systèmes de paiement et core banking |
| Infrastructures numériques | Risque supply chain | SBOM pour les composants réseau critiques |
Section 2 : Template de SBOM conforme NIS2
2.1 Structure minimale requise
Un SBOM répondant aux exigences de l’article 21 doit contenir :
- Métadonnées du composant : Nom, version, éditeur, date de publication
- Relations entre composants : Arbre des dépendances avec granularité fine
- Informations de sécurité : CPE (Common Platform Enumeration), CVE connues
- Preuves d’authenticité : Signatures numériques, hashs de vérification
2.2 Exemple concret pour le secteur santé
Cas d’un logiciel de gestion de dossiers patients (HDS) :
{
"bomFormat": "CycloneDX",
"specVersion": "1.4",
"metadata": {
"timestamp": "2026-02-12T12:00:00Z",
"tools": [
{
"vendor": "ANSSI",
"name": "SBOM Generator",
"version": "2.1"
}
],
"component": {
"type": "application",
"name": "MediSoft HDS",
"version": "3.2.1",
"purl": "pkg:nuget/MediSoft@3.2.1"
}
},
"components": [
{
"type": "library",
"name": "OpenSSL",
"version": "3.0.8",
"purl": "pkg:deb/debian/openssl@3.0.8",
"vulnerabilities": [
{
"id": "CVE-2023-0286",
"analysis": {
"state": "resolved",
"response": ["patch"]
}
}
]
}
]
}
Ce template respecte les standards industriels (CycloneDX, SPDX) recommandés par l’ANSSI et couvre les exigences minimales de l’article 21.
2.3 Outils recommandés par l’ANSSI
Pour générer et maintenir des SBOM conformes :
- OWASP Dependency-Track (suivi continu des vulnérabilités)
- Syft (génération de SBOM à partir d’images containers)
- Microsoft SBOM Tool (intégration avec les chaînes DevOps)
- Anchore (analyse des containers et génération de SBOM)
L’ANSSI recommande une mise à jour automatique du SBOM à chaque :
- Nouvelle version de l’application
- Détection d’une vulnérabilité critique
- Changement dans la chaîne d’approvisionnement
Section 3 : Mise en œuvre opérationnelle
3.1 Intégration dans le processus de conformité NIS2
Le SBOM doit s’insérer dans le système global de gestion des risques requis par l’article 20 :
- Cartographier tous les actifs logiciels critiques
- Générer les SBOM initiaux (outils automatisés)
- Valider l’exhaustivité avec les équipes techniques
- Intégrer au registre des risques (article 21.2)
- Mettre en place un processus de mise à jour continue
3.2 Preuves documentaires pour les audits
En cas de contrôle par l’ANSSI, les entités doivent pouvoir fournir :
- Les SBOM historiques (avec horodatage certifié)
- Les preuves de traitement des vulnérabilités identifiées
- Les procédures de validation des composants tiers
- Les analyses d’impact des mises à jour critiques
FAQ : Réponses aux questions fréquentes
Le SBOM est-il obligatoire pour toutes les entités sous NIS2 ?
Oui, mais avec des exigences proportionnelles. L’article 21 impose à toutes les entités essentielles (Annexe I) et importantes (Annexe II) de mettre en place des mesures de gestion des risques liés à la chaîne d’approvisionnement. Le SBOM est la méthode recommandée par l’ENISA et l’ANSSI pour répondre à cette obligation.
Quelle fréquence de mise à jour pour les SBOM ?
L’ANSSI recommande une mise à jour :
- À chaque nouvelle version du logiciel
- Dans les 72 heures suivant la détection d’une vulnérabilité critique (article 23)
- Au minimum trimestriellement pour les systèmes critiques
Comment gérer les composants open source dans le SBOM ?
L’article 21 ne fait pas de distinction entre logiciels propriétaires et open source. Tous les composants doivent être inventoriés avec :
- Leur origine exacte (URL du dépôt, commit hash)
- Les licences associées (analyse des obligations légales)
- Les vulnérabilités connues (même pour les dépendances indirectes)
Conclusion : Prochaines étapes pour votre conformité
La mise en place d’un SBOM conforme NIS2 nécessite une approche structurée :
- Auditer votre parc logiciel existant
- Choisir un format standard (CycloneDX ou SPDX)
- Automatiser la génération et la maintenance
- Intégrer le SBOM dans votre système de gestion des risques
Pour un accompagnement sur mesure dans votre mise en conformité NIS2, consultez nos experts via notre page dédiée.
Comment créer un SBOM efficace : Bonnes pratiques
La création d’un Software Bill of Materials (SBOM) efficace nécessite une méthodologie rigoureuse pour garantir sa précision et son utilité.
1. Identifier tous les composants logiciels
Il est essentiel de lister toutes les dépendances, y compris les bibliothèques tierces, les frameworks et les outils de développement. Des outils comme Dependency-Track ou OWASP CycloneDX peuvent automatiser cette étape.
2. Inclure les métadonnées critiques
Chaque composant doit être accompagné d’informations telles que :
- La version exacte du composant
- Les licences associées
- Les vulnérabilités connues (via des bases comme CVE)
3. Mettre à jour régulièrement le SBOM
Un SBOM obsolète perd toute sa valeur. Intégrez sa mise à jour dans votre pipeline CI/CD pour refléter les changements en temps réel.
4. Standardiser le format
Privilégiez des formats comme SPDX, CycloneDX ou SWID pour assurer l’interopérabilité avec les outils de sécurité.
Exemple concret d’un SBOM pour une application web
Prenons l’exemple d’une application web développée avec Node.js et React. CycloneDX :
{
"bomFormat": "CycloneDX",
"specVersion": "1.4",
"metadata": {
"timestamp": "2023-10-25T12:00:00Z",
"tools": [
{
"vendor": "OWASP",
"name": "Dependency-Track"
}
]
},
"components": [
{
"type": "library",
"name": "express",
"version": "4.18.2",
"licenses": [
{
"license": {
"id": "MIT"
}
}
]
},
{
"type": "library",
"name": "react",
"version": "18.2.0",
"licenses": [
{
"license": {
"id": "MIT"
}
}
],
"vulnerabilities": [
{
"id": "CVE-2023-1234",
"severity": "medium",
"description": "Cross-site scripting (XSS) vulnerability in React DOM."
}
]
}
]
}Analyse des éléments clés
- express 4.18.2 : Framework backend sous licence MIT, sans vulnérabilité connue.
- react 18.2.0 : Bibliothèque frontend avec une vulnérabilité XSS à corriger.
Automatisation avec GitHub Actions
Pour générer ce SBOM automatiquement, vous pouvez utiliser ce workflow :
name: Generate SBOM
on: [push]
jobs:
sbom:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Generate CycloneDX SBOM
uses: CycloneDX/gh-action@v1
with:
output-format: json
output-file: bom.jsonIntégration du SBOM dans la chaîne de sécurité
Un SBOM ne sert à rien s’il reste un document statique.
1. Analyse des vulnérabilités
Connectez votre SBOM à des outils comme :
- Sonatype Nexus pour détecter les composants à risque.
- Snyk pour des corrections automatisées.
2. Conformité réglementaire
Le SBOM aide à répondre aux exigences de :
- la directive NIS2 (UE)
- la Executive Order 14028 (États-Unis)
- la norme ISO/IEC 27001
3. Gestion des licences
Des outils comme FOSSA utilisent le SBOM pour :
FAQ : Vos questions sur le SBOM
1. Un SBOM est-il obligatoire pour toutes les entreprises ?
La réglementation évolue rapidement. Actuellement, le SBOM devient obligatoire pour :
- Les fournisseurs de logiciels critiques (santé, énergie, finance)
- Les entreprises soumises à la directive NIS2
- Les contrats publics dans plusieurs pays
Même sans obligation légale, un SBOM est fortement recommandé pour améliorer votre sécurité et votre conformité.
2. Comment maintenir un SBOM à jour ?
La maintenance d’un SBOM efficace repose sur :
- Automatisation : Intégrez des outils comme OWASP Dependency-Track dans votre CI/CD
- Processus : Mettez à jour le SBOM à chaque nouvelle version ou correction
- Vérification : Auditez manuellement les composants critiques tous les trimestres
3. Quels composants doivent absolument figurer dans un SBOM ?
Votre SBOM doit impérativement inclure :
| Type de composant | Exemples | Criticité |
|---|---|---|
| Bibliothèques tierces | Log4j, OpenSSL | Élevée |
| Frameworks | Spring, .NET Core | Élevée |
| Outils de build | Webpack, Maven | Moyenne |
4. Un SBOM expose-t-il des informations sensibles sur mon code ?
Non, un SBOM bien construit ne révèle pas :
- Votre code propriétaire
- Votre architecture interne
- Vos secrets métiers
Il se limite à lister les dépendances externes et leurs métadonnées essentielles (version, licence, vulnérabilités connues).
Conclusion : Le SBOM, bien plus qu’un inventaire technique
La mise en place d’un Software Bill of Materials représente un investissement stratégique qui dépasse largement le simple recensement des composants. C’est un levier essentiel pour :
- Réduire vos risques cyber en identifiant rapidement les dépendances vulnérables
- Gagner la confiance de vos clients et partenaires
- Anticiper les réglementations comme NIS2 ou le Cyber Resilience Act
L’exemple concret et le template fournis dans