18 Seccomp, SELinux, AppArmor und Capabilities

18.1 Sicherheit als Schichtung – nicht als Featureliste

Container basieren nicht auf einem einzelnen Schutzmechanismus, sondern auf einem Zusammenspiel mehrerer Kernel-Funktionen. Jede dieser Funktionen deckt einen anderen Aspekt ab: Syscall-Filterung, objektbasierte Zugriffskontrolle, profilbasierte Einschränkungen und die Zerlegung von Root-Rechten in einzelne Fähigkeiten. Erst die Kombination ergibt die Sicherheitsarchitektur, die Podman konsequent nutzt.

Diese Mechanismen wirken wie Filterstufen: Jede Schicht begrenzt, was ein Container tun darf – selbst dann, wenn er im eigenen Namespace „root“ ist. Die Kunst besteht darin, die Rollen der einzelnen Schichten zu verstehen und gezielt einzusetzen.


18.2 Seccomp: Kontrolle über Systemaufrufe

Seccomp (Secure Computing Mode) ist ein Syscall-Filter des Kernels. Er bestimmt, welche Systemaufrufe ein Prozess ausführen darf und welche blockiert werden. Container benötigen typischerweise nur einen Bruchteil der verfügbaren Syscalls.

Ein Seccomp-Profil:

Ablauf vereinfacht dargestellt:

Podman verwendet standardmäßig ein restriktives Seccomp-Profil. Selbst ein Prozess, der im Container als root läuft, kann damit nicht beliebige Kerneloperationen ausführen.


18.3 SELinux: Kontexte statt rein nutzerbasierter Logik

SELinux arbeitet labelbasiert. Jede Datei, jeder Prozess, jedes Netzwerkobjekt besitzt ein Label („Kontext“). Die Policy entscheidet:

Der Schutz wirkt unabhängig von UID/GID. Selbst wenn ein Prozess innerhalb des Containers Root-Rechte besitzt, darf er nur auf Ressourcen zugreifen, deren SELinux-Kontext dies explizit erlaubt.

Modell der Ebenen:

Ebene Bedeutung
UID/GID Identität („Wer bin ich?“)
Capabilities privilegierte Fähigkeiten („Welche Aktionen sind erlaubt?“)
SELinux Ressourcenfreigaben („Auf was darf ich zugreifen?“)

SELinux erzwingt damit ein objektbasiertes Sicherheitsmodell, das unabhängig von Nutzerrechten funktioniert.


18.4 AppArmor: Profilbasierte Zugriffssteuerung

AppArmor verfolgt im Vergleich zu SELinux einen pragmatischeren Ansatz. Statt Labels nutzt AppArmor pfadbasierte Profile. Ein Profil definiert:

Verstöße werden entweder blockiert oder im Log vermerkt. AppArmor ist einfach anzupassen und eignet sich besonders für Systeme, in denen schnelle Profilmodifikationen erforderlich sind.


18.5 Linux-Capabilities: Root in Teilfähigkeiten zerlegt

Linux kennt seit vielen Jahren nicht mehr „root“ als unteilbares Privileg. Privilegierte Aktionen sind in einzelne Capabilities aufgespalten.

Beispiele:

Podman entfernt standardmäßig fast alle Capabilities aus Containern. Dadurch ist „root im Container“ nicht mit vollständigen Systemprivilegien gleichzusetzen.

Gezieltes Hinzufügen erfolgt über:

podman run --cap-add=NET_BIND_SERVICE ...

Damit lassen sich einzelne Fähigkeiten fein granular freischalten, ohne das Gesamtsystem zu öffnen.


18.6 Zusammenspiel: Mehrere Sicherheitsmechanismen greifen übereinander

Die effektive Sicherheit entsteht durch das Zusammenwirken aller Mechanismen. Ein Beispiel:

  1. Ein Containerprozess versucht, ein Interface umzukonfigurieren → blockiert durch fehlende Capabilities.
  2. Er versucht anschließend, einen fremden Prozess zu debuggen → blockiert durch Seccomp.
  3. Er möchte auf /etc schreiben → blockiert durch SELinux oder AppArmor.

Der Schutz ist schichtweise aufgebaut. Jede Schicht wirkt unabhängig und redundant.


18.7 Technisches Modell des Sicherheitsstapels

Jeder Schritt muss bestanden werden. Die Kombination ergibt ein hochwirksames Verteidigungssystem.


18.8 Typische Einsatzszenarien

Diese Mechanismen spielen bei vielen praktischen Anwendungsfällen eine wichtige Rolle:

Die Sicherheit entsteht durch das bewusste Zusammenspiel aller Schichten.


18.9 Sicherheit in Podman ist Architektur, kein Add-on

Seccomp, SELinux, AppArmor und Capabilities sind fest im Linux-Kernel verankerte Mechanismen. Podman nutzt sie konsistent und systematisch – nicht als Zusatzfunktion, sondern als Kernbestandteil seines Rootless- und Daemonless-Designs.

Damit entsteht ein Container-Modell, das Sicherheit durch technische Schichtung erreicht und sich zuverlässig in anspruchsvolle Umgebungen integrieren lässt.