Aller au contenu principal

CBOM - Nomenclature cryptographique

S'applique à :
CycloneDX 1.7OWASPNISTPCI-DSSSOC2

Vue d'ensemble​

Le CBOM (Cryptography Bill of Materials, nomenclature cryptographique) est un format d'inventaire spécialisé pour documenter tous les actifs cryptographiques de vos applications et de votre infrastructure. Le PQC Scanner génère des documents CBOM conformes à CycloneDX 1.7 qui peuvent être :

Capacités du CBOM

Partagés avec les équipes de sécuritéFournir aux auditeurs un inventaire cryptographique standardisé
Importés dans la gestion des vulnérabilitésIntégrer avec les systèmes de gestion des vulnérabilités
Rapports de conformitéCadres NIST, PCI-DSS, SOC2
Préparation quantiqueSuivre la migration vers la préparation quantique
Pipelines CI/CDAutomatiser la génération de CBOM dans les pipelines

Explorateur CBOM​

Dans le Cockpit, l'explorateur CBOM restitue l'inventaire CycloneDX sous forme de graphe interactif d'actifs cryptographiques — vous pouvez isoler les primitives vulnérables au quantique, inspecter les identifiants d'un composant (BOM-Ref, OID, type/taille de clé, format) et voir la migration recommandée pour chaque algorithme compromis.

Explorateur CBOM — graphe interactif d'actifs cryptographiques

Remarque
Chaque composant affiche son exposition quantique (par exemple Compromis par le quantique pour ECDSA-256) et une migration recommandée, telle que « Migrate to ML-DSA (Dilithium) or SLH-DSA (SPHINCS+) per NIST FIPS 204/205 ».

Qu'est-ce que CycloneDX ?​

CycloneDX est une norme OWASP pour les nomenclatures logicielles (SBOM). La version 1.7 a introduit une prise en charge native des actifs cryptographiques, en faisant la norme de facto pour le CBOM.

Démarrage rapide​

Générer un CBOM à partir des résultats d'analyse​

# 1. Run a scan
dke-scanner-agent agent --output scan-results.json

# 2. Generate CBOM
dke-scanner-agent cbom --input scan-results.json \
--app-name "Payment API" \
--app-version "2.1.0" \
--output payment-api-cbom.json

Afficher le résumé du CBOM​

# Generate with pretty printing
dke-scanner-agent cbom -i scan.json --pretty

# Output shows:
# CBOM generated successfully!
# Input: scan.json
# Output: scan-cbom.json
# Components: 47
# Dependencies: 12

Cas d'usage​

Audit de sécurité et conformité

Générer un CBOM pour les audits de sécurité annuels et les rapports de conformité

Intégration CI/CD

Automatiser la génération de CBOM dans les pipelines de déploiement

Suivi de la préparation quantique

Suivre la progression de la migration de la cryptographie classique vers la cryptographie post-quantique

Questionnaire de sécurité fournisseur

Générer un CBOM pour les revues de sécurité clients

Référence CLI​

Syntaxe de la commande​

dke-scanner-agent cbom [OPTIONS] --input <FILE>

Arguments requis​

ArgumentDescriptionExemple
-i, --input <FILE>Fichier de résultats d'analyse (format JSON)scan-results.json

Arguments optionnels​

ArgumentCourtDescriptionPar défaut
--output <FILE>-oChemin du fichier CBOM de sortie<input>-cbom.json
--app-name <NAME>Nom de l'application pour les métadonnéesNom d'hôte issu de l'analyse
--app-version <VER>Version de l'application"1.0"
--prettyFormater la sortie JSON de façon lisiblefalse

Exemples​

Génération de base d'un CBOM​

# Minimal command (auto-generate output name)
dke-scanner-agent cbom -i scan.json

# With custom output
dke-scanner-agent cbom -i scan.json -o crypto-inventory.json

# With pretty printing
dke-scanner-agent cbom -i scan.json --pretty

Avec métadonnées d'application​

# Specify application details
dke-scanner-agent cbom \
--input scan-results.json \
--app-name "E-Commerce Platform" \
--app-version "4.2.1" \
--output ecommerce-cbom.json \
--pretty

Intégration dans un pipeline CI/CD​

# GitLab CI example
dke-scanner-agent ci --source-path . --output scan.json
dke-scanner-agent cbom \
-i scan.json \
--app-name "${CI_PROJECT_NAME}" \
--app-version "${CI_COMMIT_SHA:0:8}" \
--output "${CI_PROJECT_NAME}-cbom.json"

Structure du CBOM​

Format CycloneDX 1.7​

{
"bomFormat": "CycloneDX",
"specVersion": "1.7",
"serialNumber": "urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79",
"version": 1,
"metadata": {
"timestamp": "2025-01-29T14:30:52Z",
"component": {
"type": "application",
"name": "Payment API",
"version": "2.1.0"
}
},
"components": [
{
"type": "cryptographic-asset",
"bom-ref": "crypto-asset-1",
"name": "RSA-2048",
"version": "1.0",
"cryptoProperties": {
"assetType": "algorithm",
"algorithmProperties": {
"primitive": "asymmetric",
"parameterSetIdentifier": "2048",
"executionEnvironment": "software-plain-ram",
"implementationPlatform": "x86_64",
"certificationLevel": ["none"],
"mode": "PKCS1",
"padding": "OAEP",
"cryptoFunctions": ["encrypt", "decrypt", "sign", "verify"],
"classicalSecurityLevel": 112,
"nistQuantumSecurityLevel": 0
}
},
"properties": [
{
"name": "quantum:vulnerable",
"value": "true"
},
{
"name": "quantum:risk_score",
"value": "8.5"
}
]
}
]
}

Types d'actifs​

Le scanner génère des entrées CBOM pour ces types d'actifs cryptographiques :

Analyse du CBOM​

Extraction des données de vulnérabilité​

# Extract all quantum-vulnerable assets
jq '.components[] | select(.properties[] | select(.name == "quantum:vulnerable" and .value == "true")) | {name, type: .cryptoProperties.assetType}' crypto-bom.json

# Count assets by type
jq '.components | group_by(.cryptoProperties.assetType) | map({type: .[0].cryptoProperties.assetType, count: length})' crypto-bom.json

# Find high-risk algorithms (risk score > 7)
jq '.components[] | select(.properties[] | select(.name == "quantum:risk_score" and (.value | tonumber) > 7)) | .name' crypto-bom.json

Rapports de conformité​

# Generate NIST compliance report
jq '{
total_assets: .components | length,
quantum_vulnerable: [.components[] | select(.properties[] | select(.name == "quantum:vulnerable" and .value == "true"))] | length,
quantum_safe: [.components[] | select(.properties[] | select(.name == "quantum:vulnerable" and .value == "false"))] | length,
by_type: .components | group_by(.cryptoProperties.assetType) | map({type: .[0].cryptoProperties.assetType, count: length})
}' crypto-bom.json

Exemples d'intégration​

Différentiel CBOM et suivi des changements​

Suivre les changements dans le temps​

Bonnes pratiques​

Bonnes pratiques CBOM

Versionnez vos CBOM

Utilisez le versionnage sémantique pour le suivi

Stockez avec le code source

Conservez les CBOM à côté de votre base de code

Automatisez les analyses régulières

Planifiez une génération de CBOM hebdomadaire via cron

Incluez dans les releases

Ajoutez le CBOM aux artefacts de release

Normes et conformité​

Spécification CycloneDX 1.7​

Le PQC Scanner génère des CBOM conformes à :

  • OWASP CycloneDX 1.7 - Spécification complète
  • NIST SSDF - Secure Software Development Framework
  • Directives SBOM de la CISA - Exigences pour les infrastructures critiques
  • Executive Order 14028 - Improving the Nation's Cybersecurity

Norme des propriétés cryptographiques​

Suit les extensions cryptographiques de CycloneDX :

Sections prises en charge

Propriétés d'algorithmeSection 6.1
Propriétés de certificatSection 6.2
Propriétés du matériel cryptographique associéSection 6.3
Propriétés de protocoleSection 6.4

Dépannage​



Assistance​

Besoin d'aide avec le CBOM ?