Ouvi dizer que pode haver preocupações de segurança ao usar o ImageMagick em imagens arbitrárias fornecidas pelo usuário. Por exemplo, o link abaixo fornece evidências de que costumava haver algumas explorações de buffer overflow. Alguém sabe se agora posso usar isso com segurança como parte de um serviço da Web que lida com imagens de usuários?
Responder1
Esse aviso de segurança é de 2006. Todo software tem bugs, mas eu não diria que o ImageMagick tem mais do que outros softwares. Sério, se você estiver implementando um serviço da web, provavelmente será invadido por alguém por meio do Apache do que pelo ImageMagick.
Resumindo, não se preocupe com isso, mas mantenha todo o seu software atualizado.
EDIT: aliás, ajudei um cliente a implementar um serviço web que usava o ImageMagick e nunca ouvi falar de nenhum problema com ele.
Responder2
Sim, existe um risco de segurança - o software tem bugs e alguns deles podem ser usados para atacar o sistema em que é executado.
Mas você pode minimizar o risco:
Crie uma conta de usuário que tenha um mínimo de permissões para que seja suficiente para executar o ImageMagick. Agora use apenas essa conta para executar o ImageMagick
Habilite atualizações automáticas de segurança: Sistemas Linux como Ubuntu podem ser configurados para instalar automaticamente correções de segurança. Isso diminui o tempo que seu sistema fica vulnerável caso uma vulnerabilidade seja encontrada. O sistema Windows também possui um sistema de atualização automática, mas não inclui software de terceiros como o ImageMagick.
Responder3
Não.
ImageMagick foi projetado para flexibilidade. Ele não é protegido contra entradas elaboradas como as bibliotecas de processamento de imagens de um navegador. Provavelmente serácontinua sendo muito mais fácil encontrar bugs exploráveisem uma biblioteca como o ImageMagick do que em um navegador.
Um invasor que encontrar um buffer overflow no ImageMagick pode então usá-lo para executar código arbitrário com as permissões do processo que executa o ImageMagick.
Isso pode dar ao invasor uma base que ele pode usar para aumentar ainda mais os privilégios; por exemplo atravésPATH e ataques de cavalos de Tróia, confundindo outros back-ends ou explorando outros serviços não corrigidos dentro do seu ambiente de produção.
Se você absolutamentedeveusar o ImageMagick em conteúdo de terceiros, consulte "Outras considerações de segurança" emDocumentos de política de segurança do ImageMagick:
Além da política de segurança, você pode tornar o ImageMagick mais seguro...
- mantendo o ImageMagick atualizado. Os lançamentos mais recentes trazem correções para quaisquer falhas de segurança que descobrimos no passado.
- limpando quaisquer nomes de arquivos ou opções de linha de comando que você passa para o ImageMagick.
- executando o ImageMagick em um contêiner de software higienizado, como o Docker.
- executando o ImageMagick como o usuário com menos privilégios (por exemplo, 'nobody'). definir explicitamente o tipo de arquivo de imagem. Por exemplo, use o nome de arquivo png:image.png em vez de image.png. Sem um tipo de imagem explícito no nome do arquivo, o ImageMagick adivinha o tipo de imagem.