Questão É seguro usar o ImageMagick em imagens de usuários?


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 estouro de buffer. Alguém sabe se agora posso usá-lo com segurança como parte de um serviço da Web que lida com imagens do usuário?

http://rhn.redhat.com/errata/RHSA-2006-0633.html


4


origem




Respostas:


Esse aviso de segurança é de 2006. Todos os softwares têm bugs, mas eu não diria que o ImageMagick tem mais do que outro software. Sério, se você estiver implementando um serviço da web, provavelmente terá a mesma probabilidade de ser hackeado por alguém através do Apache do que com o ImageMagick.

Resumindo, não se preocupe, mas mantenha todo o seu software atualizado.

EDIT: por sinal, ajudei um cliente a implementar um serviço da web que usava o ImageMagick, e nunca ouvi falar de um problema com ele.


5



ImageMagick é trivial para hackear porque seus codecs não foram projetados para manipular dados maliciosos. Vejo imagetragick.com  Sandbox ImageMagick corretamente ou não usá-lo com dados não confiáveis. - Lilith River


Sim, há um risco de segurança - o software tem erros e alguns deles podem ser usados ​​para atacar o sistema em que ele é executado.

Mas você pode minimizar o risco:

  1. Crie uma conta de usuário que tenha um mínimo de permissões para que seja suficiente apenas para executar o ImageMagick. Agora use apenas essa conta para executar o ImageMagick

  2. Ativar atualizações de segurança automáticas: Sistemas Linux como o Ubuntu podem ser configurados para instalar automaticamente as 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 tem um sistema de atualização automática, mas isso não inclui software de terceiros como o ImageMagick.


7



Eu acho que esta deveria ser a resposta aceita. - Sam Rueby


Não.

O ImageMagick foi projetado para flexibilidade. Ele não é protegido contra entradas criadas do mesmo modo que as bibliotecas de processamento de imagens do navegador. Provavelmente Continua a ser muito mais fácil encontrar erros exploráveis em uma biblioteca como o ImageMagick do que em um navegador.

Um invasor que encontrar um estouro de buffer no ImageMagick poderá usá-lo para executar código arbitrário com as permissões do processo que está executando o ImageMagick.

Isso pode dar a um atacante uma cabeça de ponte que pode usar para aumentar ainda mais os privilégios; por exemplo via Ataques PATH e cavalo de tróia, confundindo outros backends ou explorando outros serviços não corrigidos em seu ambiente de produção.

Se você absolutamente devo usar o ImageMagick em conteúdo de terceiros, consulte "Outras considerações de segurança" em Documentos da 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 últimos lançamentos têm correções para quaisquer falhas de segurança que descobrimos no passado.
  • desinfecção de qualquer nome de arquivo 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').   definindo explicitamente o tipo de arquivo de imagem. Por exemplo, use o nome do 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.

-1