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.