Was ist Container-Image Vulnerability Scanning?

In modernen Kubernetes- und Docker-Setups sind Container-Images die zentrale Auslieferungseinheit für Applikationen. Jedes Image enthält ein Basis-Betriebssystem, Laufzeitbibliotheken und Anwendungs-Abhängigkeiten – und jede dieser Schichten kann bekannte Sicherheitslücken (CVEs) enthalten. Container-Image-Scanning ist ein unverzichtbarer Bestandteil jeder DevSecOps-Pipeline.

Die zwei meistgenutzten Open-Source-Tools für diesen Zweck sind Trivy (von Aqua Security) und Grype (von Anchore). Beide scannen Container-Images auf bekannte CVEs – unterscheiden sich aber erheblich in Umfang, Geschwindigkeit und Integration.

Trivy: Der Allrounder im Container-Security-Bereich

Trivy wurde von Aqua Security entwickelt und ist heute eines der beliebtesten Security-Scanning-Tools im Cloud-Native-Bereich. Der Erfolg liegt in seinem breiten Scope: Trivy scannt nicht nur Container-Images, sondern auch Dateisysteme, Git-Repositories, Infrastructure-as-Code und Kubernetes-Cluster-Konfigurationen.

Stärken von Trivy:

  • Breite Scan-Fähigkeiten: OS-Pakete (apt, yum), Sprachbibliotheken (npm, pip, go, maven, cargo), IaC-Dateien (Terraform, Kubernetes YAML), Secrets und Misconfigurations
  • Kubernetes-native: trivy k8s scannt alle Images und Configs in einem Kubernetes-Cluster in einem einzigen Befehl
  • Schnelle CVE-Updates: Datenbank wird täglich aktualisiert, lokale Kopie wird automatisch gecacht
  • Ausgabeformate: JSON, SARIF, CycloneDX (SBOM), HTML – ideal für CI/CD-Integration
  • Breiter OS-Support: Alpine, Debian, Ubuntu, RHEL, CentOS, Amazon Linux, Oracle Linux und viele mehr
  • Offline-Modus: Trivy arbeitet mit vorher heruntergeladener Datenbank ohne Internet-Zugang
  • Trivy Operator: Kubernetes-Operator für automatisches, kontinuierliches Image-Scanning

Schwächen von Trivy:

  • Falsch-Positiv-Rate: Bei Legacy-Images gelegentlich hohe CVE-Anzahl, die in der Praxis nicht ausnutzbar ist
  • Datenbank-Größe: Die Datenbank ist mehrere GB groß – erster Download dauert

Trivy-Scan-Beispiele:

trivy image nginx:latest
trivy image --severity HIGH,CRITICAL nginx:latest
trivy image --format sarif -o report.sarif nginx:latest
trivy k8s --report all

Grype: Fokussiert und präzise

Grype stammt von Anchore und zeichnet sich durch hohe Präzision aus. Im Vergleich zu Trivy ist Grype fokussierter: Es scannt Container-Images und Dateisysteme auf Schwachstellen, ohne den breiteren Scope für IaC oder Secrets. Das macht es schlanker und für viele CI/CD-Pipelines besser geeignet.

Stärken von Grype:

  • Niedrige Falsch-Positiv-Rate: Grype nutzt Anchores eigene Vulnerability-Datenbank und liefert präzise Ergebnisse
  • SBOM-Kompatibilität: Direktes Scannen von SBOMs, die mit Syft (Anchores SBOM-Generator) erstellt wurden
  • Schnelles Startup: Kleinere Datenbank (~350 MB), schnellerer Download und erster Scan
  • CycloneDX und SPDX: Erstklassige Unterstützung für beide SBOM-Standards
  • CI/CD-freundlich: Konfigurierbare Exit-Codes, einfache Integration in GitHub Actions und GitLab CI

Schwächen von Grype:

  • Kein IaC-Scanning: Nur Images und Dateisysteme, keine Terraform- oder Kubernetes-YAML-Dateien
  • Kein Secret-Scanning: Keine Funktion zum Erkennen von Secrets in Images
  • Kein K8s-Cluster-Scan: Kein nativer grype k8s-Befehl wie bei Trivy

Grype-Scan-Beispiele:

grype nginx:latest
grype --fail-on high nginx:latest
grype -o json nginx:latest
# SBOM-Workflow mit Syft
syft nginx:latest -o cyclonedx-json > sbom.json && grype sbom:sbom.json

Direkter Vergleich: Trivy vs. Grype

Kriterium Trivy Grype
Container-Image-Scan
IaC-Scanning ✓ (Terraform, K8s YAML)
Secret-Scanning
K8s-Cluster-Scan
SBOM-Generierung ✓ (via --format cyclonedx) via Syft + grype
Falsch-Positiv-Rate Mittel Niedrig
DB-Download-Größe ~5 GB ~350 MB
Startup-Zeit (erster Run) Langsamer Schneller
Sprachunterstützung 20+ Ökosysteme 15+ Ökosysteme
Kubernetes-Operator Trivy Operator ✓
SARIF-Output

CI/CD-Integration im Vergleich

Beide Tools haben offizielle GitHub Actions:

Trivy in GitHub Actions:

- name: Run Trivy
  uses: aquasecurity/trivy-action@master
  with:
    image-ref: 'myapp:latest'
    format: 'sarif'
    exit-code: '1'
    severity: 'CRITICAL,HIGH'
    output: 'trivy-results.sarif'
- name: Upload Results
  uses: github/codeql-action/upload-sarif@v2
  with:
    sarif_file: 'trivy-results.sarif'

Grype in GitHub Actions:

- name: Grype Scan
  uses: anchore/scan-action@v3
  with:
    image: "myapp:latest"
    fail-build: true
    severity-cutoff: high
    output-format: sarif
    output-file: grype-results.sarif

Beide Workflows lassen sich mit GitHub Code Scanning verbinden und zeigen Sicherheitsprobleme direkt im Pull Request an.

Trivy Operator: Kontinuierliches Scanning in Kubernetes

Der Trivy Operator ist Trivys stärkstes Differenzierungsmerkmal gegenüber Grype: Ein Kubernetes-Operator, der als Controller im Cluster läuft und automatisch alle Images scannt, sobald neue Pods deployt werden. Ergebnisse werden als Custom Resources im Cluster gespeichert.

helm repo add aquasecurity https://aquasecurity.github.io/helm-charts/
helm install trivy-operator aquasecurity/trivy-operator   --namespace trivy-system   --create-namespace   --set trivy.ignoreUnfixed=true

Nach der Installation erstellt der Operator automatisch VulnerabilityReport- und ConfigAuditReport-Ressourcen, die mit kubectl oder einem Grafana-Dashboard ausgewertet werden können. Grype hat keine vergleichbare K8s-Operator-Integration.

Syft: Der ideale Companion für Grype

Wer Grype einsetzt, nutzt oft Syft als SBOM-Generator. Syft erstellt ein vollständiges Software Bill of Materials aus einem Container-Image oder einem Dateisystem, das Grype dann auf Schwachstellen prüft.

syft nginx:latest -o spdx-json > nginx-sbom.spdx.json
grype sbom:nginx-sbom.spdx.json

Dieser Workflow ist besonders nützlich für Compliance-Anforderungen (z.B. Executive Order on Cybersecurity in den USA), die eine SBOM-Attestierung erfordern. Trivy kann SBOMs ebenfalls erstellen – die Syft+Grype-Kombination gilt aber als die präzisere Variante.

Wann welches Tool wählen?

Trivy wählen wenn:

  • Du eine All-in-One-Security-Lösung für Images, IaC, Secrets und K8s-Configs willst
  • Du den Trivy Operator für kontinuierliches K8s-Scanning einsetzen willst
  • Du breite OS- und Sprachabdeckung in einer einzigen Konfiguration benötigst
  • Dein Team ein DevSecOps-Tool für alle Scanning-Dimensionen bevorzugt

Grype wählen wenn:

  • Du schnelle, präzise Image-Scans mit niedriger Falsch-Positiv-Rate benötigst
  • Du bereits Syft für SBOM-Generierung nutzt und eine enge Integration willst
  • Pipeline-Geschwindigkeit kritisch ist (kleinere DB, schnellerer Start)
  • Du separate spezialisierte Tools für IaC- und Secret-Scanning bevorzugst

Fazit

Trivy und Grype sind beide erstklassige Open-Source-Security-Scanner. Trivy ist die erste Wahl für Kubernetes-Umgebungen, die einen umfassenden Security-Scan über Images, IaC und Cluster-Konfiguration hinweg benötigen – besonders durch den Trivy Operator. Grype überzeugt durch Präzision, Schnelligkeit und nahtlose SBOM-Workflows mit Syft – ideal für Teams mit bereits ausgereiften DevSecOps-Prozessen.

Für die meisten Self-Hosting- und Kubernetes-Setups empfehle ich Trivy als ersten Einstieg: Ein Tool, das alles kann. Wer dann Präzision über Vollständigkeit stellt, wechselt gezielt für den Image-Scan auf Grype+Syft.

Weiterführende Artikel

Verwandte Technologien im Techradar