Kubernetes ValidatingWebhookConfiguration
L'auteur original de cette page est Guillaume
Définition
ValidatingWebhookConfiguration est une ressource Kubernetes qui définit un webhook de validation, qui est un composant côté serveur qui valide les requêtes API Kubernetes entrantes par rapport à un ensemble de règles et de contraintes prédéfinies.
Objectif
L'objectif d'un ValidatingWebhookConfiguration est de définir un webhook de validation qui appliquera un ensemble de règles et de contraintes prédéfinies sur les requêtes API Kubernetes entrantes. Le webhook validera les requêtes par rapport aux règles et contraintes définies dans la configuration et renverra une erreur si la requête ne respecte pas les règles.
Exemple
Voici un exemple de ValidatingWebhookConfiguration :
La principale différence entre un ValidatingWebhookConfiguration et des politiques :
ValidatingWebhookConfiguration (VWC) : Une ressource Kubernetes qui définit un webhook de validation, qui est un composant côté serveur qui valide les requêtes API Kubernetes entrantes par rapport à un ensemble de règles et de contraintes prédéfinies.
Kyverno ClusterPolicy : Une définition de politique qui spécifie un ensemble de règles et de contraintes pour valider et appliquer les ressources Kubernetes, telles que les pods, les déploiements et les services.
Énumération
Abuser de Kyverno et Gatekeeper VWC
Comme nous pouvons le voir, tous les opérateurs installés ont au moins une ValidatingWebHookConfiguration (VWC).
Kyverno et Gatekeeper sont tous deux des moteurs de politique Kubernetes qui fournissent un cadre pour définir et appliquer des politiques à travers un cluster.
Les exceptions font référence à des règles ou conditions spécifiques qui permettent à une politique d'être contournée ou modifiée dans certaines circonstances, mais ce n'est pas la seule façon !
Pour kyverno, tant qu'il y a une politique de validation, le webhook kyverno-resource-validating-webhook-cfg
est peuplé.
Pour Gatekeeper, il y a le fichier YAML gatekeeper-validating-webhook-configuration
.
Les deux proviennent de valeurs par défaut, mais les équipes administratrices peuvent mettre à jour ces 2 fichiers.
Cas d'utilisation
Maintenant, identifiez la sortie suivante :
Ici, le label kubernetes.io/metadata.name
fait référence au nom de l'espace de noms. Les espaces de noms avec des noms dans la liste values
seront exclus de la politique :
Vérifiez l'existence des espaces de noms. Parfois, en raison de l'automatisation ou d'une mauvaise configuration, certains espaces de noms peuvent ne pas avoir été créés. Si vous avez la permission de créer un espace de noms, vous pourriez créer un espace de noms avec un nom dans la liste values
et les politiques ne s'appliqueront pas à votre nouvel espace de noms.
L'objectif de cette attaque est d'exploiter la mauvaise configuration à l'intérieur de VWC afin de contourner les restrictions des opérateurs et ensuite d'élever vos privilèges avec d'autres techniques.
Références
Last updated