La seguridad en plataformas como Kubernetes es fundamental para cualquier organización que maneje aplicaciones y datos en la nube. Recientemente, se ha identificado una vulnerabilidad en Microsoft Azure Kubernetes Services que podría permitir a un atacante escalar privilegios y obtener credenciales de acceso a los servicios del clúster si se explota con éxito.
"Un atacante con capacidad para ejecutar comandos en un Pod dentro de un clúster afectado de Azure Kubernetes Services podría descargar la configuración de aprovisionamiento del nodo, extraer los tokens de arranque de seguridad del protocolo TLS y llevar a cabo un ataque de arranque TLS para acceder a todos los secretos dentro del clúster", explicó Mandiant, una empresa propiedad de Google.
La falla de escalada de privilegios afecta a los clústeres que utilizan "Azure CNI" para la "Configuración de red" y "Azure" para la "Política de red". Microsoft ha solucionado el problema tras una divulgación responsable.
La técnica de ataque desarrollada por la empresa de inteligencia de amenazas se centra en aprovechar un componente poco conocido llamado Azure WireServer. Este componente permite solicitar una clave, conocida como "wireserver.key", que se utiliza para cifrar valores de configuración protegidos. Con esta clave, los atacantes pueden descifrar un script de aprovisionamiento que contiene varios secretos importantes, como:
Conoce más sobre: Azure Kubernetes vs AWS Elastic Container Service
Según investigadores "KUBELET_CLIENT_CONTENT, KUBELET_CLIENT_CERT_CONTENT y KUBELET_CA_CRT" se pueden decodificar en Base64 y luego escribir en el disco para utilizarlos con la herramienta de línea de comandos de Kubernetes, kubectl, permitiendo así la autenticación en el clúster". Aunque esta cuenta tiene permisos mínimos en clústeres de Azure Kubernetes Service (AKS) recientemente implementados, aún puede enumerar los nodos dentro del clúster.
Por otro lado, el TLS_BOOTSTRAP_TOKEN podría ser aprovechado para realizar un ataque de arranque TLS, lo que permitiría al atacante acceder a todos los secretos utilizados por las cargas de trabajo en ejecución. Cabe destacar que este tipo de ataque no requiere que el pod se ejecute con privilegios de raíz.
Implementar políticas de red restrictivas que limiten el acceso únicamente a los servicios necesarios es una forma efectiva de prevenir este tipo de ataques. Al restringir el acceso a servicios no documentados, se impide la escalada de privilegios, ya que el atacante no puede interactuar con ellos en primer lugar.