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 k8sscannt 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
- Wazuh vs. Falco: Security Monitoring und Intrusion Detection für Self-Hoster
- CrowdSec vs. Fail2ban: Modernes Intrusion Prevention im Vergleich
- Harbor vs. Gitea Container Registry: Self-Hosted Docker Registry im Vergleich