tostphoto - stock.adobe.com

Container-Sicherheit: Risiken und Schwachstellen minimieren

Dass Container zur Bereitstellung von Anwendungen immer beliebter werden, ist auch Angreifen bewusst. Daher sollten Unternehmen die Angriffsfläche möglichst gering halten.

Die Nutzung von Containern hat in Unternehmen rasant zugenommen. Und dafür gibt es durchaus gute Gründe: Der Trend zu DevOps und die zeitnahe Bereitstellung von Code profitiert deutlich von der Verwendung von Containern. Und auch das Thema Cloud passt technologisch prima zum Einsatz von Containern. Entwickler können im Vergleich zu virtuellen Maschinen die Bereitstellungszeit für Anwendungen verkürzen und zudem sparsamer mir Rechen- und Speicherressourcen umgehen.

Die Portabilität der Container macht sie zudem zu einer interessanten Technologie für den Einsatz bei Migrationen in Multi-Cloud-Umgebungen. Bei all den Vorteilen von Containern darf die Sicherheit bei deren Einsatz jedoch nicht auf der Strecke bleiben. Nachfolgend haben wir einige Best Practices zusammengefasst.

Denn sowohl die Container selbst als auch zugehörige Orchestrierungswerkzeuge können Sicherheitsverantwortlich im Hinblick auf Schwachstellen durchaus Kopfzerbrechen bereiten. Mit der zunehmenden Nutzung von Containern kommt es auch immer zu Sicherheitsvorfällen in Unternehmen, die damit in Verbindung stehen. Bei Tesla gab es 2018 ein Problem mit einer nicht genügend gesicherten Konsole des Orchestrierungswerkzeuges. Und bei Shopify, einer E-Commerce-Plattform, wurde eine Schwachstelle von einem White Hat Hacker im Rahmen eines Bug-Bounty-Programms entdeckt. Der Sicherheitsforscher konnte dabei in betrügerischer Absicht Kontrolle über den Container-Cluster erlangen.

Container und Orchestrierungswerkzeuge

Für den Aspekt der Sicherheit ist es wichtig, sich die Funktionsweise von Containern noch einmal zu vergegenwärtigen. In der Regel handelt es sich bei einem Container um eine Softwareumgebung, die eine Anwendung nebst zugehörigen Binärdateien sowie die notwendigen Bibliotheken enthält, nicht aber das Betriebssystem. Bei der Containervirtualisierung werden Applikation auf einem gemeinsamen Betriebssystem voneinander isoliert. Bei der Container-Engine ist üblicherweise von Docker die Rede, obwohl natürlich auch andere Umsetzungen des Container-Ansatzes existieren. So unterstützten aktuelle Windows Server beispielsweise Docker, wie auch eigene Windows Server Container, die nicht Docker-basiert sind.

Ganz ähnlich wie eine virtuelle Maschine (VMs) handelt es sich bei einem Container um eine Softwareumgebung, in der Anwendungen ausgeführt werden. Ein großer Unterschied zwischen Container und VM besteht darin, dass dem Container das Betriebssystem-Image fehlt. Ein VM beinhaltet eine komplette Instanz eines Betriebssystems, einschließlich Kernel, Treiber und freigegebener Bibliotheken. Der Container beinhaltet nur den Anwendungscode und die erforderlichen Bibliotheken und umfasst nur eine Teilmenge von Betriebssystemdiensten.

Bei der Bereitstellung und Verwaltung von Containern verlassen sich Admins üblicherweise auf entsprechende Orchestrierungswerkzeuge. Mit diesen Werkzeugen kümmert man sich um Wartung, Bereitstellung und Betrieb der Container. Hier dürfte Kubernetes zweifelsohne zu den populären Lösungen gehören. Diese Werkzeuge bestehen aus einer ganzen Reihe von Komponenten wie etwa einem API-Server und Überwachungs-Tools, um den Zustand der Container im Blick zu behalten. Mit Hilfe von Orchestrierungswerkzeugen lassen sich zudem Container-Images erstellen, speichern und verwalten. Die Images bilden die Grundlage für die Erstellung bestimmter Container.

Die Orchestrierungslösung ist das zentrale Steuerungssystem für Container. Und genau das macht sie zu einem begehrten Angriffsziel für Hacker. Wer Zugriff auf die Orchestrierung erhält, kann alle zugehörigen Container gefährden. Und natürlich können Angreifer auch einzelne Container als Ziel anvisieren.

Schwachstellen und Angriffsziele bei Containern

Die meisten Schwachstellen bei Containern und Orchestrierung sind keine unbekannten Größen für Sicherheitsexperten. Im Gegenteil, es sind die klassischen Probleme, die für Risiken bei Anwendungen und Betriebssystemen sorgen. Und dazu gehören die folgenden vier Kategorien:

Zugriff und Autorisierung: In den beiden eingangs erwähnten Beispielen bei Tesla und Shopify waren die Probleme sowohl auf Zugriff als auch auf Autorisierung zurückzuführen. Bei Tesla war Kubernetes aufgrund eines Konfigurationsfehlers nicht ausreichend gesichert. Im Falle von Shopify konnten sich Hacker unbefugten Zugriff auf den API-Server verschaffen. Entwickler müssen daher bei jeder Anwendung und jedem Betriebssystem besonders auf die Konfiguration und Absicherung des gesamten Systems achten. Zugriffsrechte müssen geregelt sein und selbstverständlich müssen Sicherheits-Updates zeitnah eingespielt werden.

Zugriff auf den API-Server: Die zentrale Rolle des API-Server ist allein Grund genug, sich sehr sorgfältig um die Regelung des Zugriffs und die Autorisierung für den API-Server zu kümmern. Der API-Server ist eine Art automatisiertes Frontend für die Orchestrieren. Man kann dies als eine Art Haustür betrachten, die so konfiguriert ist, dass nur bestimmten Anwendungen zulässt, die über die richtigen Anmeldeinformationen verfügen. Gefälschte oder manipulierte Zugangsdaten können dazu führen, dass diese Tür weit geöffnet wird und Zugang zu den Containern ermöglicht wird. Auf dem Schutz des API-Servers sollte daher ein besonderer Fokus liegen.

Schwachstellen bei Images: Die Images sind die Basis, aus denen die Container gebaut werden. Image können mit Malware infiltriert sein, so dass aus diesen Images „vergiftete“ Container erzeugt werden, die Schaden anrichten können. Clevere Hacker können zudem die Orchestrierungslösung so austricksen, dass diese Images nicht als schädlich erkannt werden. Sowohl die Container Registry als auch die Datenbanken der gespeicherten Container können ebenfalls so manipuliert werden, dass entsprechende Images nicht einfach entdeckt werden können. Es ist daher von Bedeutung, jegliche Änderungen an Containern erkennen zu können, dies ist ebenso wichtig wie die Verwaltung der Container an sich.

Netzwerk-Traffic zwischen Containern: Obwohl sie prinzipiell in sich geschlossen sind, kommunizieren Container miteinander. Typischerweise über eine verschlüsselte Verbindung. Wenn jedoch ein Container kompromittiert ist, kann diese verschlüsselte Verbindung dafür sorgen, dass eine Seitwärtsbewegung mit weniger redlicher Absichten unter Umständen nicht erkannt wird.

Weitere Container-Schwachstellen: Informationen zu weiteren potentiellen Schwachstellen bei Containern finden sich in der NIST-Publikation SP800-190. Wie bereits erwähnt, handelt es sich dabei meist jedoch um Standardschwachstellen, die für die meisten Sicherheitsexperten keine Überraschung darstellen dürften. Hier tauchen diese lediglich im Kontext von Containern und Orchestrierung auf.

Best Practices für die Containersicherheit

Sicherheitsverantwortliche und Entwickler sollten Hand in Hand arbeiten. Security-Teams sollten sich mit den Entwicklern zusammensetzen und den Stand der Container- und Orchestrierungssicherheit während des gesamten Softwarelebenszyklus sicher zu stellen. Zu diesem Lebenszyklus gehört Planung, Analyse, Entwicklung, Bereitstellung und auch die Stilllegung der Anwendung beziehungsweise des Containers. Das gesamte Team sollte sich über die Schutzmaßnahmen und die Reduzierung der Angriffsfläche einig sein. Größere Unternehmen können eventuell auch ein entsprechendes Bug-Bounty-Programm aufsetzen, um Schwachstellen aufspüren zu lassen.

Darüber hinaus sollten sich Sicherheitsverantwortliche die Zeit und auch das Budget nehmen, um in spezielle Werkzeuge zu investieren, die sich speziell mit der Sicherheit von Containern und Orchestrierung beschäftigen. Ganz exemplarisch seien hier Anbieter wie Tenable, NeuVector, Aqua Security Software, Capsule8, Layered Insight, StackRox, Tigera und Twistlock genannt. Unabhängig davon, welche Lösung sich am Besten für Ihr Unternehmen eignet, das Thema Containersicherheit sollte in jedem Fall gesondert im Budget berücksichtigt werden.

Zweifelsohne bieten Container sowohl für Entwickler als auch für die Bereitstellung von Anwendungen große Vorteile. Und ganz genauso bergen sie Sicherheitsrisiken. Es empfiehlt sich, proaktiv vorzugehen, um Schwachstellen zu erkennen und die Angriffsfläche zu verringern. Nutzen und budgetieren Sie Technologien und Abläufe, um die Umgebungen in Ihrem Unternehmen entsprechend zu schützen.

Nächste Schritte

Gratis-eBook: Container sicher einsetzen

Container-Repositories als Sicherheitsrisiko

Sicherheitsrisiken bei Containern reduzieren

Erfahren Sie mehr über Anwendungs- und Plattformsicherheit