Profilanwendbarkeit: Stufe 1
Erlauben Sie nicht generell, dass Container mit dem
hostIPC-Flag auf true gesetzt ausgeführt werden.Ein Container, der im IPC-Namespace des Hosts läuft, kann IPC verwenden, um mit Prozessen
außerhalb des Containers zu interagieren.
Es sollte mindestens eine Zugriffssteuerungsrichtlinie definiert sein, die es Containern
nicht erlaubt, den Host-IPC-Namespace zu teilen. Wenn Sie Container ausführen müssen,
die hostIPC erfordern, sollte dies in einer separaten Richtlinie definiert werden,
und Sie sollten sorgfältig prüfen, dass nur begrenzte Dienstkonten und Benutzer die
Berechtigung erhalten, diese Richtlinie zu verwenden.
HinweisStandardmäßig gibt es keine Einschränkungen bei der Erstellung von
hostIPC-Containern. |
Auswirkung
Pods, die mit
spec.hostIPC: true definiert sind, sind nicht erlaubt, es sei denn, sie werden unter einer spezifischen
Richtlinie ausgeführt.Prüfung
Listen Sie die Richtlinien auf, die für jeden Namespace im Cluster verwendet werden,
und stellen Sie sicher, dass jede Richtlinie die Zulassung von
hostIPC-Containern untersagt.Suche nach dem hostIPC-Flag: Im YAML-Ausgabe, suchen Sie nach der
hostIPC-Einstellung unter dem Abschnitt spec, um zu überprüfen, ob sie auf true gesetzt ist.kubectl get pods --all-namespaces -o json | jq -r '.items[] | select(.spec.hostIPC == true) | "\(.metadata.namespace)/\(.metadata.name)"'
Oder:
kubectl get pods --all-namespaces -o json | jq -r '.items[] | select(.spec.hostIPC == true) | select(.metadata.namespace != "kube-system" and .metadata.namespace != "gatekeeper-system" and .metadata.namespace != "azure-arc" and .metadata.namespace != "azure-extensions-usage-system") | "\(.metadata.name) \(.metadata.namespace)"'
Beim Erstellen einer Pod-Sicherheitsrichtlinie sind die
["kube-system", "gatekeeper-system", "azure-arc", "azure-extensions-usage-system"] Namespaces standardmäßig ausgeschlossen.Dieser Befehl ruft alle Pods in allen Namespaces im JSON-Format ab, verwendet dann
jq, um diejenigen herauszufiltern, bei denen das
hostIPC-Flag auf true gesetzt ist, und formatiert schließlich die Ausgabe, um den Namespace und den Namen
jedes übereinstimmenden Pods anzuzeigen.Wiederherstellung
Fügen Sie Richtlinien zu jedem Namespace im Cluster hinzu, der Benutzerarbeitslasten
enthält, um die Zulassung von
hostIPC-Containern zu beschränken.Pod-Sicherheitsrichtlinien und Zuweisungen können im Azure-Portal durch die Suche
nach Richtlinien gefunden werden. Eine detaillierte Schritt-für-Schritt-Anleitung
finden Sie in der Kubernetes-Richtliniendokumentation.
