Sicherheits Scanner Trivy
Trivy von Aquasecurity ist ein Open-Source-Tool, das sich auf die Erkennung von Schwachstellen in Paketen und Abhängigkeitsdateien auf Betriebssystemebene für verschiedene Linux Systeme konzentriert. So lassen sich lokale oder in Repositories abgelegte Docker Images auf Sicherheitslücken überprüfen.
Trivy ist ein Befehlszeilentool, dass sich lokal installieren, als Docker Image verwenden oder als Plugin zu anderen Systemen einbinden lässt. Es kann außerdem in den automatischen Build Prozess von Docker Images eingebunden werden.

Ich möchte für mein HomeLab Trivy nur als lokalen Sicherheitsscanner installieren.
Erst ab Version 0.44.1 ist das Installationspaket von Trivy für Debian 12 vorhanden. Zunächst sind einige benötigte Pakete zu installieren.
$ sudo apt install wget apt-transport-https gnupg lsb-release
Dann muss das Repository von Aquasecurity in Debian eingebunden werden.
$ 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 -a /etc/apt/sources.list.d/trivy.list
Anschließend kann Trivy installiert werden.
$ sudo apt update
$ sudo apt install trivy
Für die Überprüfung eines lokalen Docker Images bietet es sich an, zunächst nur auf kritische Sicherheitslücken zu prüfen. Beim ersten Start speichert Trivy seine Datenbank mit den Schwachstellen lokal zwischen.
Im folgenden Beispiel wird das lokal laufende Docker Image von Traefik gescannt.
$ trivy image --severity HIGH,CRITICAL traefik
2023-08-10T12:03:49.369+0200 INFO Need to update DB
2023-08-10T12:03:49.369+0200 INFO DB Repository: ghcr.io/aquasecurity/trivy-db
2023-08-10T12:03:49.369+0200 INFO Downloading DB...
38.81 MiB / 38.81 MiB [------------------------------------------------------------] 100.00% 10.30 MiB p/s 4.0s
2023-08-10T12:03:54.186+0200 INFO Vulnerability scanning is enabled
2023-08-10T12:03:54.186+0200 INFO Secret scanning is enabled
2023-08-10T12:03:54.186+0200 INFO If your scanning is slow, please try '--scanners vuln' to disable secret scanning
2023-08-10T12:03:54.186+0200 INFO Please see also https://aquasecurity.github.io/trivy/v0.44/docs/scanner/secret/#recommendation for faster secret detection
2023-08-10T12:04:00.419+0200 INFO Detected OS: alpine
2023-08-10T12:04:00.420+0200 INFO Detecting Alpine vulnerabilities...
2023-08-10T12:04:00.422+0200 INFO Number of language-specific files: 1
2023-08-10T12:04:00.422+0200 INFO Detecting gobinary vulnerabilities...
traefik (alpine 3.18.3)
Total: 0 (HIGH: 0, CRITICAL: 0)
usr/local/bin/traefik (gobinary)
Total: 1 (HIGH: 1, CRITICAL: 0)
┌──────────────────────────┬────────────────┬──────────┬────────┬────────────────────────┬──────────────────┬──────────────────────────────────────────────────┐
│ Library │ Vulnerability │ Severity │ Status │ Installed Version │ Fixed Version │ Title │
├──────────────────────────┼────────────────┼──────────┼────────┼────────────────────────┼──────────────────┼──────────────────────────────────────────────────┤
│ github.com/docker/docker │ CVE-2023-28840 │ HIGH │ fixed │ v20.10.21+incompatible │ 23.0.3, 20.10.24 │ Encrypted overlay network may be unauthenticated │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-28840 │
└──────────────────────────┴────────────────┴──────────┴────────┴────────────────────────┴──────────────────┴──────────────────────────────────────────────────┘
