Tecnología de contenedor en la nube Microsoft Azure permite a los hackers actualizar directamente sus archivos

Especialistas en ciberseguridad de Intezer reportan el hallazgo de una vulnerabilidad de escalada de privilegios en Microsoft Azure Functions cuya explotación permitiría a los actores de amenazas escapar de un contenedor.

Los expertos mencionan que estos contenedores se ejecuta con la marca Docker privilegiada, por lo que los archivos de dispositivo en el directorio /dev se pueden compartir entre el host de Docker y el invitado del contenedor: “La falla existe debido a que estos archivos de dispositivo tienen permisos de lectura y escritura para otros usuarios”, señala el reporte.

El reporte agrega que los laxos permisos en los archivos del dispositivo no son un comportamiento estándar. Esta condición se vuelve problemática dado que el entorno de Azure Functions contiene 52 particiones diferentes con sistemas de archivos, que pueden ser visibles para todos los usuarios.

“Al parecer estas particiones pertenecían a otros clientes de Azure Functions, aunque reportes adicionales sugieren que estas particiones eran solo sistemas de archivos ordinarios utilizados por el mismo sistema operativo, incluyendo el sistema de archivos del host de Docker pmem0. El riesgo aparece cuando los actores de amenazas acceden al entorno de las víctimas, un usuario con privilegios reducidos, por ejemplo.”

Los expertos descubrieron que, al usar la utilidad Debugfs, los usuarios sin privilegios pueden atravesar fácilmente el sistema de archivos de Azure Functions, además de poder editar cualquier archivo en este recurso.

Los investigadores encontraron una forma de evitar esta limitación al realizar cambios directos en los archivos: “Creamos un vínculo físico a través de Debugfs en el directorio diff de nuestro contenedor para que los cambios se irradien a nuestro contenedor”, señala el reporte. “Este enlace físico aún requiere permisos de root para editar, por lo que este método también requiere del uso de zap_block para editar su contenido. A continuación se usa posix_fadvise para indicarle al kernel las páginas de caché de lectura que deberán ser descartadas para propagarlas a través del archivo del host de Docker.”

Debugfs también admite un modo de escritura para que los usuarios realicen cambios en el disco subyacente: “Es importante tener en cuenta que escribir en un disco montado es generalmente una mala idea, ya que puede causar daños en el disco”. Con la capacidad de editar archivos arbitrarios que pertenecen al host de Docker, un atacante puede realizar cambios en el archivo /etc/ld.so.preload, lo que permitiría un ataque de propagación de objetos maliciosos compartidos a través del directorio de diferencias del contenedor además de la posibilidad de ejecutar código remoto en el contenedor.

Hasta el momento Microsoft sigue sin pronunciarse al respecto. Para conocer más sobre riesgos de seguridad informática, malware, vulnerabilidades y tecnologías de la información, no dude en ingresar al sitio web del Instituto Internacional de Seguridad Cibernética (IICS).