Pesquisa da Snyk e da Redhunt Labs: análise das 1.000 principais organizações do GitHub
22 de junho de 2023
0 minutos de leituraO código aberto é essencial para o desenvolvimento moderno. Ele permite que as pessoas desenvolvedoras ampliem as funcionalidades de seus aplicativos e reduzam o tempo total de desenvolvimento. No entanto, esse modelo não é perfeito. A natureza dos softwares de terceiros e de suas dependências muitas vezes abre espaço para vulnerabilidades de segurança em bibliotecas e downloads.
Uma solução para esse problema são os gerenciadores de pacotes. Muitas linguagens, como JavaScript e Python, contam com gerenciadores de pacotes como npm (Node Package Manager) e pip (Preferred Installer Program), que usam arquivos específicos para determinar quais dependências devem ser baixadas. Quando uma dependência especifica uma versão, o gerenciador de pacotes baixa essa versão. No entanto, muitas vezes essas versões estão desatualizadas e podem conter vulnerabilidades de segurança.
Em um projeto de pesquisa recente, a Snyk e a Redhunt Labs buscaram conhecer melhor a postura de segurança de repositórios populares do GitHub. As 1.000 principais organizações do GitHub foram analisadas em busca de dependências inseguras em seus repositórios de código-fonte. Os pesquisadores extraíram as dependências e compararam suas versões com vulnerabilidades de segurança amplamente conhecidas para avaliar o estado de segurança desses repositórios. O relatório apresenta separadamente os resultados para repositórios de Java, JavaScript, Python e Ruby.
Para se concentrar nos repositórios com potencial de impacto, a pesquisa filtrou os repositórios por número de estrelas e palavras-chave específicas. No total, foram analisados 11.900 repositórios, nos quais foram encontradas 1.229.601 vulnerabilidades em 15.584 arquivos de dependências vulneráveis.
Entre as descobertas estão:
A desserialização de dados não confiáveis foi o tipo de vulnerabilidade mais prevalente nos repositórios Java, com impressionantes 130.831 ocorrências — 40% do total de vulnerabilidades identificadas.
A poluição de protótipo foi a vulnerabilidade mais comum identificada em JavaScript (62%). No total, os repositórios continham 5,49,566 vulnerabilidades.
Entre as 72.082 vulnerabilidades encontradas nos 2.602 arquivos de dependências dos repositórios Python, 16.590 eram de gravidade alta ou crítica.
Por fim, nos repositórios Ruby, 50% das vulnerabilidades são classificadas como críticas ou altas.
O estudo também destaca os dez pesquisadores que relataram o maior número de vulnerabilidades.
Baixe o relatório hoje mesmo para saber mais sobre a abordagem, a metodologia e os resultados deste estudo interessante com a RedHunt Labs.
Comece a resolver desafios de capture the flag
Aprenda a resolver desafios de capture the flag assistindo sob demanda ao nosso workshop virtual introdutório.
