OpenShift - SCC bypass
El autor original de esta página es Guillaume
Espacios de nombres privilegiados
Por defecto, SCC no se aplica en los siguientes proyectos:
default
kube-system
kube-public
openshift-node
openshift-infra
openshift
Si despliegas pods dentro de alguno de estos espacios de nombres, no se aplicará ninguna SCC, lo que permite el despliegue de pods privilegiados o el montaje del sistema de archivos del host.
Etiqueta de Espacio de nombres
Según la documentación de RedHat, hay una forma de deshabilitar la aplicación de SCC en tu pod. Necesitarás tener al menos uno de los siguientes permisos:
Crear un Espacio de nombres y crear un Pod en este Espacio de nombres
Editar un Espacio de nombres y crear un Pod en este Espacio de nombres
El label específico openshift.io/run-level
permite a los usuarios evadir las SCCs para las aplicaciones. Según la documentación de RedHat, cuando se utiliza este label, no se aplican SCCs en todas las pods dentro de ese espacio de nombres, eliminando efectivamente cualquier restricción.
Agregar Label
Para agregar el label en tu espacio de nombres:
Para crear un espacio de nombres con la etiqueta a través de un archivo YAML:
Ahora, todos los nuevos pods creados en el espacio de nombres no deben tener ningún SCC
En ausencia de SCC, no hay restricciones en la definición de su pod. Esto significa que un pod malicioso puede ser creado fácilmente para escapar al sistema host.
Ahora, se ha vuelto más fácil escalar privilegios para acceder al sistema host y posteriormente tomar el control de todo el clúster, obteniendo privilegios de 'cluster-admin'. Busca la parte de Post Explotación de Nodos en la siguiente página:
Attacking Kubernetes from inside a PodEtiquetas personalizadas
Además, según la configuración del objetivo, algunas etiquetas / anotaciones personalizadas pueden ser utilizadas de la misma manera que en el escenario de ataque anterior. Incluso si no se crearon para ello, las etiquetas podrían ser utilizadas para otorgar permisos, restringir o no un recurso específico.
Intenta buscar etiquetas personalizadas si puedes leer algunos recursos. Aquí tienes una lista de recursos interesantes:
Pod
Deployment
Namespace
Service
Route
Enumerar todos los espacios de nombres privilegiados
Exploit avanzado
En OpenShift, como se demostró anteriormente, tener permiso para implementar un pod en un espacio de nombres con la etiqueta openshift.io/run-level
puede llevar a una toma de control directa del clúster. Desde la perspectiva de la configuración del clúster, esta funcionalidad no se puede deshabilitar, ya que es inherente al diseño de OpenShift.
Sin embargo, medidas de mitigación como Open Policy Agent GateKeeper pueden evitar que los usuarios establezcan esta etiqueta.
Para evadir las reglas de GateKeeper y establecer esta etiqueta para ejecutar una toma de control del clúster, los atacantes necesitarían identificar métodos alternativos.
Referencias
Last updated