Sicherheits Scanner Trivy

Sicherheits Scanner Trivy
Photo by Kevin Ku / Unsplash

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.

Trivy Home - Trivy
Trivy is the most popular open source security scanner for Vulnerability &, IaC, SBOM discovery, cloud scanning and Kubernetes security

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       │
└──────────────────────────┴────────────────┴──────────┴────────┴────────────────────────┴──────────────────┴──────────────────────────────────────────────────┘