Vulnerabilidades críticas de Kubernetes: Manténgase informado
En el siempre cambiante panorama de la ciberseguridad, la vigilancia es crucial, especialmente cuando se trata de sistemas complicados y de uso frecuente como Kubernetes. Se acaba de descubrir un trío de fallos de seguridad de alta gravedad que suponen una amenaza sustancial para los entornos Kubernetes.. Aunque estas vulnerabilidades de Kubernetes afectan principalmente a los puntos finales de Windows dentro de un clúster Kubernetes, sus ramificaciones potenciales se extienden más allá de los sistemas Windows, enfatizando la importancia de la seguridad en los entornos Kubernetes. importancia de medidas de seguridad multiplataforma en el mundo centrado en Linux..
El trío CVE: CVE-2023-3676, CVE-2023-3893 y CVE-2023-3955
La puntuación CVSS de La puntuación CVSS de estas tres vulnerabilidades, CVE-2023-3676, CVE-2023-3893 y CVE-2023-3955, es de 8,8. Tienen la capacidad de ejecutar código remoto con privilegios elevados dentro de un clúster Kubernetes. Es importante destacar que estos fallos afectan a todos los sistemas Kubernetes que implican nodos Windows.
Akamai divulgó responsablemente estos riesgos de seguridad de Kubernetes en 13 de julio de 2023desencadenando una rápida respuesta de la comunidad Kubernetes. El 23 de agosto de 2023 se publicaron las correcciones, lo que subraya la importancia de los esfuerzos de colaboración en el ámbito del software de código abierto.
Desempacando las Vulnerabilidades de Kubernetes
Las vulnerabilidades están relacionadas con la manipulación de archivos YAML, un lenguaje de configuración muy utilizado en Kubernetes para gestionar la seguridad en tiempo de ejecución de contenedores en las aplicaciones. La posibilidad de explotar estos fallos surge de la conexión directa de los archivos YAML y el motor de Kubernetes.
En particular, vulnerabilidades de análisis de YAML ya han activado banderas rojas en actualizaciones de seguridad de Kubernetes. CVE-2022-1471, por ejemplo, reveló una vulnerabilidad de ejecución remota de código en el analizador SnakeYaml, que afectaba al cliente Java de Kubernetes. CVE-2021-25749 también permitía la inclusión de nombres de usuario mal escritos en archivos YAML, dando lugar a la ejecución de cargas de trabajo con root.
La saga de las subrutas de subpropiedad
Las vulnerabilidades de las que hablamos hoy están inspiradas en preocupaciones anteriores con la subpropiedad "subPath" en archivos YAML. Utilizando la propiedad "volume", Kubernetes permite montar un directorio desde el sistema anfitrión dentro de un contenedor, una capacidad comúnmente utilizada en el ecosistema Kubernetes. Esta característica tiene numerosas subpropiedades, siendo "subPath" una de ellas. Cuando "subPath" se especifica en un archivo YAML, es procesado por kubelet, un servicio vital de Kubernetes.
Las complejidades de PowerShell
La raíz de estos fallos está en cómo Kubernetes trata la cadena "subPath". Durante el procesamiento, kubelet determina si se trata de un symlink. Por otro lado, esta protección se implementa a través de un comando PowerShell invocado mediante la llamada a la función "exec.Command". Esto abre la puerta a que los atacantes adjunten código PowerShell a la cadena "subPath", que luego se ejecutará.
La capacidad de PowerShell para evaluar valores dentro de cadenas antes de su uso permite a los atacantes introducir fácilmente comandos maliciosos. Por ejemplo, un atacante puede proporcionar un archivo YAML con una "subRuta" que contenga "$(Start-Process cmd)". Durante la validación de la ruta, kubelet enviará este comando a PowerShell, donde se ejecutará con los privilegios del servicio kubelet, concretamente el nivel SYSTEM.
Ampliación del alcance de CVE-2023-3676
La vulnerabilidad que sustenta este debate, CVE-2023-3676se resolvió en Kubernetes 1.28. El sitio Evaluación de vulnerabilidades de Kubernetesha revelado otras dos vulnerabilidades de inyección de comandos: CVE-2023-3955 y CVE-2023-3893. Si bien estas debilidades afectan principalmente a Kubernetes en Windows en su
configuración por defecto, es importante recordar que los atacantes todavía necesitan obtener privilegios de aplicación en un nodo.
Prevención de exploits en Kubernetes
Para hacer frente a estas vulnerabilidades, es necesario tomar medidas proactivas. El sitio DevSecOps para Kubernetes ha optado por remediar esta clase de fallos cambiando los parámetros basados en la entrada del usuario por variables de entorno. Este cambio garantiza que los parámetros solo se procesen como cadenas, lo que impide que se evalúen como expresiones de PowerShell.
En el contexto de gestión de parches de Kuberneteslos administradores tienen opciones si las actualizaciones inmediatas a la versión parcheada no son posibles. Pueden detener el uso de "Volume.Subpath", pero esto tendrá un impacto en una característica y funcionalidad utilizada regularmente. Otra opción es utilizar el Open Policy Agent (OPA), un agente de código abierto capaz de llevar a cabo actividades basadas en políticas. Los administradores pueden escribir reglas en el lenguaje Rego de OPA para evitar que se ejecuten archivos YAML específicos. El escaneado de imágenes de contenedores también puede utilizarse para identificar vulnerabilidades.
Además, debe utilizarse el control de acceso basado en roles (RBAC) para limitar el número de usuarios autorizados a realizar operaciones dentro de un clúster Kubernetes. Esta estrategia integral mejora la seguridad al tiempo que reduce las posibles rutas de ataque.
Conclusión
Vigilancia y medidas de seguridad proactivas son fundamentales en el mundo de Kubernetes. Aunque CVEs en Kubernetes (CVE-2023-3676, CVE-2023-3893 y CVE-2023-3955) afectan principalmente a puntos finales de Windows dentro de un clúster Kubernetes, las ramificaciones son amplias. Dado que los clústeres de Kubernetes están interconectados, comprometer un solo nodo, aunque ejecute Windows, podría tener ramificaciones en la configuración y seguridad de todo el clúster.
A medida que navegamos por el complejo mundo de Kubernetes y sus defectos, queda claro que mejores prácticas de Kubernetes son esenciales, independientemente de las plataformas implicadas. No basta con defender un nodo en un panorama digital en constante cambio; también es necesario preservar la seguridad del clúster Kubernetes.
Las fuentes de este artículo incluyen artículos en The Hacker News y CSO.