Skip to main content

Aumento de 88% nas vulnerabilidades em bibliotecas de aplicações em dois anos

Escrito por
the state op open source small

26 de fevereiro de 2019

0 minutos de leitura

Boas-vindas ao relatório anual da Snyk, State of Open Source Security 2019. Este relatório está dividido em várias publicações:

Ou baixe nosso belo relatório em PDF, feito com todo o cuidado, que reúne todas essas informações e muito mais em um só lugar.

Baixe o relatório State of Open Source Security 2019

Uma vulnerabilidade é uma vulnerabilidade, seja ela conhecida ou não. A principal diferença entre as duas é a probabilidade de um invasor conhecê-la e tentar explorá-la. Por isso, quanto mais conhecida for a vulnerabilidade, mais urgente será resolvê-la.

Uma vulnerabilidade conhecida pode ter um ID CVE associado, como parte de uma divulgação responsável, ou simplesmente ser divulgada na internet ou armazenada em bancos de dados abertos. Todos esses são tipos de vulnerabilidades conhecidas que você deve priorizar na hora de eliminar, pois têm maior probabilidade de serem exploradas em produção. Depois delas, considere também as vulnerabilidades registradas em bancos de dados fechados ou até compartilhadas na dark web.

As vulnerabilidades são encontradas em ritmo cada vez maior, quase dobrando nos últimos dois anos

Vulnerabilidades conhecidas em bibliotecas de aplicações

Hoje, vemos um aumento no número de vulnerabilidades relatadas em vários ecossistemas que monitoramos, incluindo PHP Packagist, Maven Central Repository, Golang, npm, NuGet, RubyGems e PyPI.

Em 2017, houve um aumento de 43% nas vulnerabilidades relatadas em todos os registros. Em 2018, esse total cresceu mais 33%.

Ao analisar cinco ecossistemas diferentes — PHP, Java, JavaScript, Python e Go —, observamos uma tendência de aumento no número de vulnerabilidades divulgadas em todos eles desde 2014.

Os números de 2018 ainda podem crescer devido a vulnerabilidades não divulgadas que só se tornarão públicas mais adiante neste ano, reforçando ainda mais essa tendência.

Em 2018, as novas divulgações para npm cresceram 47%, e as do Maven Central, 27%

Gráfico de linhas que mostra o aumento de novas vulnerabilidades de 2014 a 2018 nos ecossistemas PHP Packagist, Maven Central, npm, Golang e PyPI.

Em 2018, as vulnerabilidades divulgadas no PHP Packagist cresceram impressionantes 56%, enquanto as divulgações no Maven Central aumentaram 27%. Embora o ecossistema Golang seja menor, a pesquisa de segurança está crescendo: em 2018, foram relatadas 52% mais vulnerabilidades do que em 2017.

Ao analisar os dados de 2014 no banco de dados de vulnerabilidades da Snyk, observamos um forte aumento geral no número de vulnerabilidades em todos os ecossistemas.

Hoje, monitoramos 1.766 vulnerabilidades no Maven Central Repository, 1.268 no npm, 746 no PHP Packagist, 807 no PyPI e 94 no Golang.

Desde 2014, o número de vulnerabilidades no banco de dados da Snyk aumentou impressionantes 371%. As vulnerabilidades no npm cresceram incríveis 954%, e as do Maven Central, 346%.

Desde 2014, o número de vulnerabilidades no banco de dados da Snyk para npm cresceu 954% e, para o Maven Central, 346%

Tendências de gravidade

Ao analisar a gravidade das vulnerabilidades em bibliotecas de aplicações divulgadas nos últimos três anos em todos os ecossistemas de linguagens de programação, vemos que, em 2018, houve menos vulnerabilidades de alta gravidade do que no ano anterior.

No entanto, um dado interessante de 2017 e 2018 é que, nesses anos, houve mais vulnerabilidades de alta gravidade do que de média ou baixa gravidade, ao contrário do que ocorreu em 2016.

Gráfico de barras que mostra a gravidade das vulnerabilidades por ano: ocorrências de baixa, média e alta gravidade em 2016, 2017 e 2018.

Em destaque: Zip Slip

Em 2018, a equipe de pesquisa de segurança da Snyk divulgou de forma responsável várias ocorrências de uma vulnerabilidade chamada Zip Slip, uma vulnerabilidade crítica e disseminada que permite sobrescrever arquivos arbitrariamente. Ela pode ser explorada por meio de um arquivo compactado especialmente criado, com nomes de arquivo que permitem percorrer diretórios, e geralmente resulta na execução remota de comandos.

A equipe de segurança da Snyk descobriu a vulnerabilidade e a divulgou de forma responsável antes da divulgação pública, em 5 de junho de 2018. Ela afeta milhares de projetos, incluindo projetos da HP, Amazon, Apache, Pivotal e muitas outras empresas.

A pesquisa, que abrangeu diversos ecossistemas, identificou dezenas de vulnerabilidades em bibliotecas como Apache Ant, adm-zip, SharpCompress e outras, usadas por milhares de projetos em Java, npm, NuGet, Go, .NET, Ruby, Python e C++. Quase metade delas foi classificada como de alta gravidade.

"Quando descobrimos o primeiro caso da vulnerabilidade Zip Slip em um projeto grande, foi muito empolgante. Foi nosso momento de descoberta, mas ficamos extremamente surpresos ao perceber que todos os outros aplicativos tinham uma implementação vulnerável. Entendemos que essa vulnerabilidade não afetava apenas alguns aplicativos, mas inúmeros projetos em vários ecossistemas."

SnykSnyk

Danny Grander

Founder / Chief Security Officer, Snyk

Em destaque: vulnerabilidades sem CVEs

É comum que as equipes de segurança monitorem e respondam a novas vulnerabilidades divulgadas pelo National Vulnerabilities Database (NVD) ou por outros repositórios públicos de CVEs.

No entanto, um número significativo de vulnerabilidades de segurança é descoberto e corrigido em canais não oficiais, como em conversas informais entre quem mantém os projetos e seus usuários em um rastreador de problemas.

O banco de dados da Snyk é cuidadosamente organizado por uma equipe interna de analistas de segurança e monitora vulnerabilidades que não aparecem nessas fontes oficiais, mas são mencionadas em locais públicos, como fóruns ou notas de versão. Usando o banco de dados da Snyk como referência, vemos que ele identifica 67% mais vulnerabilidades do que os bancos de dados públicos.

Além de não serem abrangentes, os CVEs e os bancos de dados públicos costumam demorar para incluir vulnerabilidades. No caso do npm, por exemplo, as vulnerabilidades só aparecem no npm audit, em média, 92 dias depois de serem registradas no banco de dados da Snyk, e isso ocorre com atraso em 72% dos casos.

Essas lacunas indicam que o sistema CVE e os bancos de dados públicos de código aberto não estão dando conta do ritmo e do volume das vulnerabilidades em software de código aberto. Esses mecanismos precisam ser reavaliados, e organizações que levam a segurança a sério devem buscar bancos de dados comerciais para obter uma cobertura ampla e atualizada.Continue lendo:

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.