GP - Fotolia

Interview mit Mark Russinovich und Solomon Hykes zur Docker-Security

Docker sieht sich immer wieder Sicherheitsbedenken ausgesetzt. Mark Russinovich und Solomon Hykes erklären im Interview, was Windows anders macht.

Docker und Microsoft wollen den Hype rund um Linux-Container mit Windows Server 2016 auch auf die Windows-Plattform bringen. Im ersten Teil unseres Interviews mit Docker-CTO Solomon Hykes und Mark Russinovich, Microsoft Azure CTO, gaben beide einen Einblick in die Portierung der Docker-Tools zu Windows, auf den Einfluss der Container-Virtualisierung auf Windows-Verkaufszahlen und in den wachsenden Wettbewerb rund um die Container-Orchestrierung.

In diesem zweiten Teil diskutieren sie die immer wieder gestellten Fragen zur Container-Sicherheit, wie sich Sicherheitsbedrohungen begegnen lässt und was die Zukunft für die Docker-Microsoft-Partnerschaft noch bereithält.

Immer wieder hört man Fragen hinsichtlich der Sicherheit von Container-Umgebungen, sind diese Bedenken noch immer gerechtfertigt? Was muss hier noch getan werden?

Solomon Hykes, Mitgründer
und CTO, Docker Inc.

Solomon Hykes: Es gibt da draußen natürlich viel Getöse rund um die Sicherheit von Docker und Linux-Container. Meiner Erfahrung nach braucht man da schon einen gewissen Filter, um tatsächlich technische Diskussionen von zufälligen Worthülsen unterscheiden zu können, mit denen den Anwendern Angst gemacht werden soll.

In diesem Zusammenhang sollte man vor allem wissen, dass ungefähr 90 Prozent der Hauptarbeit gar nicht bei Docker auf der tiefen Ebene der Grundbausteine erledigt wird, sondern auf dem zugrundeliegenden Betriebssystem.

Die größten Probleme mit all den Horrorgeschichten habe ich deshalb, weil es selten tatsächlich um die Sicherheit von Docker, sondern meist um die Sicherheit von Linux-Containern und dem spezifischen Betriebssystem geht. Abhängig von den unterschiedlichen Systemen, die mit Docker orchestriert werden, erhält man so eine völlig andere Sichtweise auf diese Sicherheitsprobleme.

Nachdem Docker bisher nur für Linux-Hosts verfügbar war, dreht sich bei der Sicherheitsfrage derzeit alles um die Isolierung von Linux-Container. Das ist an sich auch eine gute Sache, mehr Augen sehen schließlich auch mehr. Jetzt erweitern wir aber die möglichen Betriebssysteme um Windows, und das verändert die Sicherheitsfrage fundamental und macht eine völlig neue Sicherheitsanalyse erforderlich – und die wird, da bin ich mir sicher, sehr positiv ausfallen.

Abgesehen davon würde ich sagen, dass IT-Security immer aus mehreren Schichten besteht, und eine dieser wichtigen Security-Schichten ist ein verbessertes Management, also bessere Einblicke in die konkreten Vorgänge. Die Vorteile automatisierter Bereitstellungen und besserer Steuerungsmöglichkeiten über unterschiedliche Maschinen und Container ist enorm vorteilhaft für die Sicherheit.

Welche Rolle spielt Microsoft bei all den Sicherheitsfragen?

Mark Russinovich: Die Frage nach der Sicherheit bei der Container-Virtualisierung ist enorm breit angelegt und sollte sehr spezifisch beantwortet werden, je nachdem ob es um das Management von Containern oder darum geht, welcher Code in den Containern ausgeführt wird.

Mit Windows Server 2016 veröffentlichen wir auch zwei unterschiedliche Arten von Containern, je nachdem welche Art Code in den Containern ausgeführt werden soll und wie die Vertrauensbeziehung innerhalb und zwischen den Containern aussieht. In unserer Azure-Cloud haben wir beispielsweise Multitenant-PaaS-Dienste (Platform as a Service), die Code unserer Kunden hosten. Wir nennen dies eine feindliche Multitenant-Umgebung, weil wir einfach davon ausgehen müssen, dass der Code schädliche Elemente enthält – obwohl das natürlich nicht der Fall sein muss. Das Level an Isolation ist in diesem Fall extrem hoch.

Mark Russinovich, CTO
Microsoft Azure

Natürlich vertrauen wir Hyper-V als eine der Sicherheitsschranken, und deshalb bietet Azure IaaS- (Infrastructure as a Service) und PaaS-Dienste, mit denen Kunde A die virtuelle Maschine A und Kunde B die virtuelle Maschine B nutzt. Wir haben dabei kein Problem, beide virtuellen Maschinen auf dem gleichen Server laufen zu lassen, weil wir der Sicherheit unseres Hypervisors vertrauen.

Bei Windows-Server-Containern ist das Maß der Isolation nicht groß genug, wenn nicht-vertrauenswürdiger Code von zwei unterschiedlichen Parteien in der gleichen virtuellen Maschine ausgeführt werden soll. Beide teilen sich den Betriebssystem-Kernel, was eine große Angriffsfläche bietet und bei erfolgreichen DoS-Angriffen (Denial of Service) oder einer Rechteausweitung den Ausbruch aus dem Container ermöglichen kann. Damit ließe sich unter Umständen Zugriff auf andere Container oder den Container-Host erlangen.

An dieser Stelle kommen Hyper-V-Container ins Spiel, die im Grunde mit den gleichen Vorgaben wie Hyper-V-VMs entwickelt wurden. Jeder Container erhält darin seine eigene Kopie des Windows-Betriebssystems, eines, das für den Einsatz in Containern optimiert wurde und sich des Ausführens innerhalb eines Containers auch bewusst ist. Genau da würden wir den anfangs erwähnten „feindlichen“ Multitenant-Code ausführen, um eine hohe Isolation zu erreichen.

Bei den Containern mag es sich um unterschiedliche Arten handeln, aber die APIs sind bei beiden Typen die gleichen, was die Entscheidung für den ein oder anderen Container-Typ wesentlich erleichtert. Egal ob Entwickler oder Administrator, beide haben die Wahl zwischen Hyper-V- und Windows-Server-Container. Es gibt absolut keinen Unterschied im Code, bei der Applikation oder im Image, beim Deployment muss lediglich ein anderes Häkchen gesetzt werden.

Hykes: Das ist ein perfektes Beispiel dafür, wie sich Sicherheitsbedenken zerstreuen lassen. Bei Docker gehen wir ja nicht her und versuchen zu erklären, wie die Sicherheit bei Windows oder Linux am besten gewährleistet wird. Unser Job ist es vielmehr, als Partner von Plattformanbietern wie Microsoft die verschiedenen Sicherheitsprofile zu verstehen, um dann Entwicklern bei der Implementierung zu helfen.

In dem von Mark gerade erwähnten Beispiel würde das bedeuten, in Abhängigkeit vom Vertrauensprofil der Applikation Entwicklern verschiedene Optionen an die Hand zu geben. Handelt es sich um eine Umgebung, in der die Workloads von der gleichen vertrauenswürdigen Partei kommen, oder aber von einer nicht-vertrauenswürdigen dritten Partei?

Nehmen wir an, Sie wären Kunde und gleichzeitig Plattformanbieter. In diesem Fall wollen wir über das Docker-Interface einen einfachen Weg für informierte Entscheidungen ebnen. Damit haben wir meiner Meinung nach die Möglichkeit, aktuellste Sicherheitstechnologien nicht durch neue Funktionen, sondern durch eine bessere Nutzbarkeit vorhandener Funktionen zu verbessern. Idealerweise nutzen diese Funktionen dann auch mehr Anwender, was wohl immer noch einen der größten Flaschenhälse ausmacht.

Es gibt großartige Technologien da draußen, die nur viel zu wenig genutzt werden – weil sie zu umständlich oder zu schwer zu finden sind. Genau hier kann eine Partnerschaft große Vorteile bieten.

Müssen Kunden auch in weiteren Bereichen mit Änderungen im Vergleich zu Linux-Umgebungen rechnen?

Russinovich: Anwendungskompatibilität bei Windows Server und dann natürlich die Auswahl der Vertrauenslevel. Es geht aber nicht um die Unterschiede, es geht um plattformübergreifend gemeinsame Tools, um Container auf Windows Server bereitzustellen.

Man hört auch oft die Forderung, Microsoft sollte doch Docker einfach kaufen. Was sagen Sie denn dazu?

Hykes: Naja sowas hört man ja eigentlich immer wenn eine Partnerschaft gut läuft. Ich denke das ist ein gutes Zeichen.

Russinovich: Da würde ich zustimmen.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+ und Facebook!

Erfahren Sie mehr über Cloud Computing

ComputerWeekly.de

Close