Cve scanner

Aus Xinux Wiki
Version vom 11. August 2026, 11:26 Uhr von Thomas.will (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

CVE-Scanner: Container, Dependencies und Compliance

Diese Seite vergleicht die gängigen Open-Source- und kommerziellen Scanner für Container-Images, Software-Abhängigkeiten und System-Compliance. Für jedes Tool: Funktionsweise, Installation, Nutzung und Best Practices aus der Kurspraxis.

Trivy

Was es macht

Trivy (Aqua Security) scannt Container-Images, Dateisysteme, Git-Repositories und IaC-Definitionen (Terraform, Kubernetes-Manifeste, Dockerfiles) auf bekannte CVEs, hartcodierte Secrets und Fehlkonfigurationen. Die Vulnerability-Daten stammen aus mehreren Quellen (NVD, GitHub Security Advisories, distributionsspezifische Feeds wie Debian/RHEL Security Tracker) und werden in einer lokalen SQLite-DB gecacht.

Installation (Debian/Ubuntu)
Installation (Rocky Linux/RHEL)
Grundlegende Nutzung
Image scannen (alle Severities)
  • trivy image nginx:latest
Nur kritische und hohe Findings anzeigen
  • trivy image --severity CRITICAL,HIGH nginx:latest
Lokales Dateisystem/Repo-Checkout scannen (z.B. installierte Pakete, Sprach-Dependencies wie package-lock.json, requirements.txt)
  • trivy fs /pfad/zum/repo
IaC-Definitionen auf Fehlkonfigurationen prüfen (z.B. offene Security Groups, fehlende Verschlüsselung)
  • trivy config /pfad/zu/terraform
Remote-Git-Repo direkt scannen, ohne vorher zu klonen
Best Practice
  • In CI/CD als Quality Gate einbauen, damit Builds mit kritischen Findings fehlschlagen:
trivy image --exit-code 1 --severity CRITICAL,HIGH myapp:latest
  • Akzeptierte Risiken über .trivyignore dokumentieren statt Severity-Filter pauschal herunterzudrehen – so bleibt nachvollziehbar, warum ein Finding ignoriert wird
  • DB regelmäßig separat aktualisieren, besonders wenn viele Scans hintereinander laufen:
  • trivy image --download-db-only
  • Für Kursumgebungen ideal als Einstiegstool, da Ergebnis innerhalb von 1–2 Minuten ohne Account oder Cloud-Anbindung sichtbar ist
  • SARIF- oder JSON-Ausgabe (--format json) eignet sich gut, um Ergebnisse später mit jq auszuwerten oder in ein SIEM (z.B. Wazuh) einzuspeisen

Grype

Was es macht

Grype (Anchore) verfolgt einen ähnlichen Ansatz wie Trivy, ist aber konzeptionell auf Zusammenspiel mit Syft ausgelegt: Syft erzeugt eine Software Bill of Materials (SBOM), Grype scannt anschließend gegen diese SBOM statt direkt gegen das Image. Das entkoppelt Inventarisierung (was ist überhaupt installiert) von Bewertung (welche CVEs betreffen das).

Installation
Grundlegende Nutzung
SBOM aus dem Image erzeugen und als JSON-Datei speichern (Inventar
welche Pakete/Bibliotheken stecken im Image)
  • syft nginx:latest -o json > sbom.json
Gespeicherte SBOM gegen die Vulnerability-DB scannen (Bewertung
welche CVEs betreffen die im Inventar erfassten Pakete)
  • grype sbom:sbom.json
Direkter Scan ohne separate SBOM-Datei, für schnelle Ad-hoc-Checks
  • grype nginx:latest
Best Practice
  • SBOM einmal erzeugen und archivieren, dann wiederholt gegen aktualisierte Vulnerability-DB scannen – spart Zeit und liefert einen Audit-Trail, wann welche Komponenten im Image steckten
  • SBOM-Datei als Artefakt in der CI/CD-Pipeline ablegen, nicht nur den Scan-Report – für Lieferketten-Nachweise (Supply Chain Security) zunehmend relevant
  • Gut geeignet, um im Kurs den Unterschied zwischen "Inventar erstellen" (Syft) und "Inventar bewerten" (Grype) als zwei getrennte Schritte zu demonstrieren

Docker Scout

Was es macht

Docker Scout ist direkt in Docker Desktop und die Docker CLI integriert und braucht daher kein separates Tool, wenn Docker ohnehin im Einsatz ist. Es zeigt CVEs an, vergleicht Image-Versionen gegeneinander und gibt Empfehlungen (z.B. "neueres Base-Image verwenden").

Installation
  • Ab Docker CLI 24 ist das Plugin standardmäßig vorhanden
  • Falls nicht vorhanden: sudo apt-get install docker-scout-plugin
Grundlegende Nutzung
CVEs eines Images auflisten
  • docker scout cves nginx:latest
Zwei Image-Versionen gegeneinander vergleichen (zeigt, welche CVEs durch das Update behoben bzw. neu hinzugekommen sind)
  • docker scout compare nginx:latest --to nginx:1.25
Konkrete Handlungsempfehlungen anzeigen (z.B. "auf neueres Base-Image wechseln")
  • docker scout recommendations nginx:latest
Best Practice
  • docker scout compare eignet sich besonders gut für Kursvorführungen zum Thema Patch-Management: "ist mein neues Image besser oder schlechter als das alte"
  • Kostenlose Nutzung ist pro Nutzer/Organisation limitiert – vor dem Kurs prüfen, ob die Free-Tier-Grenzen für die Teilnehmerzahl reichen
  • Da es in der Docker-Toolchain "mitläuft", eignet es sich gut, um zu zeigen, dass Security-Scanning kein Extra-Tool sein muss, sondern in bestehende Workflows integriert werden kann

Clair

Was es macht

Clair läuft als Backend-Service (eigener API-Server plus PostgreSQL-Datenbank) und wird meist hinter einer Registry wie Harbor oder Quay betrieben statt als CLI-Tool für Ad-hoc-Scans genutzt. Images werden automatisch beim Push in die Registry gescannt.

Best Practice
  • Nicht für schnelle Kurs-Demos geeignet – der Setup-Aufwand (DB, API-Server, Registry-Anbindung) steht in keinem guten Verhältnis zum Lerneffekt gegenüber Trivy/Grype
  • Sinnvoll als Beispiel für "Enterprise-Registry-Scanning", falls Harbor oder Quay bereits Teil der Kursumgebung ist
  • Bei Zeitdruck im Kurs zugunsten von Trivy/Grype überspringen

OWASP Dependency-Check

Was es macht

Prüft Software-Abhängigkeiten (Schwerpunkt Java/.NET, aber auch Node.js, Python, Ruby, PHP) gegen die NVD und identifiziert Bibliotheken mit bekannten CVEs. Läuft als eigenständige CLI, als Maven-/Gradle-Plugin oder als Jenkins-Plugin.

Installation
Grundlegende Nutzung
Projektverzeichnis scannen und HTML-Report erzeugen
  • dependency-check --project MeinProjekt --scan /pfad/zum/projekt --format HTML --out ./report
Best Practice
  • NVD-API-Key kostenlos beantragen (https://nvd.nist.gov/developers/request-an-api-key) und über --nvdApiKey übergeben – ohne Key ist das Rate-Limiting beim ersten DB-Update sehr streng und der Download kann eine Stunde oder länger dauern
  • Ersten DB-Download vor Kursbeginn anstoßen und den Cache-Ordner (~/.m2/repository/org/owasp bzw. data-Verzeichnis) für alle Teilnehmer-VMs vorbereiten, statt live im Kurs zu warten
  • HTML-Report eignet sich gut zum gemeinsamen Durchgehen, da er CVSS-Score, betroffene Datei und Beschreibung übersichtlich verknüpft
  • Bei False Positives suppression.xml nutzen statt Findings zu ignorieren – macht Ausnahmen dokumentiert und nachvollziehbar

Snyk

Was es macht

Snyk deckt Dependencies, Container-Images, Infrastructure-as-Code und eigenen Anwendungscode (SAST) ab und bietet sehr gute Entwicklerintegration (VS Code, GitHub, GitLab, Jenkins). Betrieben als Freemium-SaaS mit monatlichem Test-Limit in der kostenlosen Stufe.

Installation
  • sudo npm install -g snyk
  • snyk auth
Grundlegende Nutzung
Dependencies im aktuellen Projektverzeichnis scannen
  • snyk test
Container-Image scannen
  • snyk container test nginx:latest
IaC-Dateien (Terraform, Kubernetes, CloudFormation) auf Fehlkonfigurationen prüfen
  • snyk iac test
Projekt bei Snyk registrieren für kontinuierliches Monitoring (meldet auch neu bekanntgewordene CVEs für bereits gescannte, unveränderte Projekte)
  • snyk monitor
Best Practice
  • Account-Erstellung und Auth-Flow vor Kursbeginn klären – im Gegensatz zu Trivy ist Snyk nicht ohne Login sofort nutzbar, das kostet sonst Unterrichtszeit
  • snyk monitor eignet sich gut als Kontrastpunkt zu einmaligen CLI-Scans: zeigt, wie kontinuierliches Vulnerability-Monitoring in echten Teams aussieht (Snyk meldet auch neu bekanntgewordene CVEs für bereits gescannte, unveränderte Projekte)
  • Free-Tier-Limits vorher prüfen, wenn mehrere Teilnehmer parallel mit eigenen Accounts arbeiten

OpenSCAP

Was es macht

OpenSCAP ist kein reiner CVE-Scanner im engeren Sinn, sondern ein Compliance- und Configuration-Scanner nach dem SCAP-Standard (Security Content Automation Protocol). Es prüft Systeme gegen Policies wie CIS Benchmarks, DISA STIG oder PCI-DSS. Zusätzlich kann es über OVAL-Definitionen (Open Vulnerability and Assessment Language) auch klassisches CVE-Scanning durchführen, sofern die jeweilige Distribution offizielle OVAL-Feeds bereitstellt – bei RHEL-basierten Systemen (RHEL, Rocky, CentOS) ist das der Fall.

Zwei Anwendungsfälle
  • Configuration Compliance: prüft z.B. ob SSH-Root-Login deaktiviert ist oder Passwort-Policies den Vorgaben entsprechen
  • Vulnerability Scanning via OVAL: nutzt distributionsspezifische OVAL-Feeds, um installierte Pakete gegen bekannte CVEs zu prüfen
Installation (Rocky Linux/RHEL)
  • sudo dnf install openscap-scanner scap-security-guide
CVE-Scan gegen offiziellen Red-Hat-OVAL-Feed
Compliance-Scan gegen CIS-Benchmark
oscap xccdf eval \
  --profile cis \
  --results results.xml \
  --report report.html \
  /usr/share/xml/scap/ssg/content/ssg-rl9-ds.xml
Verfügbare Profile anzeigen
  • oscap info /usr/share/xml/scap/ssg/content/ssg-rl9-ds.xml
Best Practice
  • Thematisch sehr passend für den Rocky-Linux-Kurs, da scap-security-guide fertige Profile für Rocky/RHEL mitbringt und keine Zusatzkonfiguration braucht
  • Im Kurs gut geeignet, um den Unterschied zwischen Vulnerability Scanning (Trivy, Grype, Snyk – "welche bekannte Schwachstelle steckt in dieser Software") und Compliance/Baseline Scanning (OpenSCAP – "entspricht dieses System einer Sicherheitsrichtlinie") klarzumachen; die beiden werden von Teilnehmern häufig verwechselt
  • HTML-Report (report.html) ist sehr anschaulich für die Vorführung, zeigt Pass/Fail pro Regel inklusive Begründung und Referenz auf den Benchmark-Punkt
  • Remediation-Skripte lassen sich direkt aus dem Profil generieren:
  • oscap xccdf generate fix --profile cis --output remediate.sh /usr/share/xml/scap/ssg/content/ssg-rl9-ds.xml
  • Remediation-Skripte im Kurs ausschließlich auf einer Wegwerf-VM testen, nie auf einer produktiv genutzten Maschine, da Änderungen (z.B. an SSH- oder PAM-Konfiguration) Systeme aussperren können

Übersicht

Tool Scope Setup-Aufwand Kosten
Trivy Images, Filesystem, IaC sehr gering kostenlos
Grype Images (via SBOM) gering kostenlos
Docker Scout Images (Docker-integriert) sehr gering Freemium
Clair Images (Registry-Backend) hoch kostenlos
OWASP Dependency-Check Code-Dependencies mittel (erster DB-Download) kostenlos
Snyk Dependencies, Images, IaC, Code mittel (Account nötig) Freemium
OpenSCAP System-Compliance + OVAL-CVEs gering (RHEL-Familie) kostenlos