Kubernetes ValidatingWebhookConfiguration
Der ursprüngliche Autor dieser Seite ist Guillaume
Definition
ValidatingWebhookConfiguration ist eine Kubernetes-Ressource, die einen Validierungswebhook definiert, der eine serverseitige Komponente ist, die eingehende Kubernetes-API-Anfragen gegen eine Reihe vordefinierter Regeln und Einschränkungen validiert.
Zweck
Der Zweck einer ValidatingWebhookConfiguration besteht darin, einen Validierungswebhook zu definieren, der eine Reihe vordefinierter Regeln und Einschränkungen für eingehende Kubernetes-API-Anfragen durchsetzt. Der Webhook validiert die Anfragen gegen die in der Konfiguration definierten Regeln und Einschränkungen und gibt einen Fehler zurück, wenn die Anfrage nicht den Regeln entspricht.
Beispiel
Hier ist ein Beispiel für eine ValidatingWebhookConfiguration:
Der Hauptunterschied zwischen einer ValidatingWebhookConfiguration und Richtlinien :
ValidatingWebhookConfiguration (VWC) : Eine Kubernetes-Ressource, die einen Validierungswebhook definiert, der eine serverseitige Komponente ist, die eingehende Kubernetes-API-Anfragen anhand einer Reihe vordefinierter Regeln und Einschränkungen validiert.
Kyverno ClusterPolicy: Eine Richtliniendefinition, die eine Reihe von Regeln und Einschränkungen für die Validierung und Durchsetzung von Kubernetes-Ressourcen wie Pods, Deployments und Services spezifiziert.
Enumeration
Missbrauch von Kyverno und Gatekeeper VWC
Wie wir sehen können, haben alle installierten Operatoren mindestens eine ValidatingWebHookConfiguration (VWC).
Kyverno und Gatekeeper sind beide Kubernetes-Policy-Engines, die einen Rahmen für die Definition und Durchsetzung von Richtlinien in einem Cluster bieten.
Ausnahmen beziehen sich auf spezifische Regeln oder Bedingungen, die es ermöglichen, eine Richtlinie unter bestimmten Umständen zu umgehen oder zu ändern, aber das ist nicht der einzige Weg!
Für kyverno, da es eine validierende Richtlinie gibt, wird das Webhook kyverno-resource-validating-webhook-cfg
befüllt.
Für Gatekeeper gibt es die gatekeeper-validating-webhook-configuration
YAML-Datei.
Beide kommen mit Standardwerten, aber die Administratorenteams könnten diese 2 Dateien aktualisiert haben.
Anwendungsfall
Jetzt identifizieren Sie die folgende Ausgabe:
Hier bezieht sich das Label kubernetes.io/metadata.name
auf den Namespace-Namen. Namespaces mit Namen in der values
-Liste werden von der Richtlinie ausgeschlossen:
Überprüfen Sie die Existenz von Namespaces. Manchmal könnten aufgrund von Automatisierung oder Fehlkonfiguration einige Namespaces nicht erstellt worden sein. Wenn Sie die Berechtigung haben, einen Namespace zu erstellen, könnten Sie einen Namespace mit einem Namen in der values
-Liste erstellen, und die Richtlinien würden auf Ihren neuen Namespace nicht angewendet.
Das Ziel dieses Angriffs ist es, Fehlkonfigurationen innerhalb von VWC auszunutzen, um die Einschränkungen der Operatoren zu umgehen und dann Ihre Berechtigungen mit anderen Techniken zu erhöhen.
Abusing Roles/ClusterRoles in KubernetesReferenzen
Last updated