Cyber Security Academy · Leçon

Nomenclature logicielle (SBOM)

Inventorier le contenu de vos logiciels.

Leçon 2 sur 413 étapes

Nomenclature logicielle (SBOM) est une leçon Cyber Security Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cyber Security Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cyber Security Academy comprend 4 leçons au total.

Qu'est-ce qu'une SBOM

Une nomenclature logicielle (SBOM) est un inventaire formel et lisible par une machine de chaque composant d'un logiciel : bibliothèques, versions, licences et informations sur les fournisseurs.

Tout comme une étiquette alimentaire énumère les ingrédients, une SBOM vous permet de répondre en quelques secondes à la question suivante : ce produit contient-il la version vulnérable de X ? Sans SBOM, cette réponse peut nécessiter plusieurs jours de recherche manuelle.

Pourquoi les SBOM sont importantes aujourd'hui

Lorsqu'une vulnérabilité critique est découverte, la première question opérationnelle porte sur l'exposition : lesquels de nos produits contiennent le composant concerné ?

Lors de l'incident Log4Shell, les organisations disposant de SBOM ont interrogé leur inventaire et effectué le triage en quelques heures. Celles qui n'en avaient pas ont passé des semaines à rechercher le composant dans leurs répertoires de compilation. Les autorités de réglementation et les grands acheteurs exigent de plus en plus des SBOM comme condition d'achat.

  • Analyse rapide de l'impact des vulnérabilités
  • Conformité des licences et suivi des obligations
  • Transparence de la chaîne logistique pour les clients et les auditeurs

Formats SBOM standardisés

Deux normes ouvertes dominent. Les outils peuvent généralement convertir l'une dans l'autre.

  • SPDX — une norme de la Linux Foundation, particulièrement adaptée aux licences et largement acceptée par les autorités de réglementation
  • CycloneDX — une norme de l'OWASP, axée sur la sécurité, qui prend en charge les données sur les vulnérabilités et les relations entre dépendances

Évitez d'inventer votre propre format ; les utilisateurs et les outils d'analyse s'attendent à trouver ceux-ci.

Contenu d'une entrée

Chaque entrée de composant doit contenir suffisamment d'informations d'identité pour être comparée aux flux de vulnérabilités. Les champs essentiels sont les suivants :

  • nom et version — exacts, et non une plage
  • PURL (adresse de paquet) — un identifiant universel tel que pkg:npm/lodash@4.17.21
  • hachage — pour vérifier l'intégrité
  • licence — identifiant de licence SPDX
  • fournisseur — celui qui l'a produit
# A PURL uniquely identifies a component across ecosystems
pkg:npm/lodash@4.17.21
pkg:pypi/requests@2.31.0
pkg:golang/github.com/gin-gonic/gin@v1.9.1

Générer une SBOM

Générez automatiquement les SBOM à partir du code source ou d'un artefact compilé. Syft est un générateur courant compatible avec plusieurs écosystèmes, qui produit les deux formats standard.

# from a project directory (CycloneDX JSON)
syft dir:. -o cyclonedx-json=sbom.cdx.json

# from a container image (SPDX JSON)
syft my-app:1.4.0 -o spdx-json=sbom.spdx.json

# CycloneDX has native generators per ecosystem too
cyclonedx-npm --output-file sbom.json

SBOM du code source, de la compilation et de l'exécution

Une SBOM générée à différentes étapes décrit des réalités différentes.

  • SBOM du code source — ce que déclare le manifeste ; peut omettre le code regroupé ou intégré localement
  • SBOM de compilation — ce que la compilation a réellement récupéré ; la plus précise pour une version livrée
  • SBOM d'exécution / déployée — ce qui est réellement présent dans l'image exécutée, y compris les paquets de l'OS

Pour garantir la sécurité de la chaîne logistique, générez-la au moment de la compilation à partir de l'artefact réel et analysez également le conteneur final pour détecter les paquets de l'OS.

Analyser une SBOM à la recherche de vulnérabilités

Une SBOM devient particulièrement utile lorsqu'elle est fournie à un outil de mise en correspondance qui relie les composants aux CVE connues. Cela dissocie la génération de l'analyse : vous pouvez analyser une ancienne SBOM le jour où une nouvelle CVE est publiée.

# match an SBOM against vulnerability databases
grype sbom:sbom.cdx.json

# OSV scanner consumes SBOMs directly
osv-scanner --sbom=sbom.spdx.json

# fail CI above a severity threshold
grype sbom:sbom.cdx.json --fail-on high

VEX : indiquer ce qui est exploitable

Une SBOM peut révéler un composant vulnérable qui n'est pas réellement exploitable dans votre produit (la fonction vulnérable n'est jamais appelée). Un document VEX (eXchange sur l'exploitabilité des vulnérabilités) consigne cette évaluation.

VEX réduit le bruit : au lieu de voir chaque client paniquer à cause d'une CVE répertoriée, vous publiez une déclaration de not_affected avec sa justification, ou de affected avec les mesures correctives. Cela transforme un inventaire brut en analyse exploitable.

Distribuer et signer les SBOM

Une SBOM n'est digne de confiance que si elle est authentique et liée à l'artefact exact qu'elle décrit. Signez-la et joignez-la comme attestation plutôt que de la conserver dans un fichier isolé.

# attach a signed SBOM attestation to an image with cosign
cosign attest --predicate sbom.cdx.json \
  --type cyclonedx \
  my-registry/my-app:1.4.0

# verify the attached SBOM attestation
cosign verify-attestation --type cyclonedx my-registry/my-app:1.4.0

Automatiser les SBOM dans l'intégration continue

Les SBOM générées manuellement deviennent immédiatement obsolètes. Intégrez la génération à la chaîne de traitement afin que chaque version en produise et en stocke une comme artefact de compilation, idéalement signée et analysée dans la même tâche.

  • Générez-la à partir de l'artefact compilé, et pas seulement du dépôt
  • Stockez les SBOM dans un registre interrogeable, indexé par version
  • Réanalysez régulièrement les SBOM stockées en les comparant aux flux de CVE actualisés
  • Conditionnez les mises en production au résultat de l'analyse des vulnérabilités

Pièges courants des SBOM

Les SBOM échouent discrètement lorsqu'elles sont traitées comme une simple case à cocher.

  • Obsolète — générée une fois et jamais régénérée
  • Incomplète — omet les paquets de l'OS ainsi que le code lié statiquement ou intégré localement
  • Non vérifiée — aucun hachage ne la relie à l'artefact déployé
  • Inutilisée — produite, mais jamais analysée ni interrogée

Le but est d'obtenir une SBOM exacte, régénérée, signée et analysée en continu, et non un simple fichier JSON ponctuel.

Vérification rapide : objectif d'une SBOM

Appliquez ce que vous avez appris à un scénario d'incident.

Récapitulatif : SBOM

Vous pouvez désormais inventorier le contenu de votre logiciel et agir en conséquence.

  • Une SBOM est une liste lisible par une machine de chaque composant, au format SPDX ou CycloneDX
  • Identifiez les composants par leur PURL, leur version, leur hachage et leur licence
  • Générez-la au moment de la compilation, puis fournissez-la à un outil de mise en correspondance (grype, osv-scanner) pour rechercher les CVE
  • Utilisez VEX pour déclarer l'exploitabilité réelle et réduire les fausses alertes
  • Signez et automatisez le processus dans l'intégration continue ; réanalysez les SBOM stockées en les comparant aux nouveaux flux

Ensuite : prouver l'origine des artefacts grâce à la signature.

Gratuit pour commencer

Apprends Cyber Security Academy avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
76
Leçons
303

Questions Fréquemment Posées

La leçon « Nomenclature logicielle (SBOM) » est-elle gratuite ?

Oui — le texte complet de « Nomenclature logicielle (SBOM) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cyber Security Academy, passe à CoddyKit PRO. Le cours Cyber Security Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Nomenclature logicielle (SBOM) » ?

Inventorier le contenu de vos logiciels. Tu pratiques Cyber Security Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Cyber Security Academy ?

Aucune expérience préalable n'est requise. Cyber Security Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Nomenclature logicielle (SBOM) » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Cyber Security Academy ?

Oui. Chaque leçon Cyber Security Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Menaces liées à la chaîne d’approvisionnement
  2. Nomenclature logicielle (SBOM)
  3. Signature des dépendances et des artefacts
  4. Sécuriser les pipelines CI/CD
← Retour à Cyber Security Academy