Kubernetes OPA Gatekeeper bypass

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

L’auteur original de cette page est Guillaume

Abus de mauvaise configuration

ÉnumĂ©rer les rĂšgles

Avoir un aperçu peut aider à savoir quelles rÚgles sont actives, dans quel mode et qui peut les contourner.

Avec le CLI

$ kubectl api-resources | grep gatekeeper
k8smandatoryannotations                                                             constraints.gatekeeper.sh/v1beta1                  false        K8sMandatoryAnnotations
k8smandatorylabels                                                                  constraints.gatekeeper.sh/v1beta1                  false        K8sMandatoryLabel
constrainttemplates                                                                 templates.gatekeeper.sh/v1                         false        ConstraintTemplate

ConstraintTemplate et Constraint peuvent ĂȘtre utilisĂ©s dans Open Policy Agent (OPA) Gatekeeper pour appliquer des rĂšgles sur les ressources Kubernetes.

$ kubectl get constrainttemplates
$ kubectl get k8smandatorylabels

Avec l’interface graphique

Une interface utilisateur graphique peut Ă©galement ĂȘtre disponible pour accĂ©der aux rĂšgles OPA avec Gatekeeper Policy Manager. C’est “une simple interface web en lecture seule pour visualiser l’état des politiques OPA Gatekeeper dans un cluster Kubernetes.”

Recherchez le service exposé :

$ kubectl get services -A | grep gatekeeper
$ kubectl get services -A | grep 'gatekeeper-policy-manager-system'

Espaces de noms exclus

Comme illustrĂ© dans l’image ci-dessus, certaines rĂšgles peuvent ne pas ĂȘtre appliquĂ©es universellement Ă  tous les espaces de noms ou utilisateurs. Au lieu de cela, elles fonctionnent sur une base de liste blanche. Par exemple, la contrainte liveness-probe est exclue de l’application aux cinq espaces de noms spĂ©cifiĂ©s.

Contournement

Avec un aperçu complet de la configuration de Gatekeeper, il est possible d’identifier des erreurs de configuration potentielles qui pourraient ĂȘtre exploitĂ©es pour obtenir des privilĂšges. Recherchez des espaces de noms sur liste blanche ou exclus oĂč la rĂšgle ne s’applique pas, puis effectuez votre attaque lĂ -bas.

Abusing Roles/ClusterRoles in Kubernetes

Abus de ValidatingWebhookConfiguration

Une autre façon de contourner les contraintes est de se concentrer sur la ressource ValidatingWebhookConfiguration :

Kubernetes ValidatingWebhookConfiguration

Références

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks