He oído que puede haber problemas de seguridad al usar ImageMagick en imágenes arbitrarias proporcionadas por el usuario. Por ejemplo, el siguiente enlace proporciona evidencia de que solía haber algunas vulnerabilidades de desbordamiento del búfer. ¿Alguien sabe si ahora puedo utilizar esto de forma segura como parte de un servicio web que trata con imágenes de usuarios?
Respuesta1
Ese aviso de seguridad es de 2006. Todo el software tiene errores, pero no diría que ImageMagick tiene más que otro software. En serio, si estás implementando un servicio web, es probable que alguien te piratee a través de Apache que con ImageMagick.
En resumen, no te preocupes por eso, pero mantén todo tu software actualizado.
EDITAR: por cierto, ayudé a un cliente a implementar un servicio web que usaba ImageMagick y nunca escuché de ningún problema con él.
Respuesta2
Sí, existe un riesgo de seguridad: el software tiene errores y algunos de ellos pueden usarse para atacar el sistema en el que se ejecuta.
Pero puedes minimizar el riesgo:
Cree una cuenta de usuario que tenga un mínimo de permisos para que sea suficiente para ejecutar ImageMagick. Ahora use solo esa cuenta para ejecutar ImageMagick
Habilite las actualizaciones de seguridad automáticas: los sistemas Linux como Ubuntu se pueden configurar para instalar automáticamente correcciones de seguridad. Esto reduce el tiempo que su sistema es vulnerable en caso de que se encuentre una vulnerabilidad. El sistema Windows también tiene un sistema de actualización automática, pero eso no incluye software de terceros como ImageMagick.
Respuesta3
No.
ImageMagick fue diseñado para brindar flexibilidad. No está protegido contra entradas manipuladas como lo están las bibliotecas de procesamiento de imágenes de un navegador. probablemente lo haráSigue siendo mucho más fácil encontrar errores explotables.en una biblioteca como ImageMagick que en un navegador.
Un atacante que encuentre un desbordamiento del búfer en ImageMagick puede usarlo para ejecutar código arbitrario con los permisos del proceso que ejecuta ImageMagick.
Esto puede darle al atacante una cabeza de playa que puede utilizar para aumentar aún más los privilegios; por ejemplo a través dePATH y ataques de caballos de Troya, confundiendo otros backends o explotando otros servicios sin parches dentro de su entorno de producción.
Si absolutamentedebeuse ImageMagick en contenido de terceros; consulte "Otras consideraciones de seguridad" enDocumentos de política de seguridad de ImageMagick:
Además de la política de seguridad, puede hacer que ImageMagick sea más seguro si...
- manteniendo ImageMagick actualizado. Las últimas versiones tienen correcciones para cualquier falla de seguridad que descubrimos en el pasado.
- desinfectar cualquier nombre de archivo u opción de línea de comando que pase a ImageMagick.
- ejecutar ImageMagick en un contenedor de software desinfectado como Docker.
- ejecutando ImageMagick como el usuario con menos privilegios (por ejemplo, 'nadie'). establecer explícitamente el tipo de archivo de imagen. Por ejemplo, utilice el nombre de archivo png:image.png en lugar de image.png. Sin un tipo de imagen explícito en el nombre del archivo, ImageMagick adivina el tipo de imagen.