Zum Inhalt springen

Docker/Sicherheit

Aus Foxwiki

Docker/Sicherheit - Beschreibung

Beschreibung

Kein Sicherheitsgewinn

Durch Container hat man im Gegensatz zu herkömmlichen VMs keinen Sicherheitsgewinn

  • die im Container laufende Software wird direkt auf dem Host-Betriebssystem ausgeführt

Sicherheitsaspekte

Root-Rechte

Docker-Container werden durch einen Daemon erzeugt, der in der Vergangenheit zwingend root-Rechte haben musste, ab Version 19.03 unter bestimmten Umständen aber auch unprivilegiert sein kann

  • Läuft der Daemon mit root-Rechten, bedient man sich oft einer eigenen Nutzergruppe, um auch unprivilegierten Nutzern die Erzeugung neuer Docker-Container zu erlauben
Unprivilegierten Nutzer

Ein möglicher Fallstrick besteht darin, dass alle unprivilegierten Nutzer, die Mitglied einer solchen Nutzergruppe sind, indirekt über volle root-Rechte auf dem Host-System verfügen

  • Die alternative Software für Containervirtualisierung Podman verzichtet auf dieses Sicherheitsrisiko, ist zu Docker kompatibel und angepasst auf Kubernetes
Format

Die Open Container Initiative spezifiziert ein Format zur Containervirtualisierung

  • Da es sich um eine internationale und offene Spezifikation handelt, kann prinzipiell jeder diese implementieren
  • So sind sicherere Alternativen zu Docker entstanden, zu denen man vorhandene Images oder Container migrieren kann – etwa containerd oder Podman
  • Trotz Standardisierung gibt es kleinere Unterschiede, etwa im Speicherort von Container und Images
Unterschiede zu Virtuellen Maschinen

Im Unterschied zu einer Virtuellen Maschine teilen sich Container und Host einen gemeinsamen Betriebssystem-Kernel

  • Dies verbessert einerseits die Leistung erheblich, vergrößert andererseits aber auch das Risiko, dass erfolgreiche Angriffe gegen den Kernel auch den Host kompromittieren

Bei richtiger Konfiguration sind selbst root-Rechte innerhalb eines Docker-Containers nicht dazu geeignet, um den Host anzugreifen

  • Insbesondere sollte dazu ein neuer User Namespace erzeugt und der root-Benutzer des Containers auf einen unprivilegierten Benutzer des Hosts abgebildet werden

Ressourcentrennung

Da die Ressourcentrennung alleine mit den Docker zugrunde liegenden Techniken wie Namespaces und Cgroups nicht völlig sicher ist

  • hat das Unternehmen Red Hat Unterstützung für die sicherheitsrelevante Kernel-Erweiterung SELinux implementiert
  • welche die Container auf der Ebene des Host-Systems zusätzlich absichert

Anwendung

Problembehebung

Konfiguration

Dateien

Datei Beschreibung


Anhang

Siehe auch



Dokumentation

Projekt

  1. https://docs.docker.com/engine/security/