Alle Artikel
Trivy und Trivy-Operator: vom Scan bis zum Monitoring
Ein Praxisleitfaden zum Schwachstellenmanagement in Kubernetes mit Trivy und Trivy-Operator – von Image- und Konfigurations-Scans bis hin zum Monitoring mit Prometheus und Grafana.
·
Ali Sina Bayat

Hinweis: Dieser Beitrag wurde aus dem Englischen übersetzt. Fachbegriffe, Code und Befehle wurden bewusst im Original belassen.
Einführung
Containerisierte Umgebungen und Kubernetes-Cluster haben Anwendungsentwicklung und -bereitstellung verändert. Zugleich bringen sie neue Sicherheitsherausforderungen mit sich. Genau hier kommen Werkzeuge wie Trivy und sein Begleiter, der Trivy-Operator, ins Spiel, die Schwachstellen-Scans und Compliance-Durchsetzung wirksam übernehmen. Das hilft Teams, Sicherheit zu wahren, ohne die Entwicklungsabläufe auszubremsen.
Trivy ist ein cloud-nativer Security-Scanner, mit dem sich Sicherheitslücken im eigenen Kubernetes-Cluster aufspüren lassen. Dieser Ansatz erlaubt es, statische Ressourcen bereits vor dem Deployment zu analysieren. Um bestehende Ressourcen im Cluster jedoch fortlaufend zu prüfen, bietet der Trivy-Operator die bessere Lösung zur Automatisierung der Scans.
Dieser Leitfaden zeigt Schritt für Schritt, wie Sie den Trivy-Operator installieren und konfigurieren, automatisierte Scans einrichten und die Fähigkeiten von Trivy und Trivy-Operator einordnen.
Einen Kubernetes-Cluster aufsetzen
Bevor wir zum Trivy-Operator kommen, benötigen Sie einen Kubernetes-Cluster. Für diesen Leitfaden nutzen wir Minikube – ein Werkzeug, mit dem sich Kubernetes lokal betreiben lässt. Wenn Sie einen anderen Cluster verwenden möchten, passen Sie die Schritte einfach an Umgebungen wie kind oder gemanagte Dienste wie EKS, AKS oder GKE an.
Minikube installieren
Folgen Sie zunächst der offiziellen Minikube-Installationsanleitung für Ihre Plattform (Linux/macOS/Windows). Stellen Sie sicher, dass Sie zudem Helm – den Paketmanager für Kubernetes – installiert und das Kommandozeilenwerkzeug kubectl für Ihren Cluster konfiguriert haben.
Minikube starten
Ihren Minikube-Cluster starten Sie mit einem einfachen Befehl:
Wenn Sie einen bestimmten Treiber verwenden (etwa VirtualBox oder Docker), passen Sie den Befehl entsprechend an:
Was ist der Trivy-Operator
Der Trivy-Operator ist ein Kubernetes-Operator, der Trivy nutzt, um Schwachstellen-Scans und Konfigurationsprüfungen von Kubernetes-Workloads zu automatisieren. Er folgt bewährten Praktiken, um Sicherheitsprobleme fortlaufend zu überwachen und zu adressieren. Der Trivy-Operator fasst die Scan-Ergebnisse zusammen und erzeugt Sicherheitsberichte, die sich über die Kubernetes-API abrufen lassen.
Den Trivy-Operator installieren
Der Trivy-Operator lässt sich als Kubernetes-Manifest über kubectl oder per Helm-Chart installieren. In diesem Leitfaden nutzen wir Helm:
1. Das Helm-Repository von Aqua Security hinzufügen:
2. Alle Registries aktualisieren:
3. Den Trivy-Operator installieren:
Der Helm-Befehl legt einen eigenen Namespace namens „trivy-system” an und installiert den Trivy-Operator aus dem Repository von Aqua Security. Über die Datei values.yaml lässt sich der Operator anpassen. Die folgende Konfiguration sorgt beispielsweise dafür, dass Trivy nur Schwachstellen meldet, für die bereits ein Fix vorliegt:
Die Werte lassen sich auch anders anpassen, etwa indem Sie das entsprechende Flag direkt im Helm-Befehl setzen:
Nach der Installation prüfen Sie diese mit folgendem Befehl, der alle vom Trivy-Operator erzeugten Ressourcen auflistet:
Automatisierte Schwachstellen-Scans
Um Schwachstellen-Scans in laufenden Containern zu automatisieren, muss der Trivy-Operator neue Deployments beobachten und entsprechend scannen. Legen wir dazu imperativ ein verwundbares nginx-Deployment an und beobachten den automatischen Scan-Vorgang.
1. Einen Namespace anlegen
2. Nginx ausrollen:
Der Trivy-Operator scannt das Deployment nach dessen Erstellung automatisch und erzeugt Berichte wie VulnerabilityReport und ConfigAuditReport.
3. Die Berichte einsehen
Die Berichte werden je Container erstellt. Da wir nur einen Container haben, entstehen die Berichte für diesen einen. Jeder Bericht liefert detaillierte Einblicke in Schwachstellen, Fehlkonfigurationen oder andere Probleme der ausgerollten Ressourcen.
Trivy-Operator-Metriken in Grafana visualisieren
In diesem Teil richten wir den Trivy-Operator so ein, dass er Metriken an Prometheus weiterleitet, und betrachten diese anschließend in Grafana.
Prometheus und Grafana installieren
Am einfachsten installieren Sie Prometheus und Grafana über das Helm-Chart kube-prometheus-stack.
1. Einen Namespace anlegen:
Legen Sie zunächst einen Namespace an, in dem wir die Prometheus- und Grafana-Ressourcen installieren.
2. Das Helm-Chart-Repository hinzufügen und aktualisieren:
3. Prometheus für die Erkennung von ServiceMonitors anpassen:
Die Prometheus-Installation benötigt eine kleine Anpassung, damit sie ServiceMonitors standardmäßig erkennt. Damit sucht Prometheus in allen Namespaces nach sämtlichen ServiceMonitors, ohne bestimmte Labels vorauszusetzen. Dafür erstellen wir eine values.yaml mit folgender Konfiguration:
4. Prometheus und Grafana installieren
Installieren Sie den kube-prometheus-stack mit der angepassten Wertedatei:
5. Den Trivy-Operator für die Metrikbereitstellung konfigurieren
Nach der Installation des Prometheus-Stacks müssen wir die values.yaml des Trivy-Operators anpassen, um dessen ServiceMonitor zu aktivieren. Der ServiceMonitor ist nötig, damit Prometheus den Service von Trivy erkennt und dessen Metriken scrapen kann. Zudem stellen wir sicher, dass der Service eine ClusterIP besitzt (und nicht headless ist):
6. Den Trivy-Operator mit den aktualisierten Werten upgraden:
Als Nächstes führen wir das Upgrade des Trivy-Operators mit den aktualisierten Werten durch:
7. Auf die Dashboards von Prometheus und Grafana zugreifen
Für den lokalen Zugriff auf das Prometheus-Dashboard richten wir Port-Forwarding ein:
Prometheus ist nun erreichbar unter: http://localhost:9090
Öffnen Sie ein neues Terminalfenster und starten Sie das Port-Forwarding für Grafana:
Grafana ist dann erreichbar unter: http://localhost:3000
Metriken in Grafana aufrufen und erkunden
Nachdem alles eingerichtet ist, prüfen wir, ob Prometheus die Metriken erfasst, und visualisieren sie in Grafana.
Das Prometheus-Dashboard aufrufen
Öffnen Sie einen Browser und rufen Sie http://localhost:9090 auf. Suchen Sie in der Prometheus-Oberfläche im Ausdrucksfeld nach „Trivy”, um zu prüfen, ob die Metriken des Trivy-Operators erfasst werden. Wenn alles funktioniert, sollten Metriken zu Sicherheitslücken erscheinen.

Ein Dashboard für Trivy-Operator-Metriken erstellen
Nun bauen wir ein Grafana-Dashboard, um die Metriken des Trivy-Operators zu visualisieren.
Öffnen Sie einen neuen Browser-Tab und rufen Sie http://localhost:3000 auf. Die Standardzugangsdaten lauten:
Benutzername: admin
Passwort: prom-operator (oder ermitteln Sie das Passwort mit
kubectl get secret -n monitoring prom-grafana -o jsonpath="{.data.admin-password}" | base64 --decode)
Ein neues Panel hinzufügen
Gehen Sie in Grafana zu Dashboards > New Dashboard.
Klicken Sie auf „Add visualization”
Wählen Sie Prometheus als Datenquelle.
Verwenden Sie im Query-Editor die folgenden Abfragen für aussagekräftige Einblicke.
Gesamtzahl der Schwachstellen
Gesamtzahl der Fehlkonfigurationen
Vom Trivy-Operator gefundene offengelegte Secrets
Namespaces mit den meisten Schwachstellen

Aufräumen (optional)
Sobald Sie die Metriken betrachtet haben und die ausgerollten Ressourcen nicht mehr benötigen, können Sie sie entfernen.
Beim Löschen der Deployments werden die zugehörigen Berichte automatisch vom Garbage-Collection-Controller von Kubernetes entfernt.
Die Scan-Fähigkeiten von Trivy
Trivy bietet vielfältige Scan-Fähigkeiten:
Container-Images
Trivy scannt Docker- und OCI-Images. Es analysiert die Dateien innerhalb der Container-Images sowie deren Metadaten und prüft sie auf Schwachstellen, Fehlkonfigurationen, Secrets und Lizenzen. Standardmäßig führt Trivy Schwachstellen- und Secret-Scans durch. Über Image-Name und Image-Tag analysiert Trivy das Image und erkennt bekannte Schwachstellen anhand einer Datenbank mit Schwachstelleninformationen. Diese Datenbank wird alle sechs Stunden auf GitHub gebaut und über die GitHub Container Registry (GHCR) verteilt.
Sie können Trivy so konfigurieren, dass es sich ausschließlich auf einen bestimmten Problemtyp konzentriert – Schwachstellen, Fehlkonfigurationen, Secrets oder Lizenzen. Nutzen Sie dazu das Flag --scanner:
Container-Images enthalten Metadaten. Trivy kann diese auf Fehlkonfigurationen oder Secrets prüfen. Diese Scans sind standardmäßig deaktiviert, lassen sich aber über das Flag --image-config-scanners aktivieren:
Trivy unterstützt Image-Scans aus verschiedenen Quellen. Standardmäßig sucht es das angegebene Image zuerst in der lokalen Docker Engine, dann in Containerd, Podman und schließlich in der Container-Registry. Dieses Standardverhalten lässt sich anpassen:
Dateisystem
Trivy analysiert lokale Dateisysteme, um verschiedene Sicherheitsprobleme aufzuspüren. Standardmäßig führt es Schwachstellen- und Secret-Scans durch, kann aber auch Fehlkonfigurationen und Lizenzprobleme erkennen.
Um ein lokales Verzeichnis zu scannen, führen Sie folgenden Befehl aus:
Trivy kann auch einzelne Dateien auf Schwachstellen prüfen:
Trivy unterstützt weitere Scanner-Typen, die sich über das Flag --scanner aktivieren lassen – etwa das Scannen auf Fehlkonfigurationen:
Code-Repositories
Trivy kann lokale und entfernte Code-Repositories auf Sicherheitsprobleme prüfen. Standardmäßig analysiert es sie auf Schwachstellen und Secrets.
Ein lokales Repository scannen Sie beispielsweise so:
Für ein entferntes Repository geben Sie dessen URL an:
Trivy kann außerdem Kubernetes-Manifeste auf Fehlkonfigurationen und unsichere Richtlinien prüfen sowie private Repositories, bestimmte Branches, Commits oder Tags analysieren. Um einen bestimmten Teil eines Repositories zu scannen, nutzen Sie die Parameter --branch, --commit oder --tag.
Funktionen, Sicherheit und Compliance-Zuordnung
Der Trivy-Operator baut auf den Kernfähigkeiten von Trivy auf und ermöglicht automatisierte Sicherheits- und Compliance-Scans innerhalb eines Kubernetes-Clusters. Er erkennt Änderungen selbstständig und erzeugt je nach Workload und Cluster-Komponenten unterschiedliche Berichte.
Berichte zu Sicherheit & Infrastruktur:
Vulnerability Report: Automatisierte Schwachstellen-Scans zur Erkennung von Problemen in Workloads.
Configuration Audit Report: Automatisierte Konfigurationsprüfungen zur Erkennung von Fehlkonfigurationen oder Verstößen gegen eigene Regeln.
Exposed Secret Report: Automatisierter Secret-Scan, um im Cluster offengelegte sensible Daten zu finden und zu melden.
RBAC Assessment Report: RBAC-Scan zur Bewertung und Darstellung der Berechtigungen installierter Ressourcen.
Core Infrastructure Assessment Report: Analysiert und prüft zentrale Kubernetes-Komponenten (etcd, API-Server, Scheduler, Controller Manager usw.).
Compliance-Berichte:
Trivy und der Trivy-Operator unterstützen auch automatisierte Compliance-Scans, damit Organisationen Branchenstandards erfüllen. Standardmäßig führt der Trivy-Operator alle sechs Stunden Compliance-Scans durch; dieses Verhalten lässt sich anpassen. Folgende Berichte stehen out of the box bereit:
NSA & CISA Kubernetes Hardening Guidance: Liefert Empfehlungen zur Cybersicherheit samt Bericht.
CIS Kubernetes Benchmark: Stellt sicher, dass die Cluster-Konfiguration den Sicherheits-Best-Practices entspricht.
Kubernetes Pod Security Standards: Prüft Workloads gegen die Restricted Policy.
Typische Fallstricke beim Container-Security-Scanning vermeiden
Image-Scanning mit Trivy einzurichten, ist ein wichtiger erster Schritt zur Absicherung Ihrer Kubernetes-Workloads. Doch selbst mit automatisierten Scans laufen Teams häufig in typische Fallstricke, die die Wirksamkeit ihrer Sicherheitsmaßnahmen mindern. Hier einige davon – und wie Sie sie vermeiden:
Probleme geringer und mittlerer Schwere ignorieren
Sich nur auf kritische Schwachstellen zu konzentrieren und niedrige sowie mittlere Schweregrade zu ignorieren, kann böse enden. Angreifer verketten häufig mehrere kleine Schwachstellen zu einem ernsthaften Exploit. Es empfiehlt sich, alle Schwachstellen über schweregradbasierte Alerts zu verfolgen – nicht nur die kritischen.Base-Images beim Scannen vergessen
Die meisten Schwachstellen stecken im Base-Image – konzentrieren Sie sich also nicht nur auf die Anwendungsschicht. Das Scannen des Base-Image sollte Teil der Pipeline sein. So ist sichergestellt, dass Images regelmäßig geprüft und aktualisiert werden.Nicht auf Funde reagieren
Selbst mit einer Scan-Pipeline bleiben Funde häufig unbeachtet, wenn kein klarer Prozess existiert. Es braucht einen eindeutigen Workflow für das Schwachstellenmanagement: Wie werden Funde nachverfolgt, wer wird bei einem Fund benachrichtigt, welches SLA gilt für die Behebung und so weiter.Zu wenig Schutz zur Laufzeit
Image-Scanning schützt nur zum Zeitpunkt des Deployments. Zur Laufzeit bleiben Container ungeschützt, und unerlaubte Änderungen werden nicht erkannt. Setzen Sie daher inhaltsbewusste Firewalls ein, überwachen Sie Container auf auffälliges Verhalten, prüfen Sie Konfigurationen regelmäßig auf Fehler und nutzen Sie Laufzeit-Erkennungswerkzeuge wie Falco.Verwundbare Container-Registry
Ungeschützte Registries sind lohnende Ziele und gefährden die gesamte Container-Pipeline. Wer die Registry kompromittiert, hat den Schlüssel, um jedes einzelne Image zu infizieren. Verhindern Sie daher unbefugten Zugriff, vermeiden Sie unverschlüsselte Netzwerke und setzen Sie TLS-Zertifikate ein.
Fazit
Dieser Leitfaden hat gezeigt, wie der Trivy-Operator Container- und Kubernetes-Sicherheit durch automatisierte Scans und detaillierte Sicherheitsberichte vereinfacht – und wie sich die Metriken mit Prometheus und Grafana visualisieren lassen. Zudem hat er die Fähigkeiten von Trivy und Trivy-Operator erläutert und deren Funktionen, Sicherheitsscans und Compliance-Zuordnung beleuchtet. Mit diesen Werkzeugen stellen Sie sicher, dass Ihre Workloads geschützt sind, und gewinnen Einblick in potenzielle Risiken. Werfen Sie zur Vertiefung auch einen Blick in die offizielle Dokumentation von Trivy und Trivy-Operator, um Ihre Kubernetes-Umgebung weiter abzusichern.
Quellen:
https://anaisurl.com/trivy-operator/
https://github.com/aquasecurity/trivy-operator
https://aquasecurity.github.io/trivy-operator/latest/
https://www.aquasec.com/blog/kubernetes-benchmark-scans-trivy-cis-nsa-reports/
https://aquasecurity.github.io/trivy-operator/latest/tutorials/grafana-dashboard/
Teilen