Skip to main content

Container sicher handhaben

Artikel von
Headshot of Tales Casagrande

Tales Casagrande

feature safe containers

22. Juni 2022

0 Min. Lesezeit

Dieser Beitrag wurde verfasst von Tales Casagrande, einem Snyk Ambassador. Snyk Ambassadors teilen mit Begeisterung ihr Security-Know-how. Werden Sie noch heute Mitglied und melden Sie sich an!

In der Schifffahrt folgt das Containerformat der Norm ISO 668, die ein Standardformat für das sichere Stapeln von Containern festlegt.

Stellen Sie sich Ihre Anwendungen mit mehreren Containern vor, in denen verschiedene Anwendungen laufen und die Menschen auf der ganzen Welt unterschiedlichen Zwecken dienen.

Container-Sicherheit für Software

Moderne Software unterscheidet sich kaum von einem Schiff. Wir „stapeln“ mehrere Microservices in Projekten, Teams sind für die Entwicklung und Sicherheit der Umgebung verantwortlich, und wenn jemand einen kritischen Fehler macht, kann alles verloren gehen. Betrachten wir Container aus Sicht von Entwicklung und Security.

  • Vertrauen Sie dem Image, das Sie in die Produktion überführen? Ist seine Herkunft zuverlässig?

  • Führen Sie Security-Tests durch, um mögliche Sicherheitsprobleme aufzudecken?

  • Wie priorisieren Sie die Behebung von Problemen?

  • Enthält Ihr Base-Image nur das absolute Minimum, das Ihre Anwendung benötigt?

  • Hält Ihr Entwicklungsteam sich über Best Practices auf dem Laufenden?

  • Unterstützt Ihr Security-Team Sie während der Entwicklung oder sucht es erst nach Schuldigen, wenn eine Sicherheitslücke entdeckt wird?

Wenn Sie nicht alle Fragen beantworten können, ist das kein Problem! Lesen Sie weiter, ich gebe Ihnen ein paar Tipps.

Beginnen Sie Ihre Analyse mit Snyk Container

Hier geht es darum, Barrieren zwischen Security- und Entwicklungsteams abzubauen und beide dabei zu unterstützen, Schwachstellen in Containern anhand von Kriterien zu priorisieren, statt riesige Berichte zu erstellen.

Als Beispiel verwenden wir das snyk-goof-Repo. Es enthält eine absichtlich verwundbare Anwendung zu Testzwecken (die nicht für den Einsatz in Produktionsumgebungen empfohlen wird). Wir analysieren diese Anwendung mit Snyk Container. Das Tool bietet eine einfache und effektive Möglichkeit, die Behebung von Schwachstellen zu automatisieren, und hilft Entwicklern, sich auf Probleme zu konzentrieren.

Erstellen Sie zunächst ein Konto (kostenlos!). Wenn Sie bereits eines haben, melden Sie sich einfach an. Navigieren Sie zu Projekte > Projekt hinzufügen.

Menü zum Hinzufügen eines Projekts mit den Optionen GitHub, Docker Hub, CLI und Weitere; „Öffentliche GitHub-Repositories überwachen“ ist hervorgehoben
Snyk-Oberfläche zur Überwachung eines öffentlichen GitHub-Repositorys mit snyk/snyk-goof und einer Schaltfläche „1 Repository importieren“

Beachten Sie, dass es einige Minuten dauern kann, bis die Analyseergebnisse unter Ihrem neu importierten Projekt angezeigt werden. Snyk kann Code, Bibliotheken und Container analysieren. Heute konzentrieren wir uns auf Container.

Snyk-Projekt-Dashboard mit Codeanalyse-Ergebnissen für eine Dockerfile und package.json, einschließlich Schweregradangaben und Datum der letzten Tests

Sehen Sie sich das Dockerfile an. Würden Sie einen Container mit kritischen Problemen in der Infrastruktur auf hoher See transportieren? Wohl kaum! Stellen wir uns ein paar Fragen:

  • Wo können wir anfangen?

  • Welche Priorität haben die einzelnen Probleme?

Berücksichtigen Sie bei der Erstellung Ihres Plans Folgendes:

  • Könnte jemand diese Schwachstellen ausnutzen?

  • Gibt es im Internet bereits bösartigen Code (einen bestehenden Exploit), mit dem sich diese Schwachstelle ausnutzen lässt?

  • Spricht jemand in den sozialen Medien über die Schwachstelle?

  • Gibt es eine Lösung?

Jeder Schwachstelle wird vom Common Vulnerability Scoring System (CVSS) ein Score zugewiesen. In die Berechnung fließen Kriterien wie Angriffsfläche, Angriffskomplexität, erforderliche Benutzerinteraktion und benötigte Berechtigungen ein.

Dashboard zu Sicherheitslücken mit Ergebnissen zu den Paketen OpenSSL und curl, einschließlich Schweregrad, Bewertungen, Exploit-Status und behobener Versionen.

Snyk Container liefert zahlreiche hilfreiche Informationen zu jeder Schwachstelle.

Sicherheitslücken-Panel mit einer kritischen Directory-Traversal-Schwachstelle in python3.5-minimal, mit CVE-2019-9948 und einer Version des Pakets mit behobenem Fehler.

In diesem Beispiel geht es um ein einzelnes Image. Stellen Sie sich aber vor, Sie betrachten das Ganze im großen Maßstab. Wie sähe es aus? Anhand der obigen Fragen können wir eine Baseline erstellen.

Tabelle mit Empfehlungen für Basis-Image-Upgrades, die Node.js-Images anhand der Anzahl und Schwere von Schwachstellen vergleicht.

Dieses Bild zeigt die Empfehlungen von Snyk Code für Upgrades des Base-Images. Diese Upgrades verringern das Risiko und ersparen uns die Zeit, die wir sonst mit der Suche nach einem anderen Base-Image (oder dem Versuch eines Upgrades) verbringen würden.

Dieselbe Analyse mit der Snyk CLI ausführen

Ich habe meine Analyse über die grafische Benutzeroberfläche durchgeführt. Entwicklungsteams arbeiten jedoch häufig auf der Kommandozeile oder in ihrer IDE. Bauen wir also die Hürde einer weiteren Anmeldung ab und führen wir dieselbe Analyse mit der Snyk CLI durch.

Gehen Sie in der Snyk-Konsole zu Integrationen > CLI und folgen Sie den Schritten für Ihre Umgebung. Verwenden wir dasselbe Projekt: snyk-goof.

Terminal mit abgeschlossenem Git-Klon des GitHub-Repositorys snyk-goof; Objektübertragung und Dateiaktualisierung sind zu 100 % abgeschlossen.

Erstellen wir nun das Image.

Terminal mit erfolgreichem Docker-Build einer Node.js-Anwendung, einschließlich zwischengespeicherter Build-Schritte und des Image-Namens library/java-goof

Jetzt kommt der spannende Teil! Starten wir die Analyse über die CLI.

Terminal mit dem Befehl „snyk container test snyk-goof“ und einer Meldung zur Analyse der Container-Abhängigkeiten für snyk-goof
Terminalausgabe mit 1.033 gefundenen Schwachstellen in einem Node.js-Basis-Image sowie Empfehlungen für ein Upgrade und alternative Image-Typen.

Die Testergebnisse in der Konsole und in der CLI unterscheiden sich geringfügig, da ich an unterschiedlichen Tagen getestet habe. Die Analyse mit der Snyk CLI liefert jedoch dieselben Empfehlungen für Upgrades des Base-Images.

Der Vorteil einer kennzahlenbasierten Analyse

Ständig treten neue Schwachstellen auf. Wir können nicht jedes Mal innehalten, um alle Probleme zu beheben. Wir müssen priorisieren, automatisieren und uns dort konzentrieren, wo die Auswirkungen am schwerwiegendsten sein könnten. Eine kennzahlenbasierte Analyse beseitigt das Rauschen zwischen Teams und hilft Ihnen, schnell Wege zu finden, Ihre Container sicher zu verwalten.

Container-Sicherheit mit Fokus auf Entwickler

Snyk findet und behebt automatisch Schwachstellen in Container-Images und Kubernetes-Workloads.

Weiterlesen

blog feature snyk container custom base recommendations
Blog

Evo Agentic AppSec: Sicherheit, die mit der KI-Entwicklung Schritt hält

KI-gestützte Entwicklung ist schneller als herkömmliche Sicherheitsabläufe. Snyks Agentic AppSec setzt Sicherheitsagenten ein, um Schwachstellen kontinuierlich zu finden, zu beheben und zu überprüfen – während Menschen die Maßstäbe festlegen.

feature insights context
Blog

Autonome Angriffe sind bereits Realität. Die Verteidigung muss Schritt halten.

Autonome Angreifer verkürzen das Zeitfenster für die Verteidigung. Erfahren Sie, wie kontinuierliches Erkennen, Beheben, Validieren und Verhindern Sicherheitsteams helfen kann, Schritt zu halten.

feature insights context
Blog

Ist Prävention im Grunde ein gelöstes Problem?

Die Prävention in von Agenten generiertem Code ist architektonisch gelöst – die Herausforderung besteht jedoch weiterhin darin, Kontrollen zu wählen, die die Sicherheit schützen, ohne die Entwicklung zu verlangsamen.