Vulnerabilidades XSS en servicios de Azure permitirían acceso no autorizado a sesiones de usuarios

Recientemente se han encontrado dos vulnerabilidades de gran riesgo en los servicios de Azure Bastion y Azure Container Registry. Esta vulnerabilidad permite a un atacante conseguir una secuencia de comando en sitios cruzados o XSS a través de iframe-post Messages.

Microsoft Azure ofrece un diverso rango de servicios que otorga a las organizaciones soluciones infraestructura de nube conveniente y escalable. Sin embargo, hasta los sistemas más robustos pueden ser victima de vulnerabilidades, tal es el caso de la vulnerabilidad que nos aborda.

La vulnerabilidad en cuestión permite a un atacante el acceso no autorizado a la sesión de la victima dentro del iframe comprometido de los servicios de Azure.

XSS

Una secuencia de comandos en sitios cruzados, o XSS por sus siglas en inglés, sucede cuando un atacante inyecta scripts maliciosos dentro de un sito web de confianza, los cuales son ejecutados posteriormente por usuarios de navegadores, lo que puede concluir en accesos no autorizados a información, robo de datos, teniendo en los peores casos, el comprometimiento completo de los sistemas.

En este particular caso, los atacantes utilizaron la vulnerabilidad en iframe de postMessage como punto de entrada para conducir la explotación de fallos de XSS.

postMessage

El servicio de postMessage es una API web que permite la comunicación entre diferentes orígenes, (diferentes dominios, protocolos o puertos) en una página web. Lo que permite a secuencias de comando en una página, enviar mensajes hacía otra página. La vulnerabilidad de iframe de postMessage permite a un atacante insertar servidores remotos en los endpoins utilizando la etiqueta de iframe y en última instancia, ejecutar código malicioso JS lo que pone en peligro información sensible.

Azure Bastion

Azure Bastion es un servicio que ofrece una manera segura y fluida de acceso a maquinas virtuales en entornos de Azure. Este actúa como un servidor de salto, proporcionando una pasarela dedicada y reforzada para conectarse a las máquinas virtuales de forma segura sin exponerlas a la Internet pública.

Este servicio funciona mediante la creación de protocolo de escritorio remoto (RDP) privado, o bien, una sesión de Secure Shell (SSH) entre las máquinas de los usuarios locales y la máquina virtual de Azure. Lo que elimina la necesidad de una IP publica en una conexión en la VM o una VPN.

Sin embargo, para la explotación de esta vulnerabilidad, un actor malicioso, debería realizar reconocimientos en diferentes servicios de Azure para localizar aquellos endopoints vulnerables incrustados en el portal de Azure que pueden tener headers X-Frame-Options faltantes o Políticas de Seguridad de Contenido (CSPs) débiles.

Una vez el atacante incrusta exitosamente el iframe en un servidor remoto, este procede a explotar el endpoint mal configurado. Los atacantes, entonces, se centran en el manejador postMessage, que gestiona eventos remotos como postMessages.

Mediante el análisis de postMessages legítimos, enviados al iframe desde porta.azure.com, el atacante puede crear payloads diseñados apropiadamente para incrustar el iframe vulnerable en servidor controlado por el actor y crear un postMessage que entrega la carga maliciosa.

Así, cuando una víctima visite el endpoint comprometido, la carga maliciosa postMessage se entrega al iframe incrustado, activando la vulnerabilidad XSS y ejecutando el código del atacante en el contexto de la víctima.

Una explotación exitosa de la vulnerabilidad XSS garantiza al atacante acceso no autorizado a la sesión de la víctima, en el servicio de Azure comprometido. Lo que puede conducir a consecuencias graves como acceso no autorizado a información, privilegios de administrador, robo de la información, modificaciones no autorizadas, o bien, la interrupción de los servicios de Azure.

Para el caso de Azure Bastion, la vulnerabilidad se encuentra en el Solucionador de problemas de conexión de Azure Network Watcher. Debido a la incorrecta implementación de chequeo de validación, un atacante puede realizar una página HTML especialmente diseñada, la cual una vez renderizada en el buscador de la víctima, da lugar a la ejecución de código.

Según se puede observar en el reporte presentado por Orca, la combinación de varios factores relacionados a una baja seguridad, han contribuido en la vulnerabilidad, permitiendo así a los atacantes automatizar la ejecución de payload SVG malicioso de parte de la víctima.

Azure Container Registry

Este es un servicio gestionado en la nube que permite a los usuarios desplegar, gestionar y almacenar imágenes de contenedores desde una ubicación centralizada, permitiendo así gestionarlas y versionarlas eficazmente.

En el caso de Azure Container Registry, la vulnerabilidad radica en un fragmento de código HTML en una página web no utilizada como parte de la extensión Azure Portal de ACR. Según investigación de Orca, se identificó el archivo HTML que permitía la inyección de código.

Según las observaciones realizadas, la página principal del portal contenía un iframe que se comunicaba con postMessages con un archivo HTML. Se descubrió entonces que el método de comunicación era susceptible de explotación, debido a la falta de una comprobación de origen.

Tras la revelación responsable de los fallos el 13 de abril y el 3 de mayo de 2023, Microsoft desplegó correcciones de seguridad para remediarlos. No es necesario que los usuarios de Azure tomen ninguna otra medida.

Related Post