Kubernetes Kyverno bypass

El autor original de esta página es Guillaume

Abusando de la mala configuración de políticas

Enumerar reglas

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

$ kubectl get clusterpolicies
$ kubectl get policies

Enumerar Excluidos

Para cada ClusterPolicy y Policy, puedes especificar una lista de entidades excluidas, incluyendo:

  • Grupos: excludedGroups

  • Usuarios: excludedUsers

  • Cuentas de Servicio (SA): excludedServiceAccounts

  • Roles: excludedRoles

  • Roles de Clúster: excludedClusterRoles

Estas entidades excluidas estarán exentas de los requisitos de la política, y Kyverno no aplicará la política para ellas.

Ejemplo

Vamos a profundizar en un ejemplo de clusterpolicy :

$ kubectl get clusterpolicies MYPOLICY -o yaml

Busca las entidades excluidas :

exclude:
any:
- clusterRoles:
- cluster-admin
- subjects:
- kind: User
name: system:serviceaccount:DUMMYNAMESPACE:admin
- kind: User
name: system:serviceaccount:TEST:thisisatest
- kind: User
name: system:serviceaccount:AHAH:*

Dentro de un clúster, numerosos componentes, operadores y aplicaciones añadidos pueden requerir exclusión de una política de clúster. Sin embargo, esto puede ser explotado al dirigirse a entidades privilegiadas. En algunos casos, puede parecer que un namespace no existe o que careces de permiso para suplantar a un usuario, lo que puede ser un signo de mala configuración.

Abusando de ValidatingWebhookConfiguration

Otra forma de eludir políticas es centrarse en el recurso ValidatingWebhookConfiguration :

Kubernetes ValidatingWebhookConfiguration

Last updated