So sichern Sie Ihre Docker-Deployments
Docker oder Linux-Container im Allgemeinen werden für den produktiven Einsatz immer beliebter. Wie sich Bedenken bei der Sicherheit ausräumen lassen, erklärt Mike Pittenger, Vice President of Product Strategy, bei Black Duck Software im Gastbeitrag für silicon.de
Container werden sich in den kommenden Jahren wohl immer stärker durchsetzen. Doch es bleiben Sicherheitsbedenken. Aus einer von Red Hat im Juni 2015 durchgeführten Umfrage unter nahezu 400 IT-Fachleuten geht hervor, dass 67 Prozent der Befragten in den nächsten beiden Jahren Docker-Deployments planen. Gleichzeitig hat der Großteil der Befragten große Vorbehalte hinsichtlich der Sicherheit und in Bezug auf fehlende Herkunftsangaben von Zertifikaten und Images.
Technologien für Anwendungscontainer wie Docker stellen effiziente, virtuelle und mandantenfähige Infrastrukturen zur Verfügung, die in herkömmlichen IT-Umgebungen und in der Cloud genutzt werden können. Neben anderen Vorteilen eignet sich Docker ideal für CI/CD (Continuous Integration/Continuous Delivery), einer Strategie zur Beschleunigung von Entwicklungspraktiken und zur Optimierung von Entwicklungs- und Produktionsumgebungen.
Doch der Einsatz von Docker und anderen Anwendungscontainern bringt Risiken mit sich. Das betrifft vor allem Softwareschwachstellen innerhalb von Anwendungskomponenten in Docker-Containern. Durch die Geschwindigkeit und Einfachheit mit der sich Docker-Container konfigurieren und bereitstellen lassen, können enthaltene Fehler schnell große Auswirkungen haben. In dynamischen IT-Umgebungen lassen sich Fehler extrem schwer verfolgen und administrieren.
Ohne Tools zur Verwaltung der Sicherheit von Docker-Deployments riskieren Unternehmen und Institutionen Angriffe auf ihre Anwendungen und Daten. Daher sollten einige Sicherheitsaspekte berücksichtigt werden:
Zertifizierung und Herkunft der Container
Vor dem Deployment sollte sichergestellt sein, dass der gesamte Anwendungscode im Container aus einer bekannten und vertrauenswürdigen Quelle stammt. Sechzig Prozent der von Red Hat befragten IT-Fachleute sehen in der fehlenden Container-Zertifizierung eine Hürde bei der Einführung der Docker-Plattform. Docker beruht im Wesentlichen auf einer Vertrauensbeziehung zwischen den Herausgebern und den Container-Hosts, wobei die Übertragung des Images von einem Registrierungsserver auf einen Container-Host als Vertrauensbeweis gewertet werden kann.
Wenn keine Systeme vorhanden sind, die die Inhalte von Container-Images prüfen, können kompromittierte oder bösartige Container-Images, die über ein Repository wie Docker Hub angeboten werden, in arglose und daher verwundbare Umgebungen geraten. Docker hat deshalb bereits bestimmte Maßnahmen zur Stärkung der Rechenschaftspflicht (Accountability) ergriffen. Docker Content Trust nutzt hierzu Public Key Kryptographie. Mit ihnen können Herausgeber Docker-Container “signieren” und übernehmen so die Verantwortung für die Integrität des darin enthaltenen Codes. Andere Projekte, wie Notary und The Update Framework (TUF), werben mit den gleichen Leistungen für nicht geprüfte Herausgeber, die Docker-Images veröffentlichen möchten.
Container-Management über den gesamten Lebenszyklus der Anwendung hinweg
Da sich in Container-Anwendungen beispielsweise alterungsbedingt Sicherheitsschwachstellen auftun können, ist es wichtig einen Prozess zur Bewertung der Sicherheit von Container-Anwendungen über den gesamten Lebenszyklus hinweg zu implementieren.
In Containern bereitgestellte Anwendungen können Daten oder Konfigurationseinstellungen enthalten, die entweder unsicher oder nicht mit den aktuellen Anwendungen in der Netzwerkumgebung synchronisiert sind. So wurde ein Fall bekannt, bei dem eine bekannte Crowdfunding-Webseite einen Docker-Container mit einem darin enthaltenen aktivierten Entwicklungs-Debugger für ihre webbasierte Refinanzierungsplattform in Produktion nahm. Damit öffnete sich den Angreifern ein bequemes Tor zur Ausführung bösartiger Programmcodes auf dem betroffenen System.
Die einfache Zusammenstellung und Bereitstellung von Docker-Anwendungscontainern aus verschiedenen Layern hat eben auch ihre Kehrseite: Schwachstellen, Fehlkonfigurationen oder Fehler in einer der Schichten können sich schnell über mehrere Anwendungen reproduzieren.
Schwachstellen in Container-Images identifizieren und beheben
Es muss sichergestellt werden, dass Container-Inhalte nicht schwerwiegende und ausnutzbare Sicherheitslücken einschleusen.Die Verifizierung eines Container-Herausgebers gewährleistet nicht, dass die Softwareanwendung oder die zugehörigen Dateien im Container keine Sicherheitsschwachstellen aufweisen. In Containern können sich veraltete oder unsichere Komponenten befinden, insbesondere wenn das zugrundeliegende Betriebssystem nicht auf dem aktuellsten Stand ist.
Aus verschiedenen Umfragen geht hervor, dass Sicherheitsschwachstellen in Docker-Images keine Seltenheit sind. So wurden mehrere Images im Docker Hub, also dem zentralen Repository für Docker-Entwickler, auf dem Container-Images bereitgestellt und abgerufen werden, überprüft.
Dabei wurde festgestellt, dass mehr als 30 Prozent der offiziellen Repositories Images enthielten, die gegenüber Angriffen auf bekannte Schwachstellen, wie Shellshock, HeartBleed und Poodle als “in hohem Maße verwundbar” eingestuft wurden. Zudem enthielten 40 Prozent der “allgemeinen” Images auf Docker (also Images, die nicht explizit von einer zuverlässigen Quelle verifiziert wurden), bekannte und ausnutzbare Sicherheitslücken.
Mit anderen Worten: Für Unternehmen und Institutionen, die Docker nutzen wollen, gilt: Vertrauen ist gut, Kontrolle ist besser. Sie müssen also in gutem Glauben auf den Herausgeber des gewünschten Containers vertrauen können und verifizieren, dass die Inhalte des Containers keine bedrohlichen und ausnutzbaren Sicherheitslücken in ihre Umgebung reißen, die das ganze Unternehmen gefährden könnten.
Die Vorteile von Docker nutzen und gleichzeitig die Sicherheit gewährleisten
Die Sicherung eines Containers beginnt mit der Transparenz der Inhalte (oder Softwares-Layers). Nur wer die Open-Source-Komponenten und -Versionen kennt, kann beurteilen, ob Sicherheitsschwachstellen vorhanden sind. Diese Informationen müssen auch während der gesamten Bereitstellungsdauer des Containers auf dem aktuellen Stand bleiben, damit auf neu erkannte Risiken geprüft werden kann. Eine solide Lösung für ein sicheres Management der Container-Infrastruktur beruht auf Transparenz, Identifizierung und Nachverfolgung in Verbindung mit der entsprechenden Richtlinienverwaltung und Orchestrierungstechnik: Wenn sich Unternehmen an diese Maßnahmen halten, ist ihre Container-Infrastruktur sicher und verlässlich verwaltet.
Über den Autor
Mike Pittenger ist als Vice President of Security Strategy bei Black Duck Software für die strategische Ausrichtung von Sicherheitslösungen zuständig. Black Duck hat sich auf die Sicherung von Open-Source-Software im Unternehmen spezialisiert. Hierzu werden die verwendeten Open-Source-Komponenten identifiziert und mit aktuell bekannten Sicherheitsschwachstellen abgeglichen.