Zum Hauptinhalt Zur Navigation

Linuxcon und Containercon 2016: Viele Container laufen in einer Sandbox-VM

Container wie von Docker oder CoreOS sind schlank und vielseitig einsetzbar, haben aber immer noch große Probleme mit der Sicherheit. Auf der Linux- und Containercon 2016 zeigt sich, dass viele Anbieter die Container inzwischen wieder in VMs einsperren. Klingt absurd, hat aber Vorteile.
/
1 Kommentare News folgen (öffnet im neuen Fenster)
Container sind ein bestimmendes Thema im Linux-Umfeld - das zeigt sich auch an der Deko auf der LinuxCon. (Bild: Linux Foundation)
Container sind ein bestimmendes Thema im Linux-Umfeld - das zeigt sich auch an der Deko auf der LinuxCon. Bild: Linux Foundation / CC-BY 2.0

Container sind beliebt, unter anderem weil sie so wenige Ressourcen verbrauchen. Selbst auf bescheideneren Servern lassen sich deutlich mehr Container unterbringen als klassische virtuelle Maschinen (VM). Die Folge ist ein wachsender Industrietrend: Alle wollen Container anbieten, so auch Intel.

Intel ist Vorreiter

Der Anbieter setzt bereits seit 2015 auf Clear Containers , denn "Container sind unglaublich beliebt in der Cloud-Welt" , wie es auf der Webseite(öffnet im neuen Fenster) heißt. Wer genau hinschaut, sieht aber schnell, dass es sich nicht direkt um Container mit Betriebssystem-Virtualisierung handelt, sondern um klassische Hypervisor-basierte virtuelle Maschinen, in denen Container laufen. Ja, das sei ein etwas unglücklich gewählter Name, gibt der Mann am Intel-Stand zu.

Die häufig als Container bezeichneten isolierten Prozesse nutzten Cgroups(öffnet im neuen Fenster) , Namespaces(öffnet im neuen Fenster) und weitere Funktionen des Kernels auf dem Hostrechner. Da sich die Container letztlich den Kernel des Hosts teilen, entsteht im Serverbereich ein Sicherheitsrisiko. Nutzt ein bösartiger Containerbetreiber eine Sicherheitslücke im Kernel aus, kann er womöglich auf die anderen Container zugreifen.

Intels Clear Containers stecken deswegen in virtuellen Maschinen, die ein Minimal-OS namens Clearlinux antreibt. Dafür nutzt das Unternehmen die hauseigene Virtualization Technology(öffnet im neuen Fenster) (VT). Das schützt die Container, erhöht aber auch den Fußabdruck im System. Letzteres sei leider so, erklärt Matthew Garrett, der sich bei Core OS um die Sicherheit kümmert. Wer mehr Sicherheit wolle, müsse mit Leistungseinbußen leben.

Die VM unter dem Container

Containerseitig hat Intel seine Clear-Container-Technologie auch für Rkt implementiert, die Containerlösung von Core OS. Bereits seit Version 0.8(öffnet im neuen Fenster) , die im August 2015 erschien, gibt es eine alternative Stage 1, die Rkt-Container virtualisiert. Daneben erwähnt Garrett noch die Fly Stage 1, mit der sich Anwendungen auf dem Host mit sämtlichen Privilegien betreiben lassen. Sie bieten also keinerlei Sicherheit. Wer Container jedoch nur intern verwende, ohne Zugang zum Internet, könne durchaus auf die schützenden Sandboxes verzichten, erklärt Garrett.

Auch klassische Virtualisierungsprojekte wie Xen unterstützen die Containerlösung Docker. Laut Community-Manager Lars Kurth bringt der Xenserver das dafür entworfene Mini OS(öffnet im neuen Fenster) mit, ein winziger OS-Kernel, den das Projekt zusammen mit den Hypervisor-Quellen verteilt. Es dient als Betriebssystem für sogenannte Stub Domains(öffnet im neuen Fenster) und als Basis für die Entwicklung von Unikerneln. Solche Kernel sind extrem klein und bieten gerade genug Betriebssystemfunktionen für die darauf laufenden Applikationen an.

Zuvor hatte das Xen-Projekt Mirage OS entwickelt, ebenfalls ein Unikernel-basiertes OS. Anfang 2016 allerdings kaufte Docker Unikernel Systems , das für die Entwicklung von Mirage OS zuständig war. Mittlerweile bietet Docker für die Mac-Version seiner Software im Paket mit Hypervisor-Technologie an, die auch Unikernel-Technik nutzt. Konkret startet mit Hyperkit(öffnet im neuen Fenster) ein leichtgewichtiger Hypervisor, der sich in Apples Hypervisor-Framework von MacOS einklinkt. Er ruft ein eingebettetes Linux auf, das wiederum die aktuelle Version der Docker Engine ausführt. Auch hier kommt also eine eher klassische Virtualisierung zum Einsatz.

Container versus Virtualisierung ist somit vereinfacht eine Entscheidung entweder für Leistung oder für Sicherheit. Ein Vorteil des Virtualisierungsansatzes dürfte sein, dass sich Container einfacher in bestehende Virtualisierungs-Setups integrieren lassen. Matthew Garrett von Core OS sieht den Mischansatz jedenfalls eher pragmatisch. Er glaubt, Container bieten eine Reihe anderer Vorteile, etwa die einfache Distribution, so dass die Performance ein wenig in den Hintergrund treten kann.


Relevante Themen