Zum Hauptinhalt springen
In diesem Dokument wird beschrieben, wie Sie die kryptografischen Signaturen und Attestierungen verifizieren, die von der Image-Veröffentlichungspipeline vantage-packager erstellt werden.

Übersicht

Die vantage-packager-Pipeline erstellt mehrere Sicherheitsartefakte für jedes veröffentlichte Image:
  • Container-Image-Signatur: Kryptografische Signatur mit Cosign
  • SPDX-SBOM-Attestation: Software Bill of Materials (SBOM) im SPDX-2.3-Format
  • Schwachstellen-Scan-Attestation: Ergebnisse des Sicherheitsscans im SARIF-Format Alle Artefakte werden mit demselben privaten Schlüssel signiert und können mit dem entsprechenden öffentlichen Schlüssel verifiziert werden.

Voraussetzungen

Für die folgenden Schritte müssen diese Tools installiert sein:
  • cosign – zur Überprüfung von Signaturen und Attestierungen
  • jq – zum Parsen und Analysieren von JSON
  • curl – zum Herunterladen von Artefakten (optional)

Signaturprüfung

Einfache Überprüfung

Überprüfen Sie eine Bildsignatur mithilfe des öffentlichen Schlüssels:
# Signatur verifizieren (Transparenzprotokoll für private Registrys überspringen)
cosign verify --key cosign.key.pub --insecure-ignore-tlog \
  abyvtgonprm27.azurecr.io/vantage-installer:2.7.1

Mit deaktivierter TLS-Überprüfung

Für Registries mit selbstsignierten Zertifikaten:
cosign verify --key cosign.key.pub --insecure-ignore-tlog --allow-insecure-registry \
  abyvtgonprm27.azurecr.io/vantage-installer:2.7.1
Erwartete Ausgabe:
[{
  "critical": {
    "identity": {
      "docker-reference": "abyvtgonprm27.azurecr.io/vantage-installer"
    },
    "image": {
      "docker-manifest-digest": "sha256:a4190ad9d5289d7ad2d02d05749c10713a7aac217e8010b5e4ef15161b181c94"
    },
    "type": "cosign container image signature"
  }
}]

Überprüfung der Attestierung

SPDX-SBOM-Attestierung

Überprüfen Sie die Attestierung für die SPDX-SBOM:
# SPDX-Attestierung überprüfen
cosign verify-attestation --key cosign.key.pub --type spdx --insecure-ignore-tlog \
  abyvtgonprm27.azurecr.io/vantage-installer:2.7.1

Nachweis des Schwachstellenscans

Überprüfen Sie den Nachweis des Schwachstellenscans:
# Schwachstellenscan-Attestierung verifizieren
cosign verify-attestation --key cosign.key.pub --type vuln --insecure-ignore-tlog \
  abyvtgonprm27.azurecr.io/vantage-installer:2.7.1

Abrufen von Attestationsdaten

SPDX-SBOM herunterladen

Extrahieren Sie die SPDX-SBOM aus der Attestierung:
# SPDX-SBOM herunterladen und extrahieren
cosign download attestation --predicate-type spdx \
  abyvtgonprm27.azurecr.io/vantage-installer:2.7.1 | \
  jq -r '.payload' | base64 -d | jq -r '.predicate' > sbom.json

Schwachstellenscan herunterladen

Extrahieren Sie die Ergebnisse des Schwachstellenscans:
# Schwachstellenscan herunterladen und extrahieren
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 von SPDX-SBOM-Daten

Allgemeine SBOM-Informationen

# SBOM-Metadaten anzeigen
jq '{
  name: .name,
  spdxVersion: .spdxVersion,
  creationInfo: .creationInfo,
  packageCount: (.packages | length)
}' sbom.json

Alle Pakete auflisten

# Alle Pakete mit Versionen auflisten
jq -r '.packages[] | "\(.name) \(.versionInfo // "unknown")"' sbom.json | sort

Pakete mit bekannten Sicherheitslücken finden

# Pakete mit CPE-Kennungen auflisten (Schwachstellenreferenzen)
jq -r '.packages[] | select(.externalRefs[]?.referenceType == "cpe23Type") |
  "\(.name) \(.versionInfo // "unknown") - \(.externalRefs[0].referenceLocator)"' sbom.json

Lizenzinformationen

# Pakete mit deklarierten Lizenzen anzeigen
jq -r '.packages[] | select(.licenseDeclared != "NOASSERTION") |
  "\(.name): \(.licenseDeclared)"' sbom.json

Analyse von Schwachstellenscan-Daten

Basisinformationen zum Scan

# Scan-Metadaten anzeigen
jq '{
  version: .version,
  tool: .runs[0].tool.driver.name,
  toolVersion: .runs[0].tool.driver.version,
  resultCount: (.runs[0].results | length)
}' vuln-scan.sarif

Schwachstellen auflisten

# Alle gefundenen Schwachstellen auflisten
jq -r '.runs[0].results[] |
  "\(.ruleId) - \(.level // "unknown") - \(.message.text)"' vuln-scan.sarif

Schwachstellen mit hoher Schwere

# Nur Schwachstellen mit hohem Schweregrad anzeigen
jq -r '.runs[0].results[] | select(.level == "error") |
  "\(.ruleId): \(.message.text)"' vuln-scan.sarif

Tools zur Visualisierung von SBOMs

CLI-Tools

CycloneDX SBOM-Tool

Installieren und verwenden Sie das CycloneDX SBOM-Tool für weitergehende Analysen:
# sbom-utility installieren (falls verfügbar)
go install github.com/CycloneDX/sbom-utility@latest

# SPDX SBOM validieren
sbom-utility validate --input-file sbom.json

# Komponentenbericht erstellen
sbom-utility query --input-file sbom.json --select "name,version" --from "packages"

Benutzerdefinierte Analyse mit jq

# Erstellen einer Abhängigkeitsstrukturansicht
jq -r '.packages[] |
  select(.name != null) |
  "\(.name)@\(.versionInfo // "unknown") (\(.supplier // "unknown"))"' sbom.json |
  sort | uniq

Webbasierte Visualisierung

SBOM.sh Online-Viewer

  1. Rufen Sie https://sbom.sh/ auf
  2. Laden Sie Ihre Datei sbom.json hoch
  3. Erkunden Sie die interaktive Visualisierung der Komponenten und Abhängigkeiten

Erkennung von Artefaktverweisen

Signaturartefakte suchen

# Signatur-Artefakt-Referenz finden
cosign triangulate --type signature \
  abyvtgonprm27.azurecr.io/vantage-installer:2.7.1

Attestierungsartefakte suchen

# Attestierungsartefakt-Referenz finden
cosign triangulate --type attestation \
  abyvtgonprm27.azurecr.io/vantage-installer:2.7.1