Kubernetes ValidatingWebhookConfiguration
El autor original de esta página es Guillaume
Definición
ValidatingWebhookConfiguration es un recurso de Kubernetes que define un webhook de validación, que es un componente del lado del servidor que valida las solicitudes de API de Kubernetes entrantes contra un conjunto de reglas y restricciones predefinidas.
Propósito
El propósito de un ValidatingWebhookConfiguration es definir un webhook de validación que aplicará un conjunto de reglas y restricciones predefinidas a las solicitudes de API de Kubernetes entrantes. El webhook validará las solicitudes contra las reglas y restricciones definidas en la configuración y devolverá un error si la solicitud no se ajusta a las reglas.
Ejemplo
Aquí hay un ejemplo de un ValidatingWebhookConfiguration:
La principal diferencia entre un ValidatingWebhookConfiguration y las políticas :
ValidatingWebhookConfiguration (VWC) : Un recurso de Kubernetes que define un webhook de validación, que es un componente del lado del servidor que valida las solicitudes de API de Kubernetes entrantes contra un conjunto de reglas y restricciones predefinidas.
Kyverno ClusterPolicy: Una definición de política que especifica un conjunto de reglas y restricciones para validar y hacer cumplir los recursos de Kubernetes, como pods, despliegues y servicios.
Enumeración
Abusing Kyverno and Gatekeeper VWC
Como podemos ver, todos los operadores instalados tienen al menos una ValidatingWebHookConfiguration (VWC).
Kyverno y Gatekeeper son ambos motores de políticas de Kubernetes que proporcionan un marco para definir y hacer cumplir políticas en un clúster.
Las excepciones se refieren a reglas o condiciones específicas que permiten que una política sea eludida o modificada bajo ciertas circunstancias, ¡pero esta no es la única forma!
Para kyverno, como hay una política de validación, el webhook kyverno-resource-validating-webhook-cfg
se llena.
Para Gatekeeper, hay un archivo YAML gatekeeper-validating-webhook-configuration
.
Ambos vienen con valores predeterminados, pero los equipos de administración pueden haber actualizado esos 2 archivos.
Use Case
Ahora, identifica la siguiente salida:
Aquí, la etiqueta kubernetes.io/metadata.name
se refiere al nombre del espacio de nombres. Los espacios de nombres con nombres en la lista de values
serán excluidos de la política:
Verifique la existencia de espacios de nombres. A veces, debido a la automatización o una mala configuración, algunos espacios de nombres pueden no haberse creado. Si tiene permiso para crear un espacio de nombres, podría crear un espacio de nombres con un nombre en la lista de values
y las políticas no se aplicarán a su nuevo espacio de nombres.
El objetivo de este ataque es explotar mala configuración dentro de VWC para eludir las restricciones de los operadores y luego elevar sus privilegios con otras técnicas.
Referencias
Last updated