Wiz dice que una falla en Azure Cosmos DB podría haber expuesto todas las bases de datos

Wiz dice que Microsoft solucionó por completo CosmosEscape, una cadena de vulnerabilidades de la API Gremlin que alcanzó un secreto de firma a nivel de plataforma.

By · Published

Primary source: Wiz Research

Why it matters

CosmosEscape shows how one provider-side sandbox failure can bypass customer network controls when an internal service holds credentials with cross-tenant authority.

Cloud database architecture, illustrating a detected and remediated vulnerability (Isotype infographic poster with mid-century pictograms)

Wiz Research published a technical report about CosmosEscape, a vulnerability chain in Azure Cosmos DB's Gremlin API that it says could have allowed full read and write access to every database on the service. Microsoft said in a statement included in Wiz's report that it found no evidence of exploitation beyond Wiz's research and that no customer action is required.

El hallazgo tiene una historia inusual relacionada con sus fundadores. Assaf Rappaport, Ami Luttwak, Yinon Costica y Roy Reznik fundaron Wiz en 2020 tras crear Adallom y venderla a Microsoft en 2015 y liderar la organización de seguridad en la nube de Microsoft. Wiz ahora publica investigación sobre un fallo en lo profundo de la infraestructura operada por el antiguo empleador de sus fundadores.

Los autores de Wiz nombraron la cadena CosmosEscape. Según el informe técnico de Wiz, los investigadores usaron consultas Gremlin especialmente elaboradas contra una base de datos que controlaban para obtener ejecución de código en el backend de Cosmos DB y, finalmente, alcanzar un secreto de firma a nivel de plataforma que Wiz llamó el "Cosmos Master Key".

Una consulta cruzó el límite entre tenants

La primera pista fue una excepción de .NET generada mientras los investigadores de Wiz consultaban una base de datos que controlaban. La mayoría de sistemas Gremlin de código abierto se basan en la Java Virtual Machine, por lo que la excepción indicaba que Microsoft había construido un motor personalizado que traducía consultas Gremlin a código .NET.

Wiz dice que el motor restringía lo que el código generado podía hacer, pero su sandbox no contempló suficientemente la reflexión de .NET. Los investigadores desarrollaron capacidades de lectura y escritura de archivos, seguidas de ejecución de código arbitrario en el backend de Cosmos DB. Una captura de pantalla en el informe muestra una consulta elaborada ejecutando el comando hostname.

Ese código se ejecutó en un componente llamado DB Gateway, que procesa consultas de clientes en clústeres multi-tenant de Service Fabric. Las bases de datos de los clientes estaban alojadas en otra parte, pero el gateway necesitaba sus primary keys para acceder a ellas. Esas claves otorgan acceso completo de lectura y escritura.

El gateway obtuvo las claves de cuenta a través de una credencial de firma disponible desde su clúster. Wiz encontró que la credencial funcionaba entre clientes, regiones e interfaces de Cosmos DB, incluyendo SQL, MongoDB, Cassandra y Gremlin. Endpoints públicamente accesibles podían usarla para solicitar la clave primaria de una cuenta elegida, según el informe.

La misma credencial abrió un segundo camino a través de una base de datos regional que Wiz llama la Config Store. Ese directorio contenía nombres de cuentas de Cosmos DB, identificadores de tenant y suscripciones, configuraciones de red y etiquetas. Un atacante podría haberla buscado por una organización específica y luego solicitar la clave primaria de la cuenta de esa organización.

Wiz dice que la cadena también alcanzó bases de datos privadas y aisladas por red. El DB Gateway comprometido era responsable de hacer cumplir esas restricciones de red, colocando el ataque dentro del límite que los clientes confiaban para el aislamiento. Debido a que la falla residía en la capa de servicio de Cosmos DB, los clientes no podían corregirla mediante sus propias configuraciones.

El alcance potencial se extendía a productos propios de Microsoft. Wiz identificó Microsoft Teams, Microsoft Entra ID y Microsoft Copilot como servicios que almacenan datos en Cosmos DB. El informe dice que las bases de datos que soportan esos servicios fueron potencialmente alcanzables a través de la misma cadena. Microsoft no encontró evidencia de que alguien explotara la vulnerabilidad fuera de las pruebas de Wiz, según la declaración incluida en el informe de Wiz.

Microsoft dice que solucionó completamente el problema

Wiz dice que Microsoft remendó por completo el problema, eliminó el Cosmos Master Key y añadió salvaguardas destinadas a prevenir ataques similares. En la declaración del proveedor incluida en el informe de Wiz, Microsoft dijo que revisó los registros de acceso y no encontró actividad no autorizada más allá de las pruebas de los investigadores. Microsoft también afirmó que no se requiere ninguna acción por parte de los clientes.

La remediación descrita por Wiz va más allá del sandbox de Gremlin. Eliminar la credencial de firma entre tenants abordó la decisión de diseño que convirtió una fuga desde el sandbox en una compromisión a nivel de servicio.

Wiz dice que presentará la consulta completa en una próxima charla en Black Hat USA. La compañía ha retenido la consulta completa del informe público hasta esa presentación.

Atlas recibe una prueba en el mundo real

La divulgación también da al trabajo de seguridad IA de Wiz un papel concreto en una investigación en vivo. Wiz dice que una versión temprana de Atlas, su investigador de vulnerabilidades con IA, asistió con CosmosEscape.

Wiz ha presentado a Atlas como un sistema que puede ayudar a reproducir e investigar vulnerabilidades, al mismo tiempo que reconoce que descubrir un fallo desconocido desde cero es más difícil.

CosmosEscape acerca a Atlas a esa categoría más difícil. La narrativa técnica sigue estando impulsada por las observaciones de los investigadores: detectar una excepción inesperada, inferir la existencia de un motor de ejecución personalizado y seguir las credenciales del gateway hacia el directorio interno de cuentas de Cosmos DB.

La contribución específica de Atlas determinará cuánto dirá CosmosEscape sobre la investigación de seguridad asistida por IA. Un agente que acelere las pruebas y la validación de exploits ya es útil. Un sistema que identifique de forma independiente el salto arquitectónico clave desde una fuga del sandbox hasta una credencial a nivel de plataforma representaría un avance mayor.

La investigación se convierte en parte del caso multinube de Wiz

La divulgación llega cuatro meses después de que Google completara la adquisición de Wiz el 11 de marzo. Google ha dicho que Wiz conservará su marca y seguirá dando soporte a Microsoft Azure, Amazon Web Services, Oracle Cloud y otros entornos.

Publicar un hallazgo grave en Azure sirve a ese posicionamiento multinube. Wiz ahora opera dentro de un proveedor de nube mientras vende cobertura de seguridad a través de nubes competidoras. Una investigación que somete la infraestructura de Microsoft a una inspección cercana ayuda a demostrar que la parte de Azure de ese compromiso sigue activa bajo la propiedad de Google.

También le sirve comercialmente a Wiz. Una vulnerabilidad que eludió el aislamiento de red del cliente y alcanzó la capa interna de autenticación del proveedor refuerza la premisa que Rappaport y sus cofundadores usaron para iniciar Wiz: el riesgo en la nube a menudo surge de las relaciones entre identidades, servicios y componentes del plano de control, más que de un único servidor mal configurado.

CosmosEscape es también una advertencia para los constructores de plataformas en la nube. Una fuga del sandbox debería haberse limitado al entorno de procesamiento de consultas. La presencia de una credencial a nivel de plataforma al otro lado de ese límite convirtió la ejecución de código en el flujo de trabajo de un cliente en una posible vía hacia todos los tenants. Microsoft eliminó esa credencial como parte de la solución a largo plazo. La arquitectura había otorgado a un componente interno una autoridad mucho mayor de la que podía sostener de manera segura.

Reader comments

Conversation for this story loads after sign-in.