Aktualisierung der Trivy-Datenbank in einer Air-Gapped-Umgebung

Bei der Virtualisierung von Infrastrukturen gerät man manchmal an Grenzen des Machbaren. Doch workarounds sind oft möglich.

Aktualisierung der Trivy-DB in einer Air-Gapped Umgebung

Ein weiterer technischer deep dive aus dem Bereich der Infrastruktur-Virtualisierung im SPIRIT/21 Blog. vSphere with Tanzu ist eine VMware-Lösung, die es ermöglicht, Kubernetes-Workloads in der bestehenden IT-Infrastruktur auszuführen. Durch die Integration von Kubernetes in vSphere können Unternehmen moderne Anwendungen verwalten und die Lücke zwischen der IT und den Entwicklern schließen. Hier werfen wir den Blick auf ein spezielles Feature der Lösung.

Begriffsklärung

Ein Air-Gapped-System ist eine Sicherheitsmaßnahme, bei der ein Computer- oder Netzwerksystem physisch und logisch von anderen Systemen isoliert wird, um die Übertragung von Daten zu verhindern. Dies beinhaltet auch, dass das System vom Internet getrennt ist.

Trivy ist ein Open-Source-Sicherheits-Scanner, der für die Container- und Anwendungsabsicherung eingesetzt wird. Er durchsucht Container-Images auf Sicherheitslücken, indem er eine Datenbank lokal als Cache ablegt und künftig nur noch Änderungen herunterlädt. Dies ermöglicht schnellere nachfolgende Scans. Die Datenbank enthält Informationen über Sicherheitslücken und Schwachstellen, die zur Analyse von Container-Images verwendet werden.

Trivy in einer Air-Gapped-Umgebung

Nachdem VMware Supervisor Services umgesetzt hat, ist der Trivy Vulnerability Scanner in der Harbor Supervisor Service Installation enthalten. Um Trivy nutzen zu können, muss die Trivy-DB mindestens einmal aktualisiert werden beziehungsweise muss sie heruntergeladen werden, da sie nicht im Standard-Paket enthalten ist.

Die Trivy-Datenbank kann durch Kopieren von Dateien von einer Live-Trivy-Instanz (Trivy mit Internetzugang) in eine Air-Gapped-Trivy-Instanz aktualisiert werden.

Trivy auf einer Ubuntu-VM mit Internetzugang installieren:

sudo apt-get install wget apt-transport-https gnupg lsb-release
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -
echo deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list.d/trivy.list
sudo apt-get update
sudo apt-get install trivy

Trivy-DB aktualisieren:

trivy server --download-db-only

Die Dateien “trivy.db” und “metadata.json” in Trivy Container kopieren:

# Trivy Pod finden
kubectl -n svc-harbor-domain-c10 get pods
NAME                                 READY   STATUS    RESTARTS      AGE
harbor-core-79485fdb96-v9hnf         1/1     Running   1 (11h ago)   11h
harbor-database-0                    1/1     Running   0             11h
harbor-exporter-7f6d468c67-4hzql     1/1     Running   0             11h
harbor-jobservice-5bd8445875-sbq26   1/1     Running   3 (11h ago)   11h
harbor-portal-8667958c6c-csbq5       1/1     Running   0             11h
harbor-redis-0                       1/1     Running   0             11h
harbor-registry-648cf9d757-vlwkz     2/2     Running   0             11h
harbor-trivy-0                       1/1     Running   0             11h
# Terminal im Trivy-Container öffnen
kubectl -n svc-harbor-domain-c10 exec harbor-trivy-0 -it -- /bin/sh
# Ein Verzeichnis erstellen in dem die db und json Dateien kopiert werden müssen
sh-5.0$ mkdir /home/scanner/.cache/trivy/db
sh-5.0$ exit
# db und json Dateien kopieren
kubectl cp $HOME/.cache/trivy/db/trivy.db harbor-trivy-0:/home/scanner/.cache/db
kubectl cp $HOME/.cache/trivy/db/metadata.json harbor-trivy-0:/home/scanner/.cache/db

Nachdem die Dateien kopiert sind, kann der Trivy genutzt werden.

Um Trivy-DB in einem aktuellen Zustand zu halten, muss diese Prozedur wiederholt werden.

Screenshot aus einem live System

Fazit

Auch in Air-Gapped-Umgebungen lässt sich mit einem kleinen Kniff die Trivy-Datenbank aktualisieren. Falls Sie weitere Herausforderungen in Ihrer Infrastruktur, Anregungen oder Fragen haben, scheuen Sie sich nicht, Kontakt mit uns aufzunehmen.

Muhamed Ahmovic, Technischer Presales

+49 172 629 6400
amuhamed@spirit21.com

Muhamed ist verantwortlich für die Konzeption, Planung und Umsetzung von IT-Lösungen mit dem Schwerpunkt auf VMware, Storages und Microsoft. Falls Sie Fragen zu Verschlüsselungstechnologien haben, sind Sie bei ihm an der richtigen Stelle.