Matthew Garrett: "Mit Containern ist besser als ohne"
Sobald zwei oder mehr Prozesse auf einem Server laufen, sei es sinnvoll, diese in einzelnen Containern auszuführen, sagt der bei dem Containerspezialisten CoreOS(öffnet im neuen Fenster) für die Sicherheit verantwortliche Entwickler Matthew Garrett auf der Linuxcon Europe. Denn die Sicherheit sei "mit Containern immer besser als ohne" .
Garrett führt dies auf die von Containern genutzte Technik des Linux-Kernels zurück. So sorgten die Namensräume(öffnet im neuen Fenster) und Controlgroups ( Cgroups(öffnet im neuen Fenster) ) bereits für eine starke Isolation. Pro Container gebe es eine unabhängige Sicht auf das Dateisystem, ebenso gebe es unabhängige Prozessbäume. Angreifer könnten also nicht auf die Dateien oder Prozesse von anderen Containern zugreifen. Die Cgroups beschränken dabei sehr detailliert den Zugriff eines Prozesses auf die CPU, RAM sowie I/O-Operationen.
Dies sei schon Vorteil genug, zum Beispiel einen Webserver-Daemon sowie eine dazugehörige Datenbank in je einen Container zu packen, so Garrett. Natürlich sei dies aber nur eine optimale Annahme der Realität, schließlich müsse von vorhandenen Fehlern ausgegangen werden, welche dieses System schwächen. Entsprechend müssten weitere Vorkehrungen getroffen werden.
Alte Werkzeuge sind wenig an Container angepasst
Dafür stehen seit längerem verschiedene Möglichkeiten bereit, die bereits für den Linux-Kernel eingesetzt werden. So sollten etwa bestimmte Zugriffe eines Containers eingeschränkt werden. Möglich sei dies etwa mit Seccomp, wodurch Systemaufrufe eines laufenden Prozesses unterbunden werden können. Dies bezeichnet Garrett aber als "ziemlich stumpfe" Methode.
So werde damit etwa auch verhindert, bestimmte Fähigkeiten des Prozesses im Betrieb zu verändern und somit zurückzuschalten. Darüber hinaus sei es sehr schwer, gute Richtlinien für die Verwendung von Seccomp(öffnet im neuen Fenster) zu schreiben und diese zusätzlich auch noch auf Container auszuweiten.
Eine ähnliche Argumentation führt Garrett für Selinux(öffnet im neuen Fenster) auf. Zwar könne damit erreicht werden, dass Prozesse in eigenen Kontexten liefen und nur auf Dateien in diesen Kontexten zugreifen könnten. Doch die Regeln dafür seien sehr kompliziert. Außerdem ließen sich nur Selinux-Regeln für den Host erstellen, welche von den Containern übernommen würden. Spezifische Regeln pro Container seien aber zurzeit nicht möglich.
Künftige Herausforderungen
Garrett fordert deshalb, die bestehenden Systeme deutlich zu verbessern und diese für den Einsatz mit Containern anzupassen. Dies wird wohl unvermeidlich werden. Doch er führt auch Möglichkeiten auf, die Sicherheit von Containern zu erhöhen, die sich zukünftig breiter einsetzen lassen könnten.
So erwähnt der Entwickler etwa Clearlinux von Intel , das eine Art minimaler virtueller Maschine erstellt, in der dann wiederum die Container laufen. Dies ermögliche eine stärkere Isolation und bessere Abstraktion von der Hardware als allein die Containertechnologie. Dabei werden aber nicht viel mehr Ressourcen benötigt.
Die Firmen, die Containertechnologie erstellen und vertreiben, sollten zudem überlegen, einige Patches aus der Grsec-Sammlung(öffnet im neuen Fenster) wieder aufzugreifen und diese eventuell sogar im Hauptzweig des Linux-Kernels zur Verfügung zu stellen, so Garrett. Diese Ansätze werden wohl aber noch einige Zeit bis zur Umsetzung benötigen.
- Anzeige Hier geht es zu Docker: Das Praxisbuch für Entwickler und DevOps-Teams bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.



