Container Security Hardening: Capabilities, seccomp, AppArmor/SELinux

Die Sicherheit von Containern ist ein zentrales Thema, wenn Anwendungen produktiv betrieben werden. Container laufen standardmäßig mit vielen Linux-Funktionen, die in unkontrollierten Szenarien ein Sicherheitsrisiko darstellen können. Ein strukturiertes Hardening umfasst das gezielte Einschränken von Capabilities, die Nutzung von seccomp-Profilen und Mandatory Access Control Mechanismen wie AppArmor oder SELinux. Dieser Leitfaden zeigt praxisnah, wie Sie…

Read-only Root Filesystem: Best Practices und typische Breakages

Ein read-only Root Filesystem ist eine bewährte Sicherheitsmaßnahme für Container, um unbeabsichtigte Änderungen am System zu verhindern und die Angriffsfläche zu minimieren. Durch die Einschränkung des Root-Dateisystems auf nur-Lese-Zugriff wird das Risiko von Manipulationen an kritischen Systemdateien stark reduziert. Gleichzeitig kann dies jedoch zu Problemen führen, wenn Anwendungen Schreibzugriffe auf Pfade im Root-Filesystem erwarten. In…

Drop all Capabilities: Minimal-Privilege Profiles in der Praxis

Das Prinzip des Minimal-Privilege Designs ist ein zentraler Bestandteil moderner Container-Security-Strategien. In Docker bedeutet dies insbesondere, dass Container nur die Fähigkeiten (Capabilities) erhalten, die sie für ihre Funktion benötigen. Standardmäßig erben Container eine Vielzahl von Linux-Capabilities, die in vielen Szenarien nicht erforderlich und potenziell riskant sind. Durch das explizite Droppen aller nicht benötigten Capabilities („drop…

Seccomp Profiling: Eigene Profile erstellen und testen

Seccomp (Secure Computing Mode) ist ein zentrales Werkzeug für die Absicherung von Containern unter Linux. Es ermöglicht die Kontrolle, welche Systemaufrufe ein Prozess ausführen darf. Standardmäßig nutzt Docker ein vordefiniertes Seccomp-Profil, das die meisten kritischen Syscalls blockiert, aber noch genügend Funktionen für typische Container-Workloads erlaubt. Eigene Seccomp-Profile bieten die Möglichkeit, diese Kontrolle feingranular an spezifische…

AppArmor Profile für Compose: Service-spezifische Policies

AppArmor ist ein Mandatory Access Control (MAC) System unter Linux, das Prozesse restriktiv auf Dateisystem-, Netzwerk- und IPC-Zugriffe beschränkt. Für Container ermöglicht AppArmor die Definition von Service-spezifischen Policies, um die Angriffsfläche zu minimieren und potenziell gefährliche Aktionen zu verhindern. In Kombination mit Docker Compose können so differenzierte Sicherheitsprofile pro Service eingesetzt werden, ohne den gesamten…

SELinux + Container: Labels, Volumes und Troubleshooting

SELinux (Security-Enhanced Linux) ist ein Mandatory Access Control (MAC) Framework, das in modernen Linux-Distributionen wie RHEL, CentOS und Fedora integriert ist. Für Container-Umgebungen bietet SELinux die Möglichkeit, Prozesse strikt zu isolieren, Dateizugriffe zu kontrollieren und unbefugte Interaktionen zwischen Containern oder zwischen Host und Container zu verhindern. In Kombination mit Docker oder Podman ist ein tiefes…

Docker Network Troubleshooting: tcpdump in Namespaces und veth Debugging

Netzwerkprobleme in Docker-Umgebungen sind oft komplex, da Container eigene Netzwerk-Namespaces nutzen, veth-Paare erzeugen und Docker-interne NAT-Regeln anwenden. Um Connectivity-Probleme, Paketverluste oder Latenzen zu analysieren, sind Tools wie tcpdump und das Debugging von veth-Interfaces essenziell. Dieses Tutorial erklärt, wie Sie Netzwerktraffic in Container-Namespaces überwachen, typische Fehlerquellen erkennen und systematisch debuggen können. 1. Docker Netzwerk-Namespaces verstehen Jeder…

Docker Socket Exposure: Threat Model und sichere Alternativen

Der Docker Daemon Socket (/var/run/docker.sock) ist die primäre Schnittstelle, über die Docker-Clients mit dem Docker-Daemon kommunizieren. Das direkte Mounten dieses Sockets in Containern wird häufig verwendet, um Container-Management-Tools oder CI/CD-Runner Zugriff auf den Host-Docker zu gewähren. Allerdings birgt diese Praxis erhebliche Sicherheitsrisiken, da ein Container mit Zugriff auf den Socket volle Root-Rechte auf dem Host…

MTU & Fragmentierung in Overlay: PMTUD Blackholes verhindern

Overlay-Netzwerke in Docker, insbesondere in Swarm- oder Multi-Host-Setups, bringen eine zusätzliche Schicht zwischen den Containern und dem physischen Netzwerk mit sich. Diese Virtualisierung erhöht die Komplexität, wenn es um MTU und Fragmentierung geht. Falsch konfigurierte MTU-Werte können zu PMTUD (Path MTU Discovery) Blackholes führen, wodurch Pakete verschwinden, Verbindungen hängen bleiben und TCP-Streams einfrieren. Dieses Tutorial…

Image Vulnerability Scanning: CVEs priorisieren statt nur zählen

Die Sicherheitsbewertung von Container-Images ist ein zentraler Bestandteil moderner DevOps- und Cloud-Native-Strategien. Viele Teams neigen dazu, einfach die Anzahl der gefundenen CVEs (Common Vulnerabilities and Exposures) zu zählen, um den Sicherheitszustand eines Images zu beurteilen. Dieses Vorgehen ist jedoch trügerisch: Nicht alle Schwachstellen sind gleich kritisch, und die reine Zahl liefert kein präzises Risiko- oder…