Wie man

Scannen Sie Docker-Container-Images auf Schwachstellen mit Trivy

Scannen Sie Docker-Container-Images auf Schwachstellen mit Trivy

Sicherheit entwickelt sich von Zeit zu Zeit so weit, dass es sehr beängstigend aussieht, darüber nachzudenken. Vor der Freigabe von Anwendungen für eine Produktionsumgebung müssen sehr ernsthafte Sicherheitsüberlegungen und Protokolle berücksichtigt werden, um Ihre Ressourcen zu schützen. Das liegt daran, dass das Internet eine Menge Bösewichte beherbergt, die darauf warten, sich in das Fleisch von dem zu krallen, wofür Sie schlaflose Nächte verbracht und gerade eingesetzt haben. Um zur Sicherheit Ihrer containerisierten Anwendungen beizutragen, gehen wir heute diesen Weg der Sicherheit ein. Dies alles in der Hoffnung, etwas Hoffnung zu wecken und Werkzeuge bereitzustellen, die Ihr Begleiter auf dieser Reise sein können. Heute präsentieren und bejubeln wir Trivy.

Trivy ist ein einfacher und umfassender Schwachstellen-Scanner für Container und andere Artefakte. Es hilft, Schwachstellen von Betriebssystempaketen (Alpine, RHEL, CentOS usw.) zu erkennen.) und Anwendungsabhängigkeiten (Bundler, Composer, npm, Garn usw.).). Bevor Sie an eine Container-Registry pushen oder Ihre Anwendung bereitstellen, können Sie Ihr lokales Container-Image und andere Artefakte einfach scannen und so die Gewissheit haben, dass mit Ihrer Anwendung alles in Ordnung ist, ohne aufwändigere Konfigurationen wie bei anderen Scannern vornehmen zu müssen.

Funktionen von Trivy

Trivy in seiner Pracht und Ruhe bietet die folgenden Funktionen, die Sie genießen werden:

So lernen Sie den Container-Image-Scanner kennen

Trivy kann in einer Reihe von Linux-Distributionen sowie auf MacOS installiert werden. Wir werden die Installation von Trivy auf CentOS, Ubuntu, Debian, Arch und MacOS behandeln. Und lass die Show beginnen.

Trivy auf CentOS installieren

Sie haben hier zwei Möglichkeiten, wenn Sie Trivy auf Ihrer CentOS-Box installieren möchten. Sie können entweder das Repository von Trivy verwenden oder es direkt von seiner RPM-Quelle installieren. Um aus dem Repository zu installieren, fügen Sie das folgende Repository hinzu und fahren Sie dann mit der Installation von Trivy . fort.

echo -e "\n[trivy]\nname=Trivy-Repository\nbaseurl=https://aquasecurity.github.io/trivy-repo/rpm/releases/\$releasever/\$basearch/\ngpgcheck=0\nenabled=1" | sudo tee -a /etc/yum.repos.d/kubernetes.repo

Nachdem Sie das Trivy-Repository hinzugefügt haben, aktualisieren Sie Ihren Server und installieren Sie das trivy-Paket wie folgt:

sudo yum -y aktualisiere sudo yum -y installiere trivy

Um Trivy von seiner RPM-Quelle zu installieren, müssen Sie die neueste Trivy-Version herunterladen und dann die folgenden Befehle ausführen:

$ rpm -ivh https://github.com/aquasecurity/trivy/releases/download/v0.12.0/trivy_0.12.0_Linux-64bit.U/min

Trivy auf Debian|Ubuntu installieren

Ähnlich wie bei der Installation von Trivy auf CentOS haben Sie hier auch zwei Optionen, mit denen Sie es auf Ihrem Debian|Ubuntu installieren können
Box. Sie können entweder das Repository von Trivy verwenden oder es direkt aus seiner DEB-Quelle installieren. Um aus dem Repository zu installieren, fügen Sie das folgende Repository hinzu und fahren Sie dann mit der Installation von Trivy fort.

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

Nachdem Sie das Trivy-Repository hinzugefügt haben, aktualisieren Sie Ihren Server und installieren Sie das trivy-Paket wie folgt:

sudo apt-get aktualisieren sudo apt-get installieren trivy

Wenn Sie ein Fan von Deb-Quellen sind, können Sie Trivy alternativ mit seiner DEB-Quelle installieren. Um Trivy auf diese Weise zu installieren, müssen Sie die neueste Trivy-Version herunterladen und dann die folgenden Befehle ausführen: wie folgt:

sudo apt-get install rpm wget  sudo apt installieren ./.deb

Trivy auf Arch Linux installieren|Manjaro

Nun, an alle treuen Arch-Fans, Sie können Trivy ganz einfach auf Ihrem Computer installieren, indem Sie pikaur- oder yay-AUR-Helfer verwenden, wie unten gezeigt.

pikaur -Sy trivy-bin

Oder Sie können yay AUR helper auch so verwenden:

yay -Sy trivy-bin

Trivy auf macOS installieren

Für Mac-Benutzer, die nicht zurückgelassen werden, können Sie dieses coole Tool über Homebrew auf Ihrem MacOS installieren, indem Sie den folgenden Befehl ausführen

brauen installieren aquasecurity/trivy/trivy

Trivy in Aktion - So verwenden Sie Trivy

Sobald Trivy installiert ist, können wir sofort ins Geschäft einsteigen. Es gibt unzählige Anwendungsfälle, die Trivy abdeckt, und wir werden einige davon in diesem Handbuch behandeln.

Scannen eines Dateisystems

Trivy kann ein Dateisystem scannen (z. B. eine Hostmaschine, ein Image einer virtuellen Maschine oder ein entpacktes Container-Image-Dateisystem). Während des Scans sucht es nach Sicherheitslücken basierend auf Sperrdateien wie Gemfile.sperren und Paket-Schloss.json. Die Syntax lautet wie folgt:

$ trivy fs /home/vagrant 2020-11-09T10:35:41.656Z WARN OS wird nicht erkannt und Schwachstellen in Betriebssystempaketen werden nicht erkannt. 2020-11-09T10:35:41.656Z INFO Ruby-Schwachstellen werden erkannt… 2020-11-09T10:35:41.656Z INFO Erkennung von nodejs-Schwachstellen… octant/site/Gemfile.sperren ======================== Gesamt: 0 (UNBEKANNT: 0, NIEDRIG: 0, MITTEL: 0, HOCH: 0, KRITISCH: 0) Oktant /web/package-lock.json ============================ Gesamt: 0 (UNBEKANNT: 0, NIEDRIG: 0, MITTEL: 0, HOCH: 0, KRITISCH : 0)

Scannen Ihres Git-Repositorys

Glücklicherweise können Sie Ihr entferntes Git-Repository mit diesem einfachen, aber leistungsstarken Tool scannen. Und es sollte beachtet werden, dass hier nur öffentliche Repositories unterstützt werden. Scannen Sie Ihr Git-Repository mit dem Repo-Switch wie folgt:

$ Trivy Repo https://github.com/aquasecurity/trivy 2020-11-09T07:13:25.265Z INFO DB muss aktualisiert werden 2020-11-09T07:13:25.265Z INFO Download DB… 19.13 MiB / 19.13 MiB [------------------------------------------------------------------------ ------------] 100.00% 512.75 KiB p/s 38sAufzählen von Objekten: 2338, fertig. Objekte zählen: 100% (2338/2338), fertig. Komprimieren von Objekten: 100% (1260/1260), fertig. Gesamt 2338 (Delta 1229) wiederverwendet 1943 (Delta 933), Packung wiederverwendet 0 2020-11-09T07:40:29.758Z WARN OS wird nicht erkannt und Schwachstellen in Betriebssystempaketen werden nicht erkannt.

Ein Bild scannen

Nachdem Sie Ihre Anwendung entwickelt und in ein Image (Docker oder so) konsolidiert haben, haben Sie die Möglichkeit, jedes Sicherheitsproblem herauszufinden, das Sie möglicherweise übersehen haben. Geben Sie einfach einen Bildnamen und ein Tag zusammen mit Ihrem trivy-Befehl wie folgt an.

Listen Sie Ihre Bilder auf

$ docker images REPOSITORY TAG BILD-ID ERSTELLTE GRÖSSE nginx neueste c39a868aad02 vor 3 Tagen 133MB
$ trivy image nginx

Sie sollten einen langen und detaillierten Bericht über Ihre Terminalausgabe sehen. Ein Ausschnitt wird unten geteilt.

Trivy in Dockerfile einbetten

Eine weitere coole Funktion dieses Tools ist, dass Sie es in Ihr Dockerfile aufnehmen können und alles scannt, während es das Image erstellt. Wir werden das Nginx-Image hier zur Demonstration wie folgt verwenden:

$ vim Dockerfile FROM alpine:3.7 RUN apk add curl \ && curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/master/contrib/install.sch | sh -s -- -b /usr/local/bin \ && trivy filesystem --exit-code 1 --no-progress /

Erstellen Sie dann Ihr Bild mit einer Ausgabe ähnlich der unten gezeigten, während Sie sich entspannen.

$ docker build -t gescanntes-Bild . Senden von Build-Kontext an Docker-Daemon 8.704 kB Schritt 1/2 : VON alpin:3.7 Versuchen, Repository-Docker zu ziehen.io/Bibliothek/Alpin… 3.7: Aus Docker ziehen.io/library/alpine 5d20c808ce19: Pull complete Digest: sha256:8421d9a84432575381bfabd248f1eb56f3aa21d9d7cd2511583c68c9b7511d10 Status: Neueres Image für Docker heruntergeladen.io/alpin: 3.7 ---> 6d1ef012b567 Schritt 2/2: RUN apk add curl && curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/master/contrib/install.sch | sh -s -- -b /usr/local/bin && trivy filesystem --exit-code 1 --no-progress / ---> Läuft in 445558539f6f fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.Teer.gz hol http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.Teer.gz (1/4) Installation von ca-Zertifikaten (20190108-r0) (2/4) Installation von libssh2 (1.9.0-r1) (3/4) libcurl installieren (7.61.1-r3) (4/4) Curl installieren (7.61.1-r3) Ausführen von busybox-1.27.2-r11.trigger Ausführen von CA-Zertifikaten-20190108-r0.Trigger OK: 6 MiB in 17 Paketen aquasecurity/trivy info GitHub auf neuestes Tag überprüfen aquasecurity/trivy info gefunden Version: 0.12.0 für v0.12.0/Linux/64bit Aquasecurity/Trivy Info installiert /usr/local/bin/trivy 2020-11-09T10:13:02.597Z INFO DB muss aktualisiert werden 2020-11-09T10:13:02.597Z INFO Download DB… 2020-11-09T10:13:27.545Z INFO Alpine Schwachstellen erkennen… 2020-11-09T10:13:27.547Z WARN Diese OS-Version wird von der Distribution nicht mehr unterstützt: alpine 3.7.3 2020-11-09T10:13:27.547Z WARN Die Schwachstellenerkennung ist möglicherweise unzureichend, da keine Sicherheitsupdates bereitgestellt werden 445558539f6f (alpine 3.7.3) ========================== Gesamt: 2 (UNBEKANNT: 0, NIEDRIG: 0, MITTEL: 0, HOCH: 0, KRITISCH : 2) +----------+------------------+----------+--- ------+--------------+----------------- --------------+ | BIBLIOTHEK | SCHWACHSTELLEN-ID | SCHWERE | INSTALLIERTE VERSION | FESTE VERSION | TITEL | +-------------+------------------+----------+-------- --------------+--------------+-------------------- ------------+ | musl | CVE-2019-14697 | KRITISCH | 1.1.18-r3 | 1.1.18-r4 | musl libc bis 1.1.23 | | | | | | | hat eine x87 Gleitkommazahl | | | | | | | Stapeleinstellungsunwucht, | | | | | | | verwandt… | +------------+ + + + + + | musl-utils | | | | | | | | | | | | | | | | | | | | | | | | | | | +------------+------------------+----------+-------------------+---------------+--------------------------------+

Filtern Sie die Schwachstellen nach Schweregrad

Falls Sie besondere Anforderungen haben und den zu erstellenden Bericht gefiltert werden müssen, damit Sie HOCH, KRITISCH und solche Felder sehen können, wird Trivy dies sofort für Sie tun. Führen Sie einfach einen Befehl ähnlich dem folgenden aus:

$ trivy image --severity HIGH,CRITICAL nginx:latest

Scannen Sie Ihr Projekt mit einer Sperrdatei

Wenn Sie ein Python-Projekt haben, ist die Wahrscheinlichkeit hoch, dass es eine Sperrdatei enthält. Sie können ein solches Projekt daher mit trivy wie folgt scannen:

$ trivy fs ~/src/github.com/aquasecurity/trivy-ci-test

Scannen eines Containers aus dem Inneren des Containers

Um dem süßen Geschmack, den wir genießen, noch mehr Zucker hinzuzufügen, ist es erwähnenswert, dass Trivy Ihren laufenden Behälter aus dem Behälter heraus scannen kann. Es kommt nie zu Überraschungen. So kann das erreicht werden und beachten Sie, dass Sie Trivy nicht auf dem Host-Rechner installieren müssen.

$ docker run --rm -it nginx \ && curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/master/contrib/install.sch | sh -s -- -b /usr/local/bin \ && trivy fs /

Wir haben nur ein paar Blätter von Trivys Zwiebel geschält und es gibt noch viel mehr zum Kratzen und Erkunden. Weitere Informationen zu diesem coolen Sicherheitsbegleiter finden Sie auf der offiziellen GitHub-Seite und Sie werden sie mit einem Lächeln verlassen.

Abschließende Gedanken

Wir staunen erst, wenn wir bedenken, was Innovation und Technologie in unseren Lebensbereichen immer noch bewirken. Während es für Hacker möglicherweise mehr Möglichkeiten und Raum gibt, sich einzumischen, gibt es Krieger, die alles in ihrer Macht Stehende tun, um die Verwundbaren zu stärken. Trivy ist ein solches heroisches Werkzeug und wir hoffen, dass den Entwicklern maximale Unterstützung gewährt wird. Ansonsten freuen wir uns über Ihren Besuch und hoffen, dass die Anleitung so hilfreich war, wie wir es uns erhofft hatten. Vielen Dank für Ihre Unterstützung und alles Gute, wenn dieses herausfordernde Jahr zu Ende geht. Sie können andere Leitfäden und Artikel lesen, die unten geteilt werden:

Installieren Sie Sicherheitsupdates / Patches nur auf CentOS 8

Datensicherheit & Online-Privatsphäre: Warum Gamer die perfekten Ziele sind

Authentifizieren von Kubernetes-Dashboard-Benutzern mit Active Directory

Quora ist die nächste Website, bei der Benutzerdaten kompromittiert werden
Es ist noch nicht einmal eine Woche her, dass die Hotelkette Marriott bekannt gab, dass ihre Website gehackt wurde, wodurch möglicherweise Kundendaten...
Google bestreitet die Behauptung von DuckDuckGo, dass es Ihnen folgt, wenn Inkognito aktiviert ist
Zwei beliebte Suchmaschinen streiten sich in Bezug auf die datenschutzbasierte Suche. DuckDuckGo schlägt vor, dass Google Nutzer verfolgt, um personal...
Neue mobile App erkennt Anämie mit nur Ihren Fingernägeln
Einer der aufregendsten Aspekte des technologischen Fortschritts ist, was er im medizinischen Bereich leisten kann. Eine aktuelle Weiterentwicklung is...