„Der Build ist durch, das Image deployed – und drei Tage später meldet euer Security-Team kritische CVEs in Production.“ Dieses Szenario kennen die meisten DevOps-Teams zu gut. Mit Trivy von Aqua Security könnt ihr Schwachstellen bereits während des Build-Prozesses aufdecken und beheben, bevor sie zum Problem werden. Nach über 15 Jahren Erfahrung in Softwarequalität, Open Source und Remote Consulting zeigen wir euch, wie ihr Trivy optimal in euren Workflow integriert.
Warum Vulnerability Scanning heute unverzichtbar ist
Container-Images sind das Fundament moderner Anwendungen – aber auch ein unterschätztes Einfallstor für Sicherheitslücken. Jedes Base-Image bringt Hunderte von Packages mit, jede Dependency kann bekannte Schwachstellen enthalten. Trivy scannt genau diese Komponenten und liefert euch eine präzise Übersicht über potenzielle Risiken.
Das Team von Never Code Alone hat in zahlreichen Consulting-Projekten erlebt, wie ein strukturiertes Vulnerability Management die Zusammenarbeit zwischen Entwicklung und Security-Teams grundlegend verbessert. Trivy ist dabei das Tool, das den Unterschied macht – schnell, präzise und direkt in eure CI/CD-Pipeline integrierbar.
Was macht Trivy besonders?
Trivy ist ein Open-Source-Scanner von Aqua Security, der weit mehr kann als klassische Image-Scanner. Mit nahezu 20.000 GitHub-Stars hat sich das Tool als Standard in der Cloud-Native-Welt etabliert. Die Stärken liegen in der Breite der Scan-Möglichkeiten: Container-Images, Filesysteme, Git-Repositories, Kubernetes-Cluster, Infrastructure-as-Code-Dateien und sogar eingebettete Secrets werden erkannt.
Die Datenbank aktualisiert sich automatisch alle sechs Stunden, was bedeutet, dass ihr immer gegen aktuelle CVE-Informationen prüft. Im Gegensatz zu vielen kommerziellen Tools benötigt Trivy keine komplexe Infrastruktur – ein simpler Binary-Download reicht für den Start.
Wie installiere ich Trivy auf meinem System?
Die Installation ist system-spezifisch, aber in jedem Fall unkompliziert. Für macOS nutzt ihr Homebrew:
brew install trivy
Für Ubuntu/Debian installiert ihr die offiziellen Packages:
sudo apt-get install wget apt-transport-https gnupg lsb-release
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | gpg --dearmor | sudo tee /usr/share/keyrings/trivy.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/trivy.list
sudo apt-get update && sudo apt-get install trivy
Als Docker-Container läuft Trivy sofort ohne lokale Installation:
docker run aquasec/trivy image nginx:latest
Praxis-Tipp aus unserem Consulting: In Build-Pipelines empfehlen wir die Container-Variante, da sie keine Abhängigkeiten auf dem Build-Agent hinterlässt und immer die neueste Version verwendet.
Welche Scan-Typen unterstützt Trivy?
Trivy ist kein Ein-Trick-Pony. Der Scanner deckt verschiedene Anwendungsfälle ab, die ihr einzeln oder kombiniert nutzen könnt. Container-Images werden mit dem image-Befehl gescannt:
trivy image your-registry/your-app:latest
Für lokale Projektverzeichnisse nutzt ihr den Filesystem-Scan:
trivy fs --scanners vuln,secret,misconfig ./
Kubernetes-Cluster analysiert ihr direkt:
trivy k8s --report summary cluster
Infrastructure-as-Code-Dateien wie Terraform oder Dockerfiles prüft ihr auf Fehlkonfigurationen:
trivy config ./terraform/
Consulting-Erfahrung: Die Kombination aus vuln, secret und misconfig Scannern liefert die vollständigste Übersicht. Nutzt sie zumindest in euren Pre-Production-Scans.
Wie integriere ich Trivy in meine CI/CD-Pipeline?
Die Pipeline-Integration ist der Punkt, an dem Trivy seinen größten Mehrwert entfaltet. Security-Checks werden automatisch bei jedem Build ausgeführt, ohne dass Entwickler manuell eingreifen müssen.
Für GitHub Actions existiert eine offizielle Action:
name: Security Scan
on: [push, pull_request]
jobs:
trivy-scan:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@0.28.0
with:
scan-type: 'fs'
ignore-unfixed: true
format: 'sarif'
output: 'trivy-results.sarif'
severity: 'CRITICAL,HIGH'
- name: Upload results to GitHub Security
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: 'trivy-results.sarif'
Für GitLab CI/CD sieht die Integration ähnlich aus:
security_scan:
stage: test
image: aquasec/trivy:latest
script:
- trivy fs --exit-code 1 --severity HIGH,CRITICAL ./
artifacts:
reports:
codequality: trivy-report.json
Pipeline-Best-Practice: Setzt --exit-code 1 zusammen mit --severity CRITICAL,HIGH, um den Build bei kritischen Schwachstellen zu stoppen. So verhindert ihr, dass unsichere Images in Production landen.
Wie reduziere ich False Positives bei Trivy-Scans?
False Positives sind der Feind jedes Security-Workflows – zu viele Fehlalarme führen zu Alert-Fatigue, und echte Probleme werden übersehen. Trivy bietet mehrere Mechanismen, um die Ergebnisse zu verfeinern.
Mit der .trivyignore-Datei könnt ihr bekannte, akzeptierte Schwachstellen ausschließen:
# .trivyignore
# CVE bereits durch andere Maßnahmen mitigiert
CVE-2021-44228
# False Positive für unsere Konfiguration
GHSA-vh95-rmgr-6w4m
Der --detection-priority-Flag steuert das Verhältnis zwischen Präzision und Vollständigkeit:
# Weniger False Positives, möglicherweise mehr False Negatives
trivy image --detection-priority precise your-image:latest
# Mehr Findings, aber auch mehr False Positives
trivy image --detection-priority comprehensive your-image:latest
Für unfixable Schwachstellen, also solche ohne verfügbaren Patch, nutzt ihr:
trivy image --ignore-unfixed your-image:latest
Pragmatischer Ansatz aus der Praxis: Startet mit precise und aktiviert nur für kritische Production-Deployments den comprehensive-Modus. So bleibt der tägliche Workflow effizient.
Wie generiere ich eine SBOM mit Trivy?
Software Bill of Materials (SBOM) sind kein Nice-to-have mehr, sondern Compliance-Anforderung in vielen Branchen. Trivy generiert SBOMs in den gängigen Standards CycloneDX und SPDX.
Für CycloneDX-Format:
trivy image --format cyclonedx --output sbom.json your-image:latest
Für SPDX-Format:
trivy image --format spdx-json --output sbom.spdx.json your-image:latest
Die SBOM kann anschließend mit Dependency-Track oder ähnlichen Tools verwaltet werden. Trivy kann auch bestehende SBOMs auf Schwachstellen scannen:
trivy sbom ./sbom.cyclonedx.json
Supply-Chain-Security-Tipp: Integriert SBOM-Generierung in eure Release-Pipeline. So habt ihr bei jedem Release eine vollständige Inventarliste eurer Dependencies.
Wie scanne ich meinen Kubernetes-Cluster mit Trivy?
Kubernetes-Sicherheit geht über einzelne Images hinaus. Trivy kann laufende Cluster analysieren und Fehlkonfigurationen, Schwachstellen und exponierte Secrets aufdecken.
Ein vollständiger Cluster-Scan mit Summary-Report:
trivy k8s --report summary cluster
Für spezifische Namespaces:
trivy k8s -n production --severity CRITICAL --report all cluster
Für kontinuierliches Scanning empfiehlt sich der Trivy Operator:
helm repo add aqua https://aquasecurity.github.io/helm-charts/
helm install trivy-operator aqua/trivy-operator
--namespace trivy-system
--create-namespace
Der Operator scannt automatisch alle sechs Stunden und speichert die Ergebnisse als Kubernetes Custom Resources, die ihr über Standard-Kubernetes-Tools wie kubectl oder Prometheus abfragen könnt.
Wie unterscheidet sich Trivy von anderen Scannern?
Im Vergleich zu Alternativen wie Grype, Snyk oder Docker Scout positioniert sich Trivy als All-in-One-Lösung. Grype von Anchore ist schneller bei reinen Vulnerability-Scans, unterstützt aber keine IaC- oder Secret-Scans. Snyk bietet mehr Remediation-Features und Fix-Vorschläge, ist aber kommerziell und erfordert einen Account.
Die Stärken von Trivy liegen in der Breite: Ein Tool für Images, Filesysteme, IaC, Secrets und Kubernetes. Das reduziert die Tool-Vielfalt in euren Pipelines und vereinfacht das Onboarding neuer Team-Mitglieder.
Entscheidungshilfe aus der Praxis: Für Teams, die ausschließlich Open Source nutzen wollen und einen breiten Scanner benötigen, ist Trivy die erste Wahl. Für Unternehmen mit Budget für kommerziellen Support und Fokus auf automatisierte Remediation kann Snyk die bessere Option sein.
Welche Ausgabeformate unterstützt Trivy?
Trivy liefert Ergebnisse in verschiedenen Formaten für unterschiedliche Anwendungsfälle. Das Default-Format table ist für Terminal-Ausgaben gedacht:
trivy image --format table nginx:latest
Für maschinelle Verarbeitung nutzt ihr JSON:
trivy image --format json --output results.json nginx:latest
SARIF-Format für GitHub Security oder andere SAST-Integrationen:
trivy image --format sarif --output results.sarif nginx:latest
Template-basierte Ausgabe für Custom-Reports:
trivy image --format template --template @contrib/html.tpl -o report.html nginx:latest
Reporting-Tipp: Nutzt SARIF für CI/CD-Integrationen mit GitHub oder Azure DevOps. Die Schwachstellen erscheinen direkt im Security-Tab eures Repositories.
Best Practices aus über 15 Jahren Consulting-Erfahrung
Bei Never Code Alone haben wir folgende Standards für Vulnerability Scanning etabliert:
Shift-Left-Security: Scannt so früh wie möglich – idealerweise bereits beim lokalen Build auf dem Entwickler-Rechner. Je später ihr Schwachstellen findet, desto teurer wird die Behebung.
Quality Gates: Definiert klare Schwellwerte für eure Pipeline. Critical und High-Severity-Schwachstellen sollten den Build blockieren, Medium-Schwachstellen als Warning erscheinen.
Kontinuierliche Updates: Base-Images und Dependencies regelmäßig aktualisieren. Ein veraltetes Alpine-Image akkumuliert schnell Dutzende bekannter Schwachstellen.
Dokumentation: Führt ein Vulnerability-Register mit akzeptierten Risiken und deren Begründung. Das erleichtert Audits und Security-Reviews.
Team-Awareness: Macht Security-Scan-Ergebnisse für alle sichtbar. Dashboards und regelmäßige Reports schaffen Bewusstsein und Ownership.
Direkte Unterstützung für euer Team
Ihr wollt Trivy optimal in euren Development-Workflow integrieren? Oder benötigt ihr Unterstützung bei der Entwicklung einer umfassenden Container-Security-Strategie? Mit über 15 Jahren Expertise in Softwarequalität und Remote Consulting helfen wir euch gerne weiter.
Kontakt: roland@nevercodealone.de
Gemeinsam implementieren wir Security-Scanning, das zu eurem Team passt – keine theoretischen Frameworks, sondern praktische Lösungen, die im Alltag funktionieren.
Fazit: Security als integraler Bestandteil
Trivy macht Vulnerability Scanning zugänglich und praktikabel. Die Kombination aus breitem Funktionsumfang, einfacher Integration und aktivem Community-Support macht es zum idealen Einstieg in Container-Security. Ob ihr einzelne Images scannt oder komplette Kubernetes-Cluster analysiert – Trivy liefert die Transparenz, die ihr für fundierte Security-Entscheidungen benötigt.
Startet heute: Installiert Trivy, scannt euer aktuelles Projekt mit trivy fs ./ und analysiert die Ergebnisse. Die Erkenntnisse, die ihr gewinnt, sind der erste Schritt zu einer sichereren Software-Supply-Chain.
Never Code Alone – Gemeinsam für bessere Software-Qualität!
