Documentation Index
Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
Use this file to discover all available pages before exploring further.
Ce document décrit comment vérifier les signatures cryptographiques et les attestations créées par le pipeline de publication d’images vantage-packager.
Le pipeline « vantage-packager » génère plusieurs artefacts de sécurité pour chaque image publiée :
- Signature d’image de conteneur : signature cryptographique à l’aide de Cosign
- Attestation SPDX SBOM : liste des composants logiciels (Software Bill of Materials) au format SPDX 2.3
- Attestation d’analyse des vulnérabilités : résultats d’analyse de sécurité au format SARIF
Tous les artefacts sont signés avec la même clé privée et peuvent être vérifiés à l’aide de la clé publique correspondante.
Les outils suivants doivent être installés :
cosign - pour la vérification des signatures et des attestations
jq - pour l’analyse et le traitement de JSON
curl - pour le téléchargement des artefacts (facultatif)
Vérification de la signature
Vérifiez la signature d’une image à l’aide de la clé publique :
# Vérifier la signature (ignorer le journal de transparence pour les registres privés)
cosign verify --key cosign.key.pub --insecure-ignore-tlog \
abyvtgonprm27.azurecr.io/vantage-installer:2.7.1
Avec la vérification TLS désactivée
Pour les registres utilisant des certificats auto-signés :
cosign verify --key cosign.key.pub --insecure-ignore-tlog --allow-insecure-registry \
abyvtgonprm27.azurecr.io/vantage-installer:2.7.1
Résultat attendu :
[{
"critical": {
"identity": {
"docker-reference": "abyvtgonprm27.azurecr.io/vantage-installer"
},
"image": {
"docker-manifest-digest": "sha256:a4190ad9d5289d7ad2d02d05749c10713a7aac217e8010b5e4ef15161b181c94"
},
"type": "cosign container image signature"
}
}]
Vérification de l’attestation
Attestation de la SBOM SPDX
Vérifiez l’attestation de la nomenclature logicielle SPDX (SBOM) :
# Vérifier l'attestation SPDX
cosign verify-attestation --key cosign.key.pub --type spdx --insecure-ignore-tlog \
abyvtgonprm27.azurecr.io/vantage-installer:2.7.1
Attestation d’analyse de vulnérabilités
Vérifiez l’attestation d’analyse de vulnérabilités :
# Vérifier l'attestation d'analyse de vulnérabilité
cosign verify-attestation --key cosign.key.pub --type vuln --insecure-ignore-tlog \
abyvtgonprm27.azurecr.io/vantage-installer:2.7.1
Récupération des données d’attestation
Extrayez le SBOM SPDX à partir de l’attestation :
# Télécharger et extraire le SBOM SPDX
cosign download attestation --predicate-type spdx \
abyvtgonprm27.azurecr.io/vantage-installer:2.7.1 | \
jq -r '.payload' | base64 -d | jq -r '.predicate' > sbom.json
Télécharger l’analyse de vulnérabilité
Extrayez les résultats de l’analyse de vulnérabilité :
# Télécharger et extraire l'analyse des vulnérabilités
cosign download attestation --predicate-type vuln \
abyvtgonprm27.azurecr.io/vantage-installer:2.7.1 | \
jq -r '.payload' | base64 -d | jq -r '.predicate' > vuln-scan.sarif
# Afficher les métadonnées SBOM
jq '{
name: .name,
spdxVersion: .spdxVersion,
creationInfo: .creationInfo,
packageCount: (.packages | length)
}' sbom.json
Répertorier tous les packages
# Lister tous les packages avec leurs versions
jq -r '.packages[] | "\(.name) \(.versionInfo // "unknown")"' sbom.json | sort
Rechercher les packages présentant des vulnérabilités connues
# Lister les packages avec des identifiants CPE (références de vulnérabilité)
jq -r '.packages[] | select(.externalRefs[]?.referenceType == "cpe23Type") |
"\(.name) \(.versionInfo // "unknown") - \(.externalRefs[0].referenceLocator)"' sbom.json
# Afficher les packages avec licences déclarées
jq -r '.packages[] | select(.licenseDeclared != "NOASSERTION") |
"\(.name): \(.licenseDeclared)"' sbom.json
Analyse des données issues des analyses de vulnérabilité
# Afficher les métadonnées de l'analyse
jq '{
version: .version,
tool: .runs[0].tool.driver.name,
toolVersion: .runs[0].tool.driver.version,
resultCount: (.runs[0].results | length)
}' vuln-scan.sarif
Répertorier les vulnérabilités
# Lister toutes les vulnérabilités détectées
jq -r '.runs[0].results[] |
"\(.ruleId) - \(.level // "unknown") - \(.message.text)"' vuln-scan.sarif
Vulnérabilités de gravité élevée
# Afficher uniquement les vulnérabilités de gravité élevée
jq -r '.runs[0].results[] | select(.level == "error") |
"\(.ruleId): \(.message.text)"' vuln-scan.sarif
Utilitaire CycloneDX SBOM
Installez et utilisez l’utilitaire CycloneDX SBOM pour effectuer des analyses avancées :
# Installer sbom-utility (si disponible)
go install github.com/CycloneDX/sbom-utility@latest
# Valider le SBOM SPDX
sbom-utility validate --input-file sbom.json
# Générer le rapport des composants
sbom-utility query --input-file sbom.json --select "name,version" --from "packages"
Analyse personnalisée à l’aide de jq
# Créer une vue arborescente des dépendances
jq -r '.packages[] |
select(.name != null) |
"\(.name)@\(.versionInfo // "unknown") (\(.supplier // "unknown"))"' sbom.json |
sort | uniq
Visionneuse en ligne SBOM.sh
- Rendez-vous sur https://sbom.sh/
- Chargez votre fichier
sbom.json
- Explorez la visualisation interactive des composants et des dépendances
Découverte des références d’artefacts
Rechercher les artefacts de signature
# Rechercher la référence de l'artefact de signature
cosign triangulate --type signature \
abyvtgonprm27.azurecr.io/vantage-installer:2.7.1
Rechercher les artefacts d’attestation
# Trouver la référence de l'artefact d'attestation
cosign triangulate --type attestation \
abyvtgonprm27.azurecr.io/vantage-installer:2.7.1