Azure CLI almacena las credenciales en peor forma y permite hackear el entorno de la nube

CVE-2023-36052 es una vulnerabilidad de seguridad crítica en la interfaz de línea de comandos (CLI) de Azure , una herramienta para administrar recursos de Azure. Esta vulnerabilidad, informada por Prisma Cloud de Palo Alto, permitió a atacantes no autenticados acceder de forma remota a contenidos de texto sin formato, incluidos nombres de usuarios y contraseñas, desde registros de integración continua e implementación continua (CI/CD) creados con la CLI de Azure. Estos registros podrían ser publicados por Azure DevOps y/o GitHub Actions. Para mitigar este riesgo, se recomendó a los usuarios que actualizaran su CLI de Azure a la versión 2.53.1 o superior.

Consideremos un ejemplo hipotético para comprender las implicaciones de CVE-2023-36052:

Supongamos que un equipo de desarrollo usa la CLI de Azure para administrar sus recursos de Azure y automatiza su proceso de implementación mediante GitHub Actions. Durante sus operaciones de rutina, ejecutan varios comandos de la CLI de Azure que generan registros. Estos registros, de forma predeterminada, incluyen credenciales en texto sin formato, como nombres de usuario y contraseñas.

Un atacante externo, consciente de esta vulnerabilidad, podría acceder al repositorio público donde están configuradas las GitHub Actions del equipo. Al examinar los registros de CI/CD publicados allí, el atacante podría encontrar y extraer estas credenciales en texto plano. Con estas credenciales, el atacante podría obtener acceso no autorizado a los recursos de Azure del equipo, lo que podría provocar violaciones de datos, modificaciones no autorizadas o incluso interrupciones del servicio.

Este escenario subraya la naturaleza crítica de CVE-2023-36052, donde registros aparentemente benignos podrían convertirse inadvertidamente en una fuente de importantes violaciones de seguridad. Los pasos de mitigación proporcionados por Microsoft, incluida la actualización de la CLI de Azure y la implementación de mejores prácticas para la administración de registros y la rotación de claves, son esenciales para evitar dicho acceso no autorizado.

Mitigación

Microsoft implementó varias medidas para abordar esta vulnerabilidad. Éstas incluyen:

  1. Actualización de la CLI de Azure: se recomienda a los clientes que actualicen la CLI de Azure a la última versión.
  2. Protección de registros: evitar la exposición de la salida de la CLI de Azure en registros o ubicaciones de acceso público e implementar guías para enmascarar variables de entorno.
  3. Rotación regular de claves y secretos: Fomentar la rotación regular de claves y secretos.
  4. Revisión de las mejores prácticas de seguridad: brinda orientación sobre la administración de secretos para los servicios de Azure y las acciones de GitHub, y garantiza que los repositorios de GitHub sean privados a menos que sea necesario que sean públicos.
  5. Protección de Azure Pipelines: ofrece orientación para proteger Azure Pipelines.
  6. Mejora de las configuraciones predeterminadas: introducción de una nueva configuración predeterminada en la CLI de Azure para evitar la divulgación accidental de información confidencial. Esto incluyó restringir la presentación de secretos en la salida de los comandos de actualización y ampliar las capacidades de redacción de credenciales en GitHub Actions y Azure Pipelines.

Solución alterna

Sin parches, la principal forma alternativa de mitigar los riesgos asociados con CVE-2023-36052 implica varias mejores prácticas y medidas de seguridad:

  1. Prácticas de registro seguro: asegúrese de que los registros no contengan información confidencial. Esto podría implicar secuencias de comandos o herramientas personalizadas para filtrar u ofuscar las credenciales y otros datos confidenciales antes de que se registren.
  2. Control de acceso a registros: restrinja el acceso a los registros de CI/CD. Asegúrese de que solo el personal autorizado pueda ver estos registros y que no sean de acceso público.
  3. Rotación frecuente de credenciales: cambie periódicamente las credenciales y los secretos para reducir la ventana de oportunidad para que un atacante utilice credenciales comprometidas.
  4. Monitoreo y alertas: implemente el monitoreo para detectar patrones de acceso inusuales o uso de credenciales, lo que podría indicar un compromiso.
  5. Segmentación del entorno: Segregar los entornos de desarrollo, prueba y producción. Limite el alcance a lo que puede acceder cada entorno para minimizar los daños potenciales.

Sin embargo, estas medidas son más complejas y potencialmente menos efectivas que actualizar la CLI de Azure a una versión parcheada. La aplicación de parches aborda directamente la vulnerabilidad en su origen, proporcionando una solución más completa y sencilla.