English English French French Spanish Spanish German German
Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Der einfachste Weg, Schwachstellen in Docker-Images mit Snyk . zu finden

Docker-Bilder snyk
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

Snyk ist ein Editor, der sich auf die Analyse von Schwachstellen im Code von Infrastrukturkonfigurationsdateien spezialisiert hat, einschließlich derjenigen, die in Containern und Anwendungspaketen vorhanden sind.

Snyk bietet eine Cloud-Plattform zuerst, aber es bietet verschiedene Produkte an.

Snyk-OpenSource integriert sich über die CLI des Editors in einen Git-Flow. Nach dem Start erkennt die Software Schwachstellen, klassifiziert sie nach Sensibilitätsgrad und korrigiert automatisch bekannte Sicherheitsfehler. Diese Funktionalität kann in den Pull-Request-Zyklus integriert werden, um auf Code angewendet zu werden, der an Repositorys gesendet wird.

Snyk-Infrastruktur als Code hingegen analysiert die Schwachstellen und behebt sie im JSON und YAML Kubernetes Konfigurationsdateien. Hier können Sie mit einer Rules-Engine die Empfindlichkeit von Erkennungen in Git-Repositorys gemäß den von den Administratoren festgelegten Parametern konfigurieren.

Snyk-Container erlaubt Ihnen zu testen Andockbilder und zugehörige Register zum Zeitpunkt ihrer Erstellung und danach. Das Programm kann in CLIs, SCMs, CI-Tools, Container-Registrys und Kubernetes integriert werden.

Snyk-Container

Heute werden wir sehen, wie wir Snyk Container verwenden können, der in Docker integriert ist, um Schwachstellen zu erkennen.

Sample docker file

Das erste, was Sie benötigen, um mit Snyk Schwachstellen zu erkennen, ist ein Docker-Image. In diesem Beispiel verwenden wir das folgende Docker-Image:

FROM python:3.4-alpine
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
EXPOSE 8000 CMD
[“python”, “app.py”]

Als erstes müssen wir das Image lokal mit dem folgenden Befehl generieren:

docker build -t 0xyz0/python-app.

Jetzt haben wir ein Bild zu analysieren.

Scan the image from the Docker client

Die Integration des Snyk-Dienstes mit Docker macht diesen Vorgang unglaublich einfach. Um den Scan zu starten, müssen Sie nur Folgendes ausführen:

docker scan 0***0/python-app

Dies beginnt mit der Analyse, die je nach gefundener Schwachstelle eine mehr oder weniger umfangreiche Ausgabe liefert, und mit einer abschließenden Zusammenfassung:

Docker-Scan zeigt alle Schwachstellen des Images an  

Wie Sie sehen, erfahren Sie nicht nur, wie viele Schwachstellen es gefunden hat. Selbst wenn Sie nach oben scrollen, können Sie sehen, was sie sind und ihre Kritikalität, aber es auch macht Empfehlungen bezüglich des Basis-Images, das Sie verwenden sollten.

Sie können die Details der Schwachstelle auch im Snyk-Sicherheitslückendatenbank.

In meinem Fall bietet es mir mehrere Alternativen, daher werde ich mein Dockerfile mit der ersten Option ändern:

FROM python:3.7.11-slim

ADD . /code

WORKDIR /code

RUN pip install -r requirements.txt

EXPOSE 8000

CMD ["python", "app.py"]

Wenn ich das Image neu erstelle und scanne:

docker build -t 0***0/python-app . && docker scan 0***0/python-app

Sie werden sehen, dass die Ausgabe jetzt weniger Schwachstellen aufweist und in diesem Fall anzeigt, dass Sie derzeit das sicherere Basis-Image verwenden:

Der Docker-Scan stellt sicher, dass Sie das sicherste Basis-Image verwenden

Sie können auch einen detaillierteren Bericht erhalten, wenn Sie dem Befehl die Docker-Datei hinzufügen, die das Bild generiert:

docker scan -f Dockerfile 0***0/python-app

Und schließen Sie sogar das Basisbild von der Analyse aus, falls Sie sich auf das konzentrieren möchten, was Sie falsch gemacht haben:

docker scan -f Dockerfile --exclude-base 0***0/python-app

Dieser Dienst kann auch in die Docker Hub-Repositorys integriert werden:

Dafür müssen Sie jedoch eines der kostenpflichtigen Abonnements haben. Sie können es jedoch lokal starten, mit dem kostenlosen Plan, den Sie nur für die Anmeldung bei Docker Hub haben (es gibt klare Scanbeschränkungen), während Sie ein Drittanbieter-Image entwickeln oder überprüfen möchten, wie sicher Sie es möchten verwenden.

Using Snyk with Github Actions

Als erstes müssen Sie ein Repository erstellen und darin einen Ordner erstellen.

.github / worflows /

Um Snyk Container in Github zu verwenden, erstellen Sie als nächstes ein neues Image oder nehmen Sie das Image, das wir in Docker Hub erstellt haben. Um Snyk zu verwenden, müssen Sie ein neues Geheimnis namens . erstellen SNYK_TOKEN, und um den Token zu erhalten, müssen Sie ein Konto bei Snyk erstellen. In den Allgemeinen Einstellungen, wo API-Token steht, können Sie es schnell generieren.

Mit dem Token können Sie das Geheimnis auf Github erstellen und in der Aktion verwenden. Jetzt müssen Sie ihm den Namen des Repositorys übergeben, das in Docker Hub erstellt wurde. Als nächstes müssen Sie die zu sendende Nachricht übergeben. Sie können auf die Ausgaben der Schritte zugreifen, um sie als Variable in der Nachricht zu verwenden.

with:
args: 'A new commit has been pushed. Please verify github action:
| worflow $ {{fromJson (steps.repo.outputs.result) .html_url}} / actions
| Exec: $ {{steps.prep.outputs.created}}
| Version: $ {{steps.prep.outputs.version}} '

Wie wird der gesamte Workflow ausgeführt? Ganz einfach, indem Sie Master drücken. Github Action erkennt die Datei in .github / workflows /.

Schlussworte

Mit der zunehmenden Popularität von Containern treten immer häufiger Vorfälle von Sicherheitsverletzungen auf, von denen die meisten auf Fehlkonfigurationsfehler bei der Bereitstellung der Container zurückzuführen sind. Snyk bietet ein effizientes und unkompliziertes Tool, das uns helfen kann, Fehlkonfigurationsfehler zu vermeiden und die häufigsten Schwachstellen in . zu erkennen Andockbilder.

Danke an unsere Sponsoren
Weitere großartige Lektüre zu DevOps
Macht Ihr Geschäft
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder