‫Gut.
‫Das nächste Mal, Code-Repo-Scannen.
‫Dies ist nicht einmal Docker-spezifisch, aber
‫es gibt Tools und Sneak ist eines
‫davon. Sneak, scannt
‫Ihre Code-Abhängigkeiten innerhalb von Repos.
‫Wenn Sie Open Source haben, wenn Sie Open Source entwickeln,
‫werden sie eine Menge dieser Dinge kostenlos tun.
‫Sie scannen Ihr GitHub-Repo, Ihr Bitbucket-Repo und
‫überprüfen die Abhängigkeiten.
‫Ich erhalte jede Woche Berichte über meine Open-Source-Repos und alle
‫Schwachstellen, die sie gefunden haben.
‫Heutzutage macht GitHub eine Menge davon
‫kostenlos. Sneak gibt
‫es schon länger und macht es auch länger, also
‫habe ich irgendwie beides. Ich habe GitHub, der mir E-Mails
‫sendet und ich habe Sneak. Sie können Sneak bezahlen, um Sachen zu scannen.
‫Sie haben jetzt auch mehr Funktionen, mit denen sie auch Bilder und
‫andere Dinge machen, nicht nur Code-Repos.
‫Aber das ist eine Zeile, in der Sie
‫Ihre Repos frühzeitig scannen.
‫Warten Sie nicht, bis Sie Bilder
‫erstellt haben, und testen Sie dann, wo Sie
‫scannen. Scannen Sie so früh wie möglich.
‫Dies ist eine Art Kernsatz der
‫sogenannten ShiftLeft-Sicherheit.
‫Wenn Sie sich ein Kanban-Board vorstellen, bei dem Ihre gesamte Arbeit
‫auf der linken Seite und Ihre
‫Ausgabe auf der rechten Seite liegt, geht es bei
‫der ShiftLeft-Sicherheitsbewegung nur darum, die Verantwortung für die
‫Sicherheit früher und früher zu verlagern
‫Ihr Entwicklungsworkflow.
‫Eine Möglichkeit, dies zu tun, besteht darin, diese automatischen Scanner Ihre
‫Code-Abhängigkeiten in Ihren Git-Repos scannen zu lassen, bevor Sie
‫überhaupt mit der Ausführung von Dingen auf
‫Servern beginnen. Ich würde das tun.
‫Nicht speziell eine Docker-Sache, aber ich würde das tun.
‫Der nächste Schritt ist das Scannen von Bildern selbst, was
‫dem sehr ähnlich ist. Aber wir bekommen hier mehr Funktionen.
‫Wir scannen nicht nur Ihre Code-Abhängigkeiten.
‫Wir können den Container selbst scannen.
‫Das Bild, richtig. Wir
‫können alle Abhängigkeiten untersuchen, die
‫nicht nur Ihren npm-Paketen oder
‫Ihren Python-Paketen entsprechen. Sie scannen jetzt
‫YUM-Pakete und APK oder apt oder diese
‫Art von Paketmanagern für das Betriebssystem.
‫Das meine ich mit einem Bildscanner, da er sowohl
‫diese als auch Ihre Codeabhängigkeiten scannen kann.
‫Hier gibt es also eine Menge Werkzeuge.
‫Ein sehr beliebter Satz von ihnen ist schon eine Weile her,
‫aber ein paar neue sind aufgetaucht, über die ich mit
‫Ihnen sprechen möchte.
‫Das erste hier ist Trivy, und ich habe erst diesen Monat davon
‫erfahren, und zwar im Oktober.
‫Trivy wird von Aqua Security entwickelt, der gleichen Firma, die
‫auch MicroScanner herstellt.
‫MicroScanner war eines der Tools,
‫neben vielen anderen, auch Anchor, ein weiteres beliebtes.
‫Dies sind alles Open-Source-Tools, die Ihr Image
‫auf CVE-Schwachstellen untersuchen.
‫Das CVE ist die Datenbank aller Open-Source-Schwachstellen von Spendern, von
‫denen wir alle in den Nachrichten erfahren haben.
‫Es ist von Mitre, einem Unternehmen, das diese Datenbank verwaltet.
‫Das ist eine Gemeinschaftssache, richtig.
‫Immer wenn jemand eine Sicherheitslücke in Software findet, legt er sie
‫ein und erhält eine CVE-Nummer.
‫Es ist eine weit verbreitete Sicherheitslücke
‫und Exploits.
‫Ich kann mich nicht genau erinnern, wofür CVE steht.
‫Ich bin sicher, einer von euch wird es mir im Chat erzählen.
‫Aber CVE bekommt eine Nummer, richtig.
‫Wir sehen eine Nummer, die diesem bekannten Fehler
‫in der Community zugewiesen ist. Ein CVE-Scanner scannt Ihre Bilder auf
‫diese Sicherheitsanfälligkeit.
‫Sobald Sie sich mit der Implementierung dieser Funktionen befasst
‫haben, gibt es alle möglichen Kleinigkeiten, z. B. muss der Scanner,
‫den Sie benötigen, während der Erstellungszeit im Docker-Image ausgeführt werden?
‫Oder scannt es ein bereits erstelltes Bild?
‫Unterstützt dieser Scanner
‫Ihre Basisverteilung? Unterstützt es Red Hat?
‫Unterstützt es Alpine?
‫Werden andere von Ihnen ausgewählte
‫Distributionsbilder diese unterstützen?
‫Unterstützt es auch Ihren Paketmanager für Ihre App
‫wie npm
‫oder pip oder einen der anderen Dutzenden
‫von Paketmanagern, richtig? Unterstützt es auch diese?
‫MicroScanner hat
‫das alles nicht getan. Es hat einiges getan,
‫aber wie viele dieser anderen Werkzeuge im Ökosystem haben sie nicht alles getan.
‫Im Moment ist dieser von Aqua Security,
‫genannt
‫Trivy, ganz oben angekommen.
‫Trivy behauptet, dass es
‫sich um den vollständigsten Open-Source-Scanner überhaupt handelt.
‫Hier unten werden Sie sehen, was sie unterstützen.
‫Sie werden feststellen, dass sie alle diese basierten Bilder unterstützen.
‫Dann, wenn Sie tatsächlich untergehen, gibt es einen
‫Vergleich, der sie mit allen anderen Tools
‫vergleicht, oder zumindest mit den beliebten Open-Source-Versionen
‫dieser Tools. Es gibt definitiv mehr Werkzeuge als das.
‫Hier müssen Sie viele Entscheidungen treffen.
‫Eine Möglichkeit ist, wo ich scannen möchte.
‫Soll mein Image-Repository sie selbst scannen, wie
‫Docker Enterprise DTR?
‫Wenn Ihre Bilder in einer Registrierung gespeichert sind
‫und diese Registrierung Scans für die Bilder in der
‫Registrierung selbst auf einmal ausführt.
‫Quay macht das auch. Quay ist
‫ein Cloud-Hosting-Image-Repository und wird auch scannen, richtig.
‫Jeder dieser Scanner scannt nicht immer alle Bildtypen
‫und alle App-Abhängigkeiten.
‫Also, es ist ziemlich cool hier, dass sie zeigen ... Im Grunde bedeutet das
‫X, dass sie es nicht tun.
‫Die 0 oder das O dort, der Kreis, bedeutet, dass
‫sie es tun. Dann denke
‫ich, dass der doppelte OO hier das
‫Beste bedeutet, und das Dreieck bedeutet, dass es Probleme gibt,
‫dass es dort Bedenken gibt.
‫Sie behaupten also, dass Trivy, das sie dieses Jahr gekauft haben, meiner
‫Meinung nach.
‫Trivy macht alles. Es macht OS-Pakete, Anwendungsabhängigkeiten.
‫Sie behaupten, es sei einfach zu bedienen.
‫Sie behaupten, es sei genauer. Wenn Sie anfangen, dies
‫zu lesen, werden Sie feststellen, dass eines der großen Probleme, über
‫das ich immer wieder spreche, darin besteht, dass das Grundimage von Alpine mit
‫fast allen diesen Scannern nicht funktioniert.
‫Die Schwachstellendatenbank ist einfach nicht ordnungsgemäß damit verbunden,
‫sodass beim Ausführen dieser Scanner Schwachstellen
‫in Alpine erkannt werden.
‫Trivy behauptet, dass sie das durch eine neue
‫Methode behoben haben, die sie implementieren, und wir werden sehen, ob
‫andere Leute das auch implementieren.
‫Sie behaupten, die vollständigsten zu sein.
‫Viele meiner Docker Captain-Freunde sagen, dass sie es nutzen und
‫es großartig nutzen.
‫Eine der anderen Entscheidungen, neben welchem Scanner, ist, wo
‫Sie scannen?
‫Ich scanne gerne während der Imageerstellung.
‫Ich möchte lieber während der automatisierten
‫CI-Image-Erstellung scannen, als sie später nach der Image-Erstellung zu scannen.
‫Das bin nur ich.
‫Möglicherweise haben Sie sogar verschiedene Systeme, die zu
‫unterschiedlichen Zeiten scannen, um sicher zu gehen,
‫richtig, nur um sicherzugehen. Abhängig von Ihrer Umgebung befinden sich
‫möglicherweise Systeme auf den Servern, die in der Produktion
‫ausgeführt werden. Das ist nicht sehr verbreitet.
‫Wenn Sie sich jedoch in einer supersicheren Umgebung befinden,
‫in der Live-Scans durchgeführt werden sollen, können Sie dies mit einigen
‫dieser Tools tun.
‫Eine Demo, die ich oft gebe, handelt
‫von MicroScanner. Im Wesentlichen ist
‫alles, was Sie in MicroScanner sowie in diesem anderen Tool
‫tun müssen, in MicroScanner enthalten. Sie können es in Ihre Docker-Datei einfügen.
‫Ich glaube, die Tivey-App scannt Sie, nachdem das Image
‫erstellt wurde.
‫Wenn Sie extrem paranoid sind, können Sie in
‫Ihrem Docker-Bild auch einen MicroScanner verwenden.
‫Dann könnten Sie so etwas wie Tivey ausführen,
‫bevor die Bilder an die
‫Registrierung gesendet werden. Sie können sie später jederzeit herunterladen,
‫aber ich möchte wissen, dass mein Image frei von Sicherheitslücken ist,
‫bevor ich es abschicke.
‫Das ist es also, was du dort tun könntest. Jetzt.
‫Ich möchte Ihnen nur eine Warnung sagen.
‫Sie werden wahrscheinlich keine haben ... Sie
‫werden wahrscheinlich keine oder nur wenige Bilder
‫haben, die auf der ganzen Linie
‫keine Schwachstellen aufweisen. Das liegt einfach
‫an der Natur von Open Source. Wenn Sie ein Bild
‫scannen, weist dies in der Regel
‫Schwachstellen auf.
‫Es ist Ihre Aufgabe, mit Ihrem Sicherheitsteam zusammenzuarbeiten,
‫was akzeptabel ist, nicht, dass wir niemals Schwachstellen haben können.
‫Weil bestimmte Schwachstellen möglicherweise nicht einmal auf Sie zutreffen.
‫Nur weil sie in Ihrem Bild sind, heißt das noch lange nicht,
‫dass sie automatisch ein Problem darstellen.
‫Du musst ein
‫bisschen arbeiten. Ich denke, was ich vorschlagen würde,
‫ist, diese jetzt zu
‫implementieren, aber die Art des Fehlers auszuschalten und
‫hier bei einem Fehler fortzufahren, was bedeutet, dass ich Sie nur
‫warnen werde, dass es Schwachstellen gibt. Ich werde den Build nicht stoppen, nur
‫weil es eine Sicherheitslücke gibt.
‫Dies ist der Schlüssel, da
‫alle diese Tools beim automatischen Implementieren fehlschlagen.
‫Sie werden Ihr CI oder Ihre Builds scheitern, wenn
‫Sie sie nur einschalten. Sie möchten
‫sicherstellen, dass sie sich nur im Überwachungsmodus befinden, in dem
‫sie keine Sicherheitsanfälligkeit finden.
‫Auf diese Weise können Sie zumindest die Schwachstellen
‫herausfinden, bevor Sie anfangen, bevor Sie Hardcore
‫spielen, oder? Bevor du Hardcore machst.