seccomp (Secure Computing Mode) ist ein Mechanismus des Linux-Kernels, der die Systemaufrufe (Syscalls) eines Prozesses filtert. In Kubernetes begrenzt seccomp damit, welche Kernel-Funktionen ein Container nutzen darf – ein Angreifer, der den Container übernimmt, kann deutlich weniger Schaden anrichten.
Wie seccomp funktioniert
Der Kernel schaltet für einen Prozess in den Filtermodus (SECCOMP_MODE_FILTER) und wertet für jeden Syscall eine BPF-Regel aus: Erlaubte Aufrufe laufen normal, nicht erlaubte werden mit einem Fehler (etwa EPERM) abgewiesen oder der Prozess wird beendet. Container-Runtimes wie containerd oder CRI-O liefern vorkonfigurierte Profile mit.
Profile in Kubernetes
Seit Kubernetes 1.19 ist seccomp allgemein verfügbar (GA). Das Profil wird im SecurityContext gesetzt:
spec:
containers:
- name: app
securityContext:
seccompProfile:
type: RuntimeDefault
- RuntimeDefault – nutzt das Standardprofil des Container-Runtimes; empfehlenswerte Ausgangsbasis.
- Localhost – lädt ein eigenes Profil vom Node; der Pfad ist relativ zu /var/lib/kubelet/seccomp.
- Unconfined – kein Filter; das ist der Standard, solange kein Profil gesetzt ist. Der kubelet kann per Flag ein Default-Profil erzwingen.
seccomp und Pod Security
Der Pod-Security-Standard restricted verlangt, dass jeder Pod explizit ein seccomp-Profil setzt – RuntimeDefault oder Localhost. Pods ohne dieses Feld werden vom Admission Controller abgelehnt. Zusammen mit Linux-Grundwissen ergibt seccomp eine der wirksamsten Härtungsmaßnahmen für Container-Workloads.
Verwandte Grundlagen: Pod, kubectl-Befehle.