Guia rápido sobre a vulnerabilidade Zip Slip
28 de junho de 2018
0 minutos de leituraDepois dos nossos dois últimos guias rápidos, sobre inferência local de tipos em Java e boas práticas de segurança no GitHub, tenho o prazer de dar continuidade à nossa série de guias práticos e fáceis de imprimir, desta vez abordando uma vulnerabilidade de segurança mais específica que afetou milhares de aplicações. O guia deste mês se concentra na vulnerabilidade Zip Slip. Em 5 de junho de 2018, após meses de pesquisa com bibliotecas e projetos de gerenciamento de arquivos compactados bastante conhecidos, divulgamos publicamente uma vulnerabilidade de sobrescrita arbitrária de arquivos, chamada Zip Slip. Essa vulnerabilidade existe há várias décadas, mas, recentemente, tornou-se muito mais comum em bases de código de destaque em diversos ecossistemas.
Zip Slip é uma forma de travessia de diretórios que pode ser explorada durante a extração de arquivos de um arquivo compactado. A vulnerabilidade de travessia de diretórios permite que um invasor acesse partes do sistema de arquivos fora da pasta de destino onde os arquivos deveriam ficar. Em seguida, o invasor pode sobrescrever arquivos executáveis e executá-los remotamente ou esperar que o sistema ou o usuário os execute, obtendo assim execução remota de comandos na máquina da vítima. A vulnerabilidade também pode causar danos ao sobrescrever arquivos de configuração ou outros recursos confidenciais e pode ser explorada tanto em máquinas cliente (de usuários) quanto em servidores.
Para ver um exemplo de exploração dessa vulnerabilidade, assista ao breve vídeo abaixo, que mostra como arquivos confidenciais podem ser sobrescritos, levando à execução remota de código [embed]https://www.youtube.com/watch?v=l1MT5lr4p9o\[/embed\]Este guia rápido aborda quatro dos principais ecossistemas mais afetados pela vulnerabilidade Zip Slip. Para cada ecossistema, mostramos trechos de código vulnerável de exemplo, seguidos de código de validação que pode corrigir o problema. Em vez de repetir aqui todo o conteúdo que reunimos sobre essa vulnerabilidade, é melhor ir direto à nossa pesquisa e ao nosso repositório no GitHub:
Página de pesquisa sobre Zip Slip - Traz informações sobre o contexto do Zip Slip e sobre ataques de travessia de diretórios em geral. Explica como pode ser o fluxo de uma aplicação vulnerável e o que você pode fazer para descobrir se está vulnerável. Também apresenta trechos de código vulnerável de exemplo para todos os ecossistemas pesquisados, além de sugestões de código de validação.
Repositório comunitário sobre Zip Slip - Para conferir as informações mais recentes sobre bibliotecas vulneráveis ao Zip Slip ou contribuir adicionando ou atualizando bases de código vulneráveis, acesse nosso repositório comunitário no GitHub e envie um PR! Snyk ajuda você a encontrar e corrigir vulnerabilidades conhecidas nas suas dependências.
Para começar gratuitamente, crie uma conta gratuita na Snyk e teste sua aplicação para descobrir se ela está vulnerável ao Zip Slip ou a outras vulnerabilidades conhecidas.



