Maßnahmen für bessere Docker-Sicherheit

Labile Container

Mit dem Erfolg von Containertechniken wie Docker geht das ungute Gefühl mancher Sicherheitsverantwortlicher einher, sich ein neues Einfallstor gefährlicher Malware einzuhandeln. Obwohl die Sorge grundsätzlich berechtigt ist, gibt es Ansätze, um die Gefahren einzudämmen. Einigen Problemquellen wie den Zugriffen auf das Dateisystem hat sich der Docker-Anbieter bereits angenommen, doch ihre Umsetzung leidet noch an Kinderkrankheiten.
Das Storage-Management und die Virtualisierung der Speicherumgebung stehen im Mittelpunkt der November-Ausgabe des IT-Administrator. Denn längst sind die ... (mehr)

Laufen mehrere Workloads auf einem Server, isoliert die Containertechnik Docker sie voneinander, sodass die einzelnen Anwendungen voneinander nichts mitbekommen. Das realisiert Docker durch eine Reihe von Bordmitteln, die der Linux-Kernel mitbringt. Der Namespace-Mechanismus sorgt dafür, dass ein eigener Namensraum für jeden Container bereitsteht. Damit kann es mehrere Prozesse mit der gleichen PID geben, jeder Container kann seinen eigenen Hostnamen vergeben oder individuell seine Netzschnittstellen konfigurieren. Wenn Anwender Garantien für einen bestimmten Anteil der Systemressourcen wie CPU, Speicher oder Netzbandbreite benötigen, kontigentiert Docker diese mit dem Cgroup-Mechanismus.

Selbstverteidigung des Kernels

Dennoch laufen im Containerbetrieb alle Instanzen auf dem gleichen Kernel. Namespaces und Cgroups sorgen innerhalb des Kernels dafür, dass die Isolation aufrechterhalten wird. Um aber auch für Notfälle gewappnet zu sein, kann Docker zusätzlich die Frameworks AppArmor, SELinux und Seccomp einsetzen. Alle drei Subsysteme sind eine Art Firewall für Kernelressourcen: Mittels AppArmor reglementiert Docker den Zugriff der Container auf bestimmte Pfade im Dateisystem [1], mit SELinux lässt sich ein komplexes Regelsystem für vielerlei Komponenten einrichten [2] und Seccomp überwacht den Aufruf von Systemcalls, quasi das Eingangsportal der Anwendungen in den Kernelspace [3]. Ergänzend nutzt Docker die Linux-Capabilities, um die Rootrechte etwas einzuschränken, mit denen die Docker-Engine Container startet [4].

Während Docker einen Basis-Support für AppArmor, Seccomp und die Capabilities seit der Engine-Version 1.10 bereits von Haus aus mitbringt, kümmert sich Subsystem-Betreuer Dan Walsh mit seinem Team bei Red Hat im Rahmen des Project Atomic um den Schutz mittels SELinux. Daher ist diese Funktion nicht bei jeder Docker-Installation aktiviert.

...

Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Loadtests ohne Server

Für Loadtests der eigenen Server bietet sich die Cloud an, denn kurz getaktet lassen sich dort viele Rechnerinstanzen starten, die das eigene Budget nur wenig belasten. Noch flexibler, günstiger und besser skalierbar sind Tests mit einer Serverless-Infrastruktur wie AWS Lambda. Wir führen vor, wie Sie dort mit Serverless Artillery eigene Loadtests starten. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Container

Wie setzen Sie Container ein?

  • Gar nicht
  • Docker standalone
  • Docker mit Kubernetes
  • Docker mit Swarm
  • Docker mit anderem Management
  • LXC/LXD
  • Rocket
  • CRI-O auf Kubernetes
  • Container auf vSphere
  • Andere (siehe Kommentare auf der Ergebnisseite)

Google+

Ausgabe /2018

Microsite