Clicky

Gran número de sitios en peligro por vulnerabilidad crítica de procesamiento de imágenes

exploit ImageMagick

El código atacante explota una vulnerabilidad crítica de ImageMagick

Un gran número de sitios web son vulnerables a un ataque simple que permite a los atacantes ejecutar código malicioso oculto en el interior de imágenes trampas explosivas.

La vulnerabilidad reside en ImageMagick, una biblioteca de procesamiento de imágenes ampliamente utilizada que está soportada por PHP, Ruby, NodeJS, Python, y alrededor de una docena de otros lenguajes. Muchos medios sociales y sitios de blogs, así como un gran número de sistemas de gestión de contenidos, directa o indirectamente dependen de procesamiento basado en ImageMagick para que puedan cambiar el tamaño de las imágenes subidas por los usuarios finales.

Según el desarrollador e investigador en seguridad Ryan Huber, ImageMagick sufre de una vulnerabilidad que permite que las imágenes con formato incorrecto obliguen a un servidor Web a ejecutar código a la elección de un atacante. Los sitios web que utilizan ImageMagick y permiten a los usuarios subir imágenes están en riesgo de ataques que podrían comprometer totalmente su seguridad.

"La vulnerabilidad es trivial, por lo que esperamos que esté disponible dentro de los horarios de este post", escribió Huber en una entrada de blog publicada el martes. Llegó a decir: "Hemos determinado colectivamente que estas vulnerabilidades están disponibles para personas que no sean la persona (s) que los descubrió o un número desconocido de personas que tienen acceso a estas vulnerabilidades hace de este un tema crítico para todo el mundo que use este software.. ".

Casi 24 horas después de que se publicó el post de Huber, investigadores de la firma de seguridad Suciri publicaron un análisis independiente que está de acuerdo con la evaluación de Huber. También arroja nueva luz sobre cómo trabaja el exploit. Ellos dijeron que las últimas versiones de ImageMagick no filtran correctamente los nombres de los archivos subidos antes de pasarlos a procesos del sistema como HTTPS. La omisión permite a los atacantes ejecutar comandos a su elección, lo que lleva a una capacidad completa de comando remoto.

"La vulnerabilidad es muy fácil de explotar", escribió en el post del miércoles el fundador y CTO Sucuri. "Un atacante sólo necesita una herramienta cargadora de imágenes que aprovecha ImageMagick. Durante nuestra investigación hemos encontrado muchas aplicaciones web populares y productos SaaS vulnerables a ella (a la gente le encanta Gravatars), y hemos estado en contacto con ellos en privado para parcheadr las cosas. Desafortunadamente, incluso con toda la atención de los medios, no todo el mundo es consciente de este problema".

Como predijo Huber, no pasó mucho tiempo para que las personas desarrollasen hazañas de prueba de concepto. Al menos una de ellas está a disposición del público.

Mantenedores de ImageMagick también han reconocido la posibilidad de vulnerabilidades críticas que permiten la ejecución remota de código. Ellos no han emitido ningún parche, pero sí sugieren a los administradores de sitios web añadir varias líneas de código para que los archivos de configuración bloqueen al menos algunos de los posibles exploits. Huber ha hecho la misma recomendación y pone las líneas en este archivo descargable (verlas más abajo). Yendo un paso más allá al asesorar a los sitios que utilizan ImageMagick también deben verificar que todos los archivos de imagen cargados comienzan con los esperados "bytes mágicos" que corresponden a los tipos de archivo de imagen antes de permitir que los archivos se procesen. Los administradores deben considerar suspender temporalmente la carga de imágenes en los casos en que estas mitigaciones no puedan ser puestas en marcha inmediatamente.

El error de ejecución de código fue descubierto por el investigador de seguridad Nikolay Ermishkin, que se espera libere un aviso en las próximas horas. Huber lo hizo público en un intento de prevenir ataques maliciosos después de conocer los detalles de la vulnerabilidad que ya estaban siendo ampliamente difundidos por delante de divulgación planificada de Ermishkin. La vulnerabilidad de ejecución de código salió a la luz después de que se utilizó en las últimas presentaciones de recompensas de errores.

Un escenario de ataque implicaría a un sitio de medios sociales, servicio de blog, o sitio de noticias que acepta la subida de imágenes de usuarios finales que no son de confianza. Un atacante podría cargar un archivo que termina en png, jpg, u otra extensión soportada, a pesar de que los contenidos estén en un formato diferente. Una vez que ImageMagick detecta el formato no coincidente, intentará transformar la imagen en un formato intermedio que en algunos casos los resultados viajan a una ruta de decodificación insegura. Esa condición, a su vez, puede provocar la ejecución de código en el servidor.

Para darte una idea de los agujeros de software en que puede entrar, aquí está un ejemplo de archivo que va a ser más listo ImageMagick:

push graphic-context
viewbox 0 0 640 480
fill 'url(https://example.com/image.jpg"|ls "-la)'
pop graphic-context

Guarda el archivo .mvg con cualquier extensión que desees, como por ejemplo exploit.jpg. A continuación, ejecuta a través de ImageMagick:

# convert exploit.jpg out.png

Y sí, ImageMagick ejecutará las ls -l de comandos incrustada en el archivo. Reemplazar ese comando con algo más malicioso, tirarlo a una aplicación web vulnerable, y, bueno, de lo que has roto algunas leyes.

Proteccion

Recomiendo a todos seguir la recomendación de los desarrolladores de ImageMagick y editar el archivo /etc/ImageMagick/policy.xml y desactivar el procesamiento de los comandos MVG, HTTPS, EPHEMERAL y MSL dentro de los archivos de imagen. En la sección, agrega las siguientes líneas:

<policymap>
...
<policy domain="coder" rights="none" pattern="EPHEMERAL" />
<policy domain="coder" rights="none" pattern="HTTPS" />
<policy domain="coder" rights="none" pattern="URL" />
<policy domain="coder" rights="none" pattern="MVG" />
<policy domain="coder" rights="none" pattern="MSL" />
</policymap>

Huber dijo que las mitigaciones que recomendó son eficaces contra todas las muestras del exploit que ha visto, pero él pasó a decir que no hay garantía de que las medidas vayan a eliminar todo tipo de ataques. Hasta que se de a conocer el alcance completo de la vulnerabilidad, las personas que utilizan ImageMagick deben suponer que las medidas de mitigación están incompletas. Eso significa que los administradores deben controlar de cerca esta vulnerabilidad y estar listos para poner defensas adicionales en su lugar. Otra opción es ya sea desinfectar las imágenes antes de que sean procesadas "‹"‹por ImageMagick o desactivar todos los formatos excepto los necesarios.

La amenaza al menos en parte se debe a que ImageMagick apoyo a más de 200 formatos diferentes, incluyendo nroff (páginas man) y PostScript. A más largo plazo, los administradores deben considerar el cambio a GraphicMagick, un tenedor de ImageMagick que soporta un número mucho más reducido de tipos de archivo.

Actualización: Alrededor de 40 minutos después de que se publicó este artículo, el investigador de seguridad Dan Tentler dijo que ha desarrollado un trabajo de prueba de concepto del exploit.

Hay más discusión sobre el tema a nivel de desarrollador aquí .

Jesus_Caceres