Protect ya Container!

Wie sichert man Container? Von der Sicherheit der Daten im DevOps-Zeitalter

Rami Sass

© Shutterstock / MAGNIFIER

Container sind ein notwendiger Bestandteil moderner Technologien geworden. Doch was genau sind Container eigentlich und über welche Sicherheitsrisiken sollten sich Unternehmen bewusst sein? In diesem Artikel geht Rami Sass, xy, auf die Grundlagen der Container-Technologie sowie auf die Zukunft von DevSecOps ein.

Die Container-Technologie tauchte praktisch auf jeder Technologie-Trends-Hitliste der vergangenen Jahre auf. Es kann also mit ziemlicher Sicherheit gesagt werden, dass Container nicht so schnell von der Bildfläche verschwinden werden. Amazon, Google, IBM und Microsoft sind nur ein paar der großen „Player“, die diese Virtualisierungstechnologie wirkungsvoll einsetzen. Viele benutzen in dem Zusammenhang Docker, die führende Plattform für das Management von Containern.

Jetzt stellt sich nur die Frage, warum Container so attraktiv für Unternehmen der IT-Branche sind. Über welche Sicherheitsrisiken sollte sich die technische Führung im Klaren sein, bevor sie den Einsatz dieser neuen Technologie für ihre Unternehmen in Betracht ziehen? Diesen und weiteren Fragen wollen wir nachgehen.

Das 1×1 der Container

Die Container-Technologie ist allerdings nicht so neu, wie es uns all die Top-10-Listen glauben machen wollen. Tatsächlich ist die Technologie schon seit Jahrzehnten in Unix-Betriebssystemen verfügbar.

Die Container-Technologie stellt durch die Bündelung von Anwendungen eine Sandbox-Umgebung für Applikationen bereit, in denen diese ausgeführt werden können. Ihre Abhängigkeiten sind in einer Einheit, die leicht verschickt, deployt und ausgeführt werden kann, isoliert von anderen Prozessen. Jeder Container kapselt eine laufende Applikation und deren User Space ein und wird auf dem unterliegenden Betriebssystem-Kernel ausgeführt.

Als Resultat kann ein Container unabhängig vom Host verteilt und deployt werden, so lange der Kernel des Betriebssystems gleich bleibt. Container befreien Entwickler von komplizierten Aufgaben, wie dem Management von Abhängigkeiten und der Notwendigkeit, komplexe Umgebungen manuell einrichten zu müssen. Das Ergebnis ist ein schnellerer und zuverlässigerer Entwicklungs- und Deployment-Prozess.

Das hört sich stark nach Virtueller Maschine an

Es mag sich so anhören, als wäre dieser Prozess dem Betrieb von virtuellen Maschinen sehr ähnlich. Allerdings bündeln Container nicht das gesamte Betriebssystem, so wie es virtuelle Maschinen machen. Das macht Container wesentlich schlanker und schneller als virtuelle Maschinen.

Ein Hardware-Setup, das nur ein paar wenige Dutzend virtueller Maschinen unterstützt, kann oftmals Hunderte von Containern in Betrieb nehmen. Der typische Container lädt innerhalb von Millisekunden, ganz im Gegensatz zu den Sekunden oder gar Minuten, die eine virtuelle Maschine dafür benötigt.

DevOpsCon Whitepaper 2018

Free: 40+ pages of DevOps expert knowledge

Learn about Containers,Continuous Delivery, DevOps Culture, Cloud Platforms & Security with articles by experts like Kai Tödter (Siemens), Nicki Watt (OpenCredo), Tobias Gesellchen (Europace AG) and many more.

Wie steht es um die Sicherheit?

Die Container-Technologie verspricht leichtere Entwicklungs- und Deployment-Prozesse. Doch während Container im Vergleich zu nicht-virtualisierten Umgebungen mehr Isolation bieten, bieten sie dennoch weniger Isolation und Schutz als es virtuelle Maschinen tun.

Daher sollten sich Organisationen, die Container einsetzen wollen, ebenfalls über die verschiedenen Aspekte in Sachen Sicherheit bewusst sein.

Anfällige Container Images

Images sind ein grundlegender Bestandteil der Container-Technologie sowie einer der Gründe für deren Attraktivität. Entwickler können ein Image erstellen oder es aus mehreren Open Source Repositorys herunterladen. Das ist der Punkt, an dem es schwierig wird. Während die einfache Erstellung und das Herunterladen von Images ein Teil dessen ist, was Container zu einem so automatisierten und flexiblen Prozess macht, können die Images Sicherheitslücken oder sogar bösartigen Code enthalten.

Entwicklungsteams müssen die Images während des gesamten Entwicklungs- und Lebenszyklus kontinuierlich verfolgen, um sicherzustellen, dass sie keine Schwachstellen enthalten bzw. die Schwachstellen beheben, wenn sie entdeckt werden.

Die Zugangskontrolle im Blick behalten

Die Root-Privilegien innerhalb eines Containers sollten mit äußerster Sorgfalt vergeben werden. Sie sollten nur denjenigen Benutzern zur Verfügung gestellt werden, die sie zur Ausführung bestimmter Aufgaben benötigen. Eine Best Practice ist es, diese je Task zu gewähren. Das minimiert die Zahl der Konten, die im unglücklichen Fall eines bösartigen Angriffs, kompromittiert sind.

Durch den Root-Zugriff auf einen Container können Hacker möglicherweise mehr Container oder sogar das Betriebssystem erreichen. Aus diesem Grund sollten Organisationen, Systemadministratoren und DevOps-Teams strenge Richtlinien für die Zugriffskontrolle erstellen. Sie sollten sicherstellen, dass sie während des gesamten Entwicklungsprozesses durchgesetzt werden.

Das Sicherheitsmanagement automatisieren

Die Tage von DevSecOps sind angebrochen.

Um auch weiterhin den Überblick über die Container-Sicherheit zu behalten, ist es unerlässlich, dass die richtigen Werkzeuge und Verfahren eingesetzt werden. Container an sich stellen zwar keine neue Technologie dar, aber ihre aktuelle Verbreitung hingegen ist Neuland. Viele Organisationen und Entwicklungsteams setzen Container-Technologien ein, ohne ihre Einstellungen und Ansätze zur Sicherheit während des gesamten Entwicklungsprozesses anzupassen.

Container erfordern einen DevSecOps-Ansatz. Für diesen ist es entscheidend, dass die Sicherheit bereits in den ersten Phasen des Entwicklungs- und Lebenszyklus mit den dementsprechend Werkzeugen und Richtlinien verfolgt und berücksichtigt wird. Die Anwendung dieses Ansatzes könnte einiges an Änderungen für Entwicklerteams bedeuten. Diese mögen auf den ersten Blick unangenehm erscheinen, aber Veränderung ist selten angenehm.

Es gibt jedoch schon heute sehr viele Tools für die Automatisierung und CD/CI, die Teams helfen, alle Phasen und Aspekte in Sachen Container-Sicherheit zu managen. Somit können die Vorteile der Technologie genutzt werden, ohne sich um manuelle Sicherheitskontrollen kümmern zu müssen.

Container-Sicherheit verstärken und die Show genießen

Mit Containern können Entwicklungsteams ihre Anwendungen einfacher handhaben und bereitstellen, sodass sie innovative und stabile Produkte schneller deployen können. Wenn Unternehmen jedoch die Leistungsfähigkeit der Container-Technologie wirklich nutzen wollen, müssen sie in neue Sicherheitspraktiken investieren. Das betrifft die automatisierten Tools, die verwendet werden, bis hin zu den Richtlinien, die zu einem früheren Zeitpunkt des Entwicklungs- und Lebenszyklus eingeführt wurden.

Die Investition in kontinuierliche Sicherheitsmanagementprozesse während des Entwicklungszyklus‘ wird es Unternehmen ermöglichen, vielversprechende virtuelle Technologien zu nutzen und dabei sicher zu bleiben.

Geschrieben von
Rami Sass

Rami Sass ist CEO und Mitbegründer von WhiteSource. Er ist ein erfahrener Manager und Unternehmer, mit großer Erfahrung in der Identifikation innovativer Produkte und der Führung von Technologiegruppen sowie wachsenden Unternehmen, von der Gründung bis hin zur Geschäftsbereitschaft. Vor der Gründung von WhiteSource, gründete und leitete Sass das Unternehmen „Testology“, zuvor leitete er die Entwicklung bei CA sowie auch die für Eurekify (von CA übernommen). Sass hat einen Master in Wissenschaften und einen BA in Informatik.

Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: