Passer au contenu principal

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.

Vue d’ensemble

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.

Prérequis

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érification de base

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

Télécharger le SBOM SPDX

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

Analyse des données SBOM au format SPDX

Informations de base sur le SBOM

# 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

Informations de licence

# 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é

Informations de base sur l’analyse

# 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

Outils de visualisation de SBOM

Outils CLI

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

Visualisation sur le Web

Visionneuse en ligne SBOM.sh

  1. Rendez-vous sur https://sbom.sh/
  2. Chargez votre fichier sbom.json
  3. 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