Risiken
Kubernetes-Pods sichern: Unauthorisierte priviligierte Prozesse verhindern und die Sicherheit des Systems verbessern
Risiken beim Hinzufügen privilegierter Prozesse in Pods
Standardmäßig erlaubt Kubernetes das Hinzufügen von Linux-Funktionen zu Containern, was bei unsachgemäßer Handhabung erhebliche Sicherheitsrisiken mit sich bringen kann.
Potenzielle Sicherheitsbedrohungen
Unbefugter Port-Zugriff:
Die CAP_NET_BIND_SERVICE-Fähigkeit ermöglicht es Containern, sich an privilegierte Ports (Ports unter 1024) zu binden. Wenn ein Angreifer diese Fähigkeit erlangt, könnte er Ports innerhalb des Clusters öffnen und so den Cluster potenziell dem Zugriff von außen und Angriffen aussetzen.
Eskalation von Privilegien:
Container, die mit erhöhten Rechten laufen, können Schwachstellen ausnutzen, um innerhalb des Clusters Zugriff auf höhere Ebenen zu erhalten. Dies kann zu unbefugtem Datenzugriff, Unterbrechung von Diensten oder Kontrolle über andere Container führen.
Netzwerk-Manipulation:
Mit Funktionen wie CAP_NET_RAW können Container den Netzwerkverkehr manipulieren, was zu Man-in-the-Middle-Angriffen, zum Abfangen von Datenverkehr oder zum unerlaubten Scannen von Netzwerken innerhalb des Clusters führen kann.
Maßnahmen zur Risikominderung
Um diese Risiken zu mindern, ist es wichtig, die Linux-Funktionen in Containern einzuschränken. Dies kann durch die Verwendung von Pod Security Policies (PSPs) oder Pod Security Standards (PSS) in neueren Kubernetes-Versionen erreicht werden:
Drop All Capabilities:
Standardmäßig werden alle Linux-Fähigkeiten aus Containern entfernt, um unerwünschte Privilegien zu verhindern. Dies kann mit der Einstellung requiredDropCapabilities in der Pod-Sicherheitsrichtlinie erzwungen werden:
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: restricted-psp
spec:
requiredDropCapabilities:
- ALL
# Other necessary security settings
Nur erforderliche Fähigkeiten hinzufügen:
Erlauben Sie nur das Hinzufügen bestimmter, notwendiger Fähigkeiten für Container. Dieses Prinzip der geringsten Berechtigung stellt sicher, dass Container nur mit den Berechtigungen arbeiten, die sie für ihre korrekte Funktion benötigen.
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: specific-psp
spec:
allowedCapabilities:
- CAP_NET_BIND_SERVICE # Only if absolutely necessary
requiredDropCapabilities:
- ALL
# Other necessary security settings
Verwenden Sie Pod-Sicherheitsstandards (PSS):
Mit der Abschaffung von PSPs in Kubernetes wird empfohlen, Pod-Sicherheitsstandards (PSS) zu verwenden, um bewährte Sicherheitsverfahren auf Namespace-Ebene durchzusetzen. PSS definiert drei Richtlinien: Privileged, Baseline und Restricted. Die Richtlinie "Restricted" (Eingeschränkt) sorgt für eine Konfiguration mit den geringsten Rechten, einschließlich des Verzichts auf alle Funktionen, sofern sie nicht ausdrücklich erlaubt sind.
Regelmäßige Audits und Überwachung:
Führen Sie regelmäßige Audits der Sicherheitskonfigurationen Ihres Clusters durch und überwachen Sie diese auf Abweichungen von den festgelegten Sicherheitsrichtlinien. Verwenden Sie Kubernetes-eigene Tools und Lösungen von Drittanbietern für die kontinuierliche Sicherheitsüberwachung und Konformitätsprüfung.