Zum Inhalt springen

Hardening Maßnahmen

Neben der Mount-Strategie werden die Container zusätzlich durch verschiedene Docker- und Linux-Sicherheitsoptionen eingeschränkt.

Diese Maßnahmen reduzieren die Angriffsfläche und begrenzen die Auswirkungen fehlerhafter oder kompromittierter Container.


Container erhalten standardmäßig alle Linux Capabilities. Diese werden bewusst entfernt, um unnötige Kernel-Zugriffe zu verhindern.

compose.yml

cap_drop:
- ALL

Damit stehen dem Container nur noch die minimal notwendigen Rechte zur Verfügung.


Die Option no-new-privileges verhindert, dass Prozesse innerhalb des Containers zusätzliche Rechte erhalten.

compose.yml

security_opt:
- no-new-privileges=true

Dies schützt vor Mechanismen zur Rechteausweitung und ist unabhängig von der Vermeidung privilegierter Container.


Ein read-only Root Filesystem verhindert Änderungen am Container-Dateisystem.

compose.yml

read_only: true

Dadurch sind Schreibzugriffe nur noch über explizite Mounts möglich. Diese Maßnahme reduziert persistente Seiteneffekte und erhöht die Isolation.


Die maximale Anzahl gleichzeitig laufender Prozesse kann begrenzt werden.

compose.yml

pids_limit: 512

Dies schützt vor unkontrollierter Prozess-Erzeugung.


Ein Init-Prozess innerhalb des Containers sorgt für korrektes Prozesshandling.

compose.yml

init: true

Dadurch werden Zombie-Prozesse vermieden und Signale korrekt weitergeleitet.


Einzelne Container können vollständig ohne Netzwerk betrieben werden.

compose.yml

network_mode: none

Dies wird beispielsweise für Initialisierungs-Container verwendet, die keinen Netzwerkzugriff benötigen.


Container laufen nach Möglichkeit nicht als root Benutzer.

compose.yml

user: node

Dies reduziert die Auswirkungen möglicher Sicherheitsprobleme innerhalb des Containers.