Я слышал, что могут возникнуть проблемы безопасности при использовании ImageMagick на произвольных изображениях, предоставленных пользователем. Например, ссылка ниже дает доказательства того, что раньше были некоторые эксплойты переполнения буфера. Кто-нибудь знает, могу ли я теперь безопасно использовать это как часть веб-сервиса, работающего с пользовательскими изображениями?
решение1
Это предупреждение по безопасности от 2006 года. У всего ПО есть ошибки, но я бы не сказал, что у ImageMagick их больше, чем у другого ПО. Серьезно, если вы внедряете веб-сервис, то вероятность взлома через Apache, скорее всего, не меньше, чем через ImageMagick.
Короче говоря, не беспокойтесь об этом, но регулярно обновляйте все свое программное обеспечение.
EDIT: кстати, я помогал клиенту реализовать веб-сервис, использующий ImageMagick, и я ни разу не слышал ни об одной проблеме с ним.
решение2
Да, существует риск безопасности — в программном обеспечении есть ошибки, и некоторые из них могут быть использованы для атаки на систему, на которой оно работает.
Но вы можете минимизировать риск:
Создайте учетную запись пользователя, которая имеет минимум разрешений, чтобы этого было достаточно для запуска ImageMagick. Теперь используйте только эту учетную запись для запуска ImageMagick
Включить автоматические обновления безопасности: системы Linux, такие как Ubuntu, можно настроить на автоматическую установку исправлений безопасности. Это сокращает время, в течение которого ваша система будет уязвима в случае обнаружения уязвимости. Система Windows также имеет систему автоматического обновления, но она не включает стороннее программное обеспечение, такое как ImageMagick.
решение3
Нет.
ImageMagick был разработан для гибкости. Он не защищен от искусственно созданных входных данных, как библиотеки обработки изображений браузера. Он, вероятно, будетпо-прежнему гораздо легче находить уязвимости, пригодные для эксплуатациив библиотеке вроде ImageMagick, чем в браузере.
Злоумышленник, обнаруживший переполнение буфера в ImageMagick, может затем использовать это для запуска произвольного кода с разрешениями процесса, запускающего ImageMagick.
Это может предоставить злоумышленнику плацдарм, который он может использовать для дальнейшего повышения привилегий, например, с помощьюPATH и атаки с использованием троянских коней, вводя в заблуждение другие бэкэнды или используя другие, неисправленные службы внутри вашей производственной среды.
Если вы абсолютнодолжениспользовать ImageMagick для стороннего контента, см. «Другие соображения безопасности» вДокументы политики безопасности ImageMagick:
Помимо политики безопасности, вы можете сделать ImageMagick более безопасным с помощью...
- поддержание ImageMagick в актуальном состоянии. В последних выпусках исправлены все уязвимости безопасности, которые мы обнаружили в прошлом.
- очистка любых имен файлов или параметров командной строки, которые вы передаете в ImageMagick.
- запуск ImageMagick в очищенном программном контейнере, таком как Docker.
- запуск ImageMagick от имени пользователя с минимальными привилегиями (например, 'nobody'). явная установка типа файла изображения. Например, используйте имя файла png:image.png вместо image.png. Без явного указания типа изображения в имени файла ImageMagick угадывает тип изображения.