Profilanwendbarkeit: Stufe 1
Eine Methode zur Überprüfung von Container-Systemaufrufen in Kubernetes ist die Verwendung
des seccomp-Tools. Dieses Tool ist standardmäßig deaktiviert, kann jedoch verwendet
werden, um die Systemaufrufmöglichkeiten eines Containers zu begrenzen und so die
Angriffsfläche des Kernels zu verringern. Seccomp kann auch protokollieren, welche
Aufrufe gemacht werden, indem ein Audit-Profil verwendet wird.
Ein benutzerdefiniertes Seccomp-Profil legt fest, welche Systemaufrufe erlaubt, verweigert
oder protokolliert werden, sowie Standardaktionen für nicht spezifizierte Aufrufe.
Das Protokollieren aller Systemaufrufe kann Administratoren helfen, zu wissen, welche
Systemaufrufe für Standardoperationen benötigt werden, sodass sie das seccomp-Profil
weiter einschränken können, ohne die Systemfunktionalität zu verlieren. Es kann Administratoren
auch helfen, eine Basislinie für die Standardbetriebsabläufe eines Pods zu erstellen,
sodass sie wesentliche Abweichungen von diesem Muster erkennen können, die auf bösartige
Aktivitäten hinweisen könnten.
Prüfung
Führen Sie den folgenden Befehl aus und überprüfen Sie, ob Pods und Container mit
Seccomp konfiguriert sind:
kubectl get pods --all-namespaces
Stellen Sie sicher, dass Pods und Container in ihrer Spezifikation mit seccomp konfiguriert
sind:
spec.securityContext.seccompProfile.type
istRuntimeDefault
Bestätigen Sie die Annotationswerte:
seccomp.security.alpha.kubernetes.io/pod
istruntime/default
für Podscontainer.seccomp.security.alpha.kubernetes.io/<container name>
istruntime/default
für Container
Wiederherstellung
Um ein benutzerdefiniertes seccomp-Profil innerhalb eines Pods zu aktivieren, können
Kubernetes-Administratoren ihre seccomp-Profil-JSON-Datei im
/var/lib/kubelet/seccomp/
-Verzeichnis ablegen und ein seccompProfile
zum securityContext des Pods hinzufügen.Ein benutzerdefiniertes
seccompProfile
sollte auch zwei Felder enthalten: Type: Localhost
und localhostProfile: myseccomppolicy.json
.In der Pod- und Containerkonfiguration setzen Sie
spec.securityContext.seccompProfile.type
, spec.containers[*].securityContext.seccompProfile
und spec.initContainers[*].securityContext.seccompProfile
auf RuntimeDefault
.Das Folgende ist ein Beispiel für eine Spezifikation eines Pods und seiner Container,
die seccompProfile auf
RuntimeDefault
setzt:... spec: securityContext: seccompProfile: type: RuntimeDefault template: spec: containers: - ... securityContext: seccompProfile: RuntimeDefault