Los investigadores de Orca Security descubrieron una vulnerabilidad crítica que afectaba a Azure Cosmos DB y que permitía el acceso no autorizado de lectura y escritura a los contenedores.

Apodado CosMiss, el problema de seguridad reside en los cuadernos de Jupyter incorporados de Azure Cosmos DB, que se integran en el portal de Azure y las cuentas de Azure Cosmos DB para consultar, analizar y visualizar fácilmente datos y resultados de NoSQL.

Azure Cosmos DB es la base de datos NoSQL completamente administrada de Microsoft con un amplio soporte de tipo API para aplicaciones de todos los tamaños. Jupyter Notebooks es una plataforma interactiva basada en web que permite a los usuarios acceder a los datos de Cosmos DB.

El problema que encontraron los investigadores de Orca Security fue que los portátiles Cosmos DB Jupyter carecían de controles de autenticación para evitar el acceso no autorizado, y si se podía cambiar el UUID del espacio de trabajo del portátil, también se podía cambiar un contenedor.

«Si un atacante conoce el UUID del espacio de trabajo del portátil, el ‘ID de reenvío’ del portátil, obtiene permisos completos en el portátil, incluido el acceso de lectura y escritura, sin autenticación» – Conservación de orcas

Los investigadores de Orca informaron sus hallazgos a Microsoft el 3 de octubre de 2022, y el proveedor de software solucionó los problemas críticos en dos días, el 5 de octubre de 2022.

Los investigadores publicaron hoy Un registro técnico completo Se proporcionó una prueba de concepto (PoC) que permitió la implementación del defecto y el código. Como Microsoft ya ha publicado una solución, el exploit ya no funciona.

READ  Google Play Store está recibiendo un rediseño centrado en Chromebook y tabletas

Detalles de Cosmos

Cuando un usuario crea un nuevo bloc de notas en Azure Cosmos DB, se crea un nuevo punto de conexión con un nuevo ID de sesión/bloc de notas único (UUIDv4).

Los investigadores revisaron el tráfico de la solicitud desde el cuaderno recién creado al servidor y notaron la presencia de un encabezado de autenticación.

Cuando eliminaron este encabezado y enviaron una solicitud para enumerar todos los cuadernos en ese servidor, los investigadores notaron que el servidor respondía normalmente, por lo que no se necesitaba el encabezado de autenticación.

Solicitud de prueba sin token de autenticación y respuesta normal
Solicitud de prueba sin token de autenticación y respuesta normal (Seguridad Orca)

Al probar otros tipos de solicitudes PUT válidas con cargas JSON, los investigadores de Orca descubrieron que el código en el cuaderno se podía cambiar, sobrescribir datos, inyectar nuevos fragmentos o eliminarlos.

Además, dado que el comando anterior expone todas las identificaciones de las computadoras portátiles en una sola plataforma, los atacantes pueden acceder y cambiar cualquiera de ellas.

Para ir un paso más allá, un atacante puede modificar el archivo que crea el panel de Explorer inyectando código de Python y luego cargar Cosmos Data Explorer a través de la interfaz de Azure.

Se agregó el código de compilación inversa al módulo Explorador de datos
Se agregó el código de compilación inversa al módulo Explorador de datos (Seguridad Orca)

Cuando se carga Data Explorer, el código de Python se ejecuta automáticamente, lo que le da al atacante un shell inverso en el cliente.

Debido a que Azure Cosmos DB es una base de datos distribuida sin servidor totalmente administrada, las correcciones se realizan en el lado del servidor, por lo que los usuarios no necesitan tomar ninguna medida para mitigar el riesgo.