Incidente de segurança do Ghostscript (VU#332928)
Em 21 de agosto de 2018, Tavis Ormandy, do Project Zero do Google, divulgou problemas de segurança na forma como o ImageMagick delega trabalho ao Ghostscript.
Essa vulnerabilidade também foi publicada como VU#332928 pelo Computer Emergency Response Team. Muitos sistemas operacionais incluem uma versão do ImageMagick e, de acordo com o relatório do CERT, praticamente todos eles são afetados. A Transloadit compila as próprias versões do ImageMagick, mas, conforme um pesquisador de segurança conhecido pelo apelido de Lawn divulgou de forma responsável em 22 de agosto às 19:14 UTC+1, a Transloadit também foi afetada.
Ao enviar uma imagem malformada de forma maliciosa, atacantes conseguiriam executar comandos arbitrários em nossas máquinas de codificação.
Assim que a equipe de suporte percebeu o alcance dessa vulnerabilidade, nossa equipe de resposta de segurança (Security Response Team, SRT) foi informada e iniciou a investigação às 20:24 UTC+1.
Descobrimos que a solução paliativa recomendada envolvia desativar o processamento de PS, EPS, PDF e XPS, o que obviamente teria consequências graves para muitos dos nossos clientes.
Nossos quatro engenheiros de segurança continuaram a investigação e chegaram a duas abordagens alternativas. Após alguma deliberação, concluiu-se que a melhor solução para a nossa situação era escanear os arquivos em busca desse novo tipo de conteúdo malicioso antes de repassá-los ao ImageMagick.
Às 21:50 UTC+1, um patch com essa finalidade já estava escrito e começamos a testá-lo. Resolvemos um problema não relacionado no nosso CI que impedia deploys e, às 23:33 UTC+1, o patch estava em produção, com o funcionamento confirmado tanto pela nossa SRT quanto pelo pesquisador de vulnerabilidades independente. Não estávamos mais vulneráveis a esse problema e continuávamos capazes de processar arquivos PS, EPS, PDF e XPS válidos.
Enquanto um dos nossos engenheiros de segurança escrevia o patch, os outros três continuaram investigando a gravidade do problema para a Transloadit. Às 21:58 UTC+1, determinou-se que, para a Transloadit, este incidente poderia ser classificado com gravidade: baixa, graças a esforços anteriores de combate a vulnerabilidades relacionadas ao ImageMagick:
Finalizamos e implantamos uma grande atualização para que nossas máquinas de codificação (que seriam as mais suscetíveis a esse tipo de ataque) agora funcionem sem nenhum segredo. Elas podem retirar Jobs de uma fila com acesso somente leitura e exportá-los com acesso somente de anexação (append-only). Todos os outros segredos e privilégios foram removidos.
Diante deste incidente, somos gratos por esses esforços anteriores e também a Lawn e a Sasha Usenko, chefe de segurança da Coursera, por nos comunicarem este problema de forma rápida e responsável.
Se você tiver qualquer dúvida, comentário ou preocupação sobre este problema ou sobre a forma como lidamos com ele, não deixe de entrar em contato conosco.
