GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

So verwenden Sie Docker Scan, um Schwachstellen in Ihren Bildern zu finden

Docker wird jetzt mit integrierter Unterstützung für Sicherheitsscans ausgeliefert. Sie können Ihre Container-Images lokal scannen, um mögliche Schwachstellen zu identifizieren. Dies beschleunigt den Entwicklungszyklus, indem im Vergleich zu CI-Pipelines und Cloud-Diensten ein unmittelbareres Feedback bereitgestellt wird.

Der scan Der Befehl ist standardmäßig in Docker-Version 20.10 verfügbar. Docker arbeitet mit Snyk zusammen, um Sicherheitsscans in seine CLI zu bringen. Wenn Sie den Befehl zum ersten Mal ausführen, wird eine einmalige Zustimmungsaufforderung angezeigt. Geben Sie „y“ ein und drücken Sie die Eingabetaste, um die Snyk-Integration zu bestätigen.

Neben der Zustimmung zu Snyk ist für das Scannen von Containern auch eine Docker-Hub-Anmeldung erforderlich. Führen Sie docker login aus um Ihren Benutzernamen und Ihr Passwort anzugeben, bevor Sie mit dem Scannen beginnen.

Versuchen Sie, docker scan --version auszuführen um Ihre Installation zu überprüfen. Sie sehen die Versionsnummer des scan Plugin. Die Ausgabe nennt auch den Anbieter von Sicherheitsscans, der scan verwenden (derzeit Snyk). Weitere Anbieter könnten in Zukunft hinzugefügt werden.

Wie Scans funktionieren

docker scan akzeptiert einen Bildnamen als Parameter. Es scannt das Image anhand der Snyk-Datenbank mit Container-Schwachstellen. Eine breite Palette von Problemen wird behandelt, von veralteten Basis-Images bis hin zu Exploits gegen von Ihnen verwendete Open-Source-Softwarebibliotheken.

Snyk kann Ihnen das Dockerfile zeigen Zeile, die eine Schwachstelle einführt. Dies gibt Ihnen einen sofortigen Ausgangspunkt, wenn Sie jedes Problem lösen. Die Ergebnisse werden nach Abschluss des Scans direkt in Ihrem Terminal angezeigt.

Die Snyk-Datenbank wird ständig mit neuen Schwachstellen aktualisiert. Gehen Sie nicht davon aus, dass ein Bild, das einmal gescannt wurde, in Zukunft immer das gleiche Ergebnis liefert. Es hat sich bewährt, Bilder regelmäßig zu scannen, damit Ihre Workloads sicher bleiben.

Scannen eines Bildes

Der einfachste Weg, ein Bild zu scannen, besteht darin, ein Tag an docker scan zu übergeben :

docker scan hello-world:latest

Der Scan kann einige Sekunden dauern. Größere Bilder benötigen mehr Zeit. Die Ergebnisse werden in Ihrem Terminal angezeigt, sobald sie verfügbar sind. Die Beispielausgabe eines erfolgreichen Scans ist oben gezeigt.

Entwarnung zu bekommen mag beruhigend sein, aber der docker scan Die Ausgabe ist viel interessanter, wenn Schwachstellen erkannt werden. Hier ist ein Scan, der einige Probleme gefunden hat.

Jedes Problem hat eine kurze Beschreibung, einen Hinweis auf seinen Schweregrad und einen Link, um weitere Informationen auf der Snyk-Website zu erhalten.

Erweiterte Scans

docker scan hat viel mehr Funktionalität als das grundlegende Beispiel oben. Sie können das Verhalten des Scans mit mehreren Flags anpassen.

Das wohl nützlichste Flag ist --file . Dies nimmt den Pfad zum Dockerfile des Bildes . Wenn Sie Snyk ein Dockerfile zur Verfügung stellen, kann es eine detailliertere Analyse basierend auf dessen Inhalt durchführen. Einige Scanfunktionen, wie die Erkennung veralteter Basisbilder, sind nur verfügbar, wenn Sie das Dockerfile Ihres Bildes bereitstellen .

docker scan hello-world:latest --file Dockerfile

Dies erzeugt eine Ausgabe ähnlich der folgenden:

Tested 100 dependencies for known issues, found 50 issues.

According to our scan, you are currently using the most secure version of the selected base image.

Die letzte Zeile gibt an, ob Ihr Basisbild – der FROM Anweisung in Ihrem Dockerfile – ist sicher. Alternative Tag-Vorschläge werden angezeigt, wenn das Bild veraltet ist oder Sicherheitslücken enthält, die inzwischen behoben wurden.

Manchmal möchten Sie vielleicht einen Scan ausführen, der Schwachstellen in Ihrem Basis-Image ignoriert. Übergeben Sie --exclude-base Flagge, um dies zu erreichen. Dies ist hilfreich, wenn das Basisimage viele Probleme mit geringem Schweregrad enthält und kein Upgrade-Pfad verfügbar ist. Das Ausschließen des Rauschens hilft Ihnen, sich auf die lösbaren Probleme in Ihren Bildebenen zu konzentrieren.

Anpassen der Scanausgabe

docker scan akzeptiert einige verschiedene Formatierungsoptionen. Bisher haben wir die Standardausgabe gesehen. Probleme werden in Ihrem Terminal als für Menschen lesbare Liste angezeigt.

Übergeben von --json flag weist den Befehl an, das empfangene Roh-JSON auszugeben. Dies ist ideal, wenn Sie docker scan verwenden programmgesteuert in CI-Skripten oder Tools von Drittanbietern. Sie können den JSON-Code selbst verarbeiten, um nur die Informationen zu extrahieren, die Sie benötigen.

Eine weitere Option ist --dependency-tree . Dadurch wird eine Baumansicht der Abhängigkeiten Ihres Images über der Liste der Schwachstellen ausgegeben. Dies kann Ihnen dabei helfen, zu visualisieren, wie verschiedene Pakete eingezogen werden, und lässt Sie feststellen, wo Probleme auftreten.

Schließlich können Sie den --severity verwenden -Flag, um unerwünschte Schwachstellen herauszufiltern. Verwenden Sie low , medium , oder high um den Schweregrad anzugeben, an dem Sie interessiert sind. Der Befehl meldet nur Schwachstellen, die auf oder über dem angegebenen Level liegen.

Einschränkungen

docker scan derzeit fehlt die Unterstützung für Alpine Linux-Distributionen. Darüber hinaus weist die Plugin-Version 0.7 einen schwerwiegenden Fehler auf, der dazu führt, dass lokale Scans mit dem Fehler „Bild nicht gefunden“ fehlschlagen. v0.7 kann nur Images scannen, die in Docker Hub und anderen öffentlichen Registrierungen vorhanden sind. Das Problem wurde in v0.8 behoben, aber v0.7 bleibt die Version, die mit Docker-Releases unter Linux weit verbreitet ist.

Abgesehen von technischen Problemen legt der Snyk-Dienst strenge Ratenbegrenzungen für Ihre Verwendung von docker scan fest . Sie können jeden Monat 10 Scans kostenlos durchführen. Wenn Sie sich mit Snyk anmelden, erhöht sich das auf 200 Scans pro Monat.

Führen Sie docker scan --login aus um Ihre eindeutige Anmelde-URL zu erhalten. Kopieren Sie es in Ihren Browser und folgen Sie den Anweisungen, um sich zu authentifizieren. Sie können sich über Docker Hub oder mehrere Drittanbieter anmelden. Sobald Sie angemeldet sind, wird eine Schaltfläche „Authentifizieren“ angezeigt. Klicken Sie hier, um zu Ihrem Terminal zurückzukehren. Sie sollten die Meldung „Snyk ist jetzt einsatzbereit“ sehen.

Zusammenfassung

Das integrierte Image-Scanning von Docker erleichtert das Auffinden und Beheben von Container-Schwachstellen. Jeder Entwickler mit Zugriff auf die Docker-Befehlszeilenschnittstelle und ein Container-Image kann jetzt nach Schwachstellen scannen, ohne in eine Registry pushen zu müssen.

Regelmäßige Scans helfen Ihnen, Ihre Container vor potenziellen Bedrohungen zu schützen. Veraltete Basisimages und Schwachstellen in Abhängigkeiten wirken sich erheblich auf Ihre Sicherheitslage aus, können jedoch leicht unbemerkt bleiben. docker scan gibt Ihnen mehr Vertrauen in Ihre Container, indem Probleme aufgedeckt werden, die Sie sonst übersehen hätten.


Docker
  1. So verwenden Sie FIND unter Linux

  2. So verwenden Sie den Docker-Inspect-Befehl

  3. So ändern Sie Docker-Images

  4. So konfigurieren Sie Docker für die Verwendung von Proxy

  5. Wie verwende ich lokale Docker-Images mit Minikube?

So signieren Sie Ihre Docker-Images, um das Vertrauen zu erhöhen

So verwenden Sie Docker Scan, um Schwachstellen in Ihren Bildern zu finden

So bereinigen und löschen Sie Docker-Images

So erstellen Sie Docker-Images in einer GitLab-CI-Pipeline

So verwenden Sie Docker Commit zum Ändern von Container-Images

So installieren und verwenden Sie Docker in Ihrem Linux-System