Kubernetes OPA Gatekeeper bypass

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

El autor original de esta página es Guillaume

Abusando de la mala configuración

Enumerar reglas

Tener una visión general puede ayudar a saber qué reglas están activas, en qué modo y quién puede eludirlas.

Con la 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 y Constraint se pueden usar en Open Policy Agent (OPA) Gatekeeper para hacer cumplir reglas en recursos de Kubernetes.

$ kubectl get constrainttemplates
$ kubectl get k8smandatorylabels

Con la GUI

Una Interfaz Gráfica de Usuario también puede estar disponible para acceder a las reglas de OPA con Gatekeeper Policy Manager. Es “una simple interfaz web de solo lectura para ver el estado de las políticas de OPA Gatekeeper en un clúster de Kubernetes.”

Busca el servicio expuesto:

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

Espacios de nombres excluidos

Como se ilustra en la imagen anterior, ciertas reglas pueden no aplicarse de manera universal en todos los espacios de nombres o usuarios. En su lugar, operan sobre una base de lista blanca. Por ejemplo, la restricción liveness-probe está excluida de aplicarse a los cinco espacios de nombres especificados.

Bypass

Con una visión general completa de la configuración de Gatekeeper, es posible identificar posibles configuraciones incorrectas que podrían ser explotadas para obtener privilegios. Busca espacios de nombres en la lista blanca o excluidos donde la regla no se aplica, y luego lleva a cabo tu ataque allí.

Abusing Roles/ClusterRoles in Kubernetes

Abusando de ValidatingWebhookConfiguration

Otra forma de eludir las restricciones es centrarse en el recurso ValidatingWebhookConfiguration:

Kubernetes ValidatingWebhookConfiguration

Referencias

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks