Vulnerabilidad De Autenticación En El Servicio De Kubernetes De AWS
Mientras que ayer hablábamos de la falsa seguridad que otorga tener la infraestructura de nuestra empresa en servicios cloud, hoy vemos nuevamente cómo hacer uso de los servicios en la nube está lejos de cumplir con los requisitos de ciberseguridad actuales de las empresas.
El pasado día 11 de julio, Amazon hacía una publicación informando a sus clientes sobre un fallo en el sistema de autenticación IAM de Amazon EKS:
Un investigador de seguridad reportó recientemente un problema en AWS IAM Authenticator de Kubernetes, usado por el servicio Amazon Elastic Kubernetes Service (EKS). El investigador identificó un problema en la validación de parámetros en el plugin de autenticación cuando éste se configura para hacer uso de parámetro de plantilla «AccessKeyID» en el contenido de la string de la petición.
El problema habría permitido a un atacante con cierto nivel de conocimientos escalar privilegios dentro de un cluster de Kubernetes.
AWS Security Bulletins
¿Qué es EKS?
Según la documentación oficial de AWS, Amazon Elastic Kubernetes (EKS) se trata de un servicio administrado (esto es, por AWS, no por el cliente) que se puede utilizar «para ejecutar Kubernetes en AWS sin necesidad de instalar, operar ni mantener» un plano de control propio propio o nodos de Kubernetes.
CVE-2022-2385
El fallo causante de la vulnerabilidad se encuentra en una línea de código concreta del mecanismo de autenticación de IAM para Kubernetes:
El funcionamiento esperado del fragmento de código anterior es una validación de la capitalización del parámetro que se recibe, es decir, del uso de mayúsculas y minúsculas. Sin embargo, esta validación no se estaba llevando a cabo de la manera correcta, siendo posible enviar parámetros duplicados.
Este fallo en el proceso de autenticación que podría permitir a un atacante evadir las protecciones existentes frente a ataques en los que una transmisión de datos válidas es repetida de manera fraudulenta (replay attacks).
La vulnerabilidad está presente desde el primer commit de AWS IAM Authenticator realizado el 12 de octubre de 2017, lo que implica que tanto la acción modificable como los tokens de identificación de clusters han sido explotables desde el primer momento.
Concretamente, la explotación del nombre de usuario a través del parámetro «AccessKeyID» habría sido posible desde el pasado 2 de septiembre de 2020, momento en el que AWS introdujo esta característica en el servicio.
No obstante, cabe mencionar que solo aquellos clientes que usan el parámetro «AccessKeyID» se ven afectados por la vulnerabilidad, y Amazon lanzó un parche que la solventaba el pasado 28 de junio, por lo que aquellos usuarios que usen AWS IAM Authenticator para Kubernetes en el servicio Amazon EKS no necesitan tomar ninguna medida de mitigación.
No es este el caso, sin embargo, para aquellos clientes que administren sus propios clusters de Kubernetes y hagan uso de «AccessKeyID», situación en la que se debe actualizar AWS IAM Authenticator a la versión 0.5.9.
Más información
Amazon squashes years-old authentication bugs in AWS Kubernetes service
CVE-2022-2385: AccessKeyID validation bypass #472
Código vulnerable de AWS IAM Authenticator
Reported EKS IAM Authenticator Issue
Libros recomendados
Via: unaaldia.hispasec.com