Skip to main content

Como usar a Snyk Vulnerability Database para encontrar projetos para o The Big Fix

Escrito por
Headshot of DeveloperSteve Coochin

DeveloperSteve Coochin

blog hero the big fix

30 de março de 2022

0 minutos de leitura

Como desenvolvedores, todos temos uma rotina matinal: fazer café, conferir o Slack/Discord/e-mail e ler as últimas notícias. Uma das coisas que faço na minha rotina diária é consultar a Snyk Vulnerability Database para ficar por dentro das vulnerabilidades mais recentes em código aberto.

Tem sido especialmente interessante observar os tipos de exploits e vulnerabilidades que surgem em diferentes ecossistemas. Acompanho o aparecimento de vulnerabilidades em bibliotecas do Tensorflow desde maio de 2021 e, até o momento em que escrevo este texto, elas voltaram a aparecer (quase duas páginas delas!). Vulnerabilidades no ElectronJS, ecossistema que impulsiona o Slack, o VS Code, a Twitch e muitos outros aplicativos populares, também surgiram várias vezes em relatórios recentes.

Embora a Snyk Vulnerability Database simplifique o desenvolvimento seguro no dia a dia, ela também ajuda a tornar a internet mais segura como um todo. O sprint de um mês da Snyk para corrigir vulnerabilidades, The Big Fix, reuniu desenvolvedores, profissionais de DevOps e especialistas em segurança para corrigir o maior número possível de vulnerabilidades. A iniciativa culminou na transmissão ao vivo de 24 horas do Big Fix-A-Thon. Muitos participantes usaram a base de dados de vulnerabilidades da Snyk para encontrar e corrigir pacotes maliciosos em diversos projetos de código aberto.

O evento oficial pode ter acabado, mas a comunidade do The Big Fix continua mais ativa do que nunca. Hoje, vou mostrar a você como encontrar um projeto na base de dados de vulnerabilidades de código aberto para ajudar a manter os usuários seguros e ainda ganhar uma camiseta #thebigfix#thebigfix de edição limitada.

Como começar com o The Big Fix

O primeiro passo é criar uma conta gratuita da Snyk. Se você ainda não tem uma, acesse a página de introdução e informe os dados de sempre (não é necessário cartão de crédito). Depois, acesse o site do The Big Fix e clique em Inscreva-se agora. Por fim, informe seu nome e endereço de e-mail. Pronto: você já pode começar.

Depois de se inscrever, o próximo passo é encontrar um projeto. Há algumas maneiras de fazer isso.

Conecte um repositório existente

Se você já tem um repositório de projeto em mente, pode conectá-lo de forma rápida e fácil. Acesse o painel da Snyk e clique em Adicionar projeto. Se o repositório desejado não aparecer no menu rápido, clique em Outro para ver uma lista completa de opções de integração.

Selecione o repositório desejado e siga as etapas para conectar e configurar.

Painel de integrações com controle de versão exibindo cartões do GitHub, GitHub Enterprise, GitLab, Bitbucket e Azure Repos

Depois de conectar, clique novamente em Adicionar projeto e selecione o repositório que você quer analisar em busca de vulnerabilidades de código aberto. Você também pode analisar repositórios privados.

Interface de seleção de repositórios com campo de busca e lista expansível de repositórios pessoais e de organizações.

Depois de conectar o repositório à Snyk, a análise identificará pacotes vulneráveis no manifesto de pacotes conectado. Em seguida, você poderá selecionar esses pacotes para ver as correções recomendadas e possíveis etapas de remediação. A Snyk também permite criar automaticamente um pull request<a> </a>com as correções recomendadas — lembre-se de testar o aplicativo para verificar se tudo no projeto está funcionando como esperado.

Encontre um projeto

Se você está procurando um projeto para ajudar a corrigir uma vulnerabilidade, pode usar a Snyk Vulnerability Database para pesquisar projetos no pacote ou ecossistema de sua preferência.

Durante o The Big Fix, contribuí com o Invoice Ninja, um dos meus projetos favoritos do ecossistema de código aberto do PHP. Esse projeto ajuda empresas do mundo todo com faturamento e contabilidade, conectando-se a diversas ferramentas empresariais de terceiros.

Primeiro, fiz um fork do repositório principal para minha própria conta. Depois, usando o método descrito acima, conectei o repositório à Snyk.

Repositório do GitHub no modo escuro mostrando um commit com vulnerabilidade detectada e pastas como app, bootstrap, config, database, docs e tests

A análise identificou algumas vulnerabilidades no manifesto de pacotes do Composer para PHP. Uma delas era introduzida pela biblioteca de dependência DOMPDF 0.6.2.

Painel de vulnerabilidades que mostra um problema de cross-site scripting de gravidade média em phenx/php-font-lib, corrigido na versão 0.3.1

Ao investigar melhor algumas das descobertas, identifiquei alguns problemas, incluindo um caminho vulnerável a cross-site scripting (XSS) na PHP-Font-Lib — uma vulnerabilidade de 2014. Rastrear o problema pelo projeto ajudou a identificar não só a falha, mas também a correção necessária.

Ao implementar correções, é preciso ter alguns pontos em mente. O mais importante é garantir que o projeto continue funcionando como um todo. Isso é especialmente importante ao atualizar bibliotecas e dependências. Muitas pessoas dependem desses projetos no dia a dia de seus negócios, e nenhum projeto quer lançar uma alteração que cause problemas de compatibilidade.

Usei um pull request do Git para baixar o repositório com fork para meu ambiente local e abri o VS Code. Com o plugin da Snyk instalado, pude atualizar os pacotes afetados e depurar o código. Depois, executei o código para testar no meu ambiente local, usando um servidor local (isso também pode ser feito com o servidor integrado do PHP).

Por fim, enviei as alterações de volta ao meu repositório com fork e criei um pull request do Git, que foi verificado pela comunidade antes de ser integrado.

A satisfação de contribuir

Adoro retribuir, especialmente quando posso ajudar a manter outra comunidade segura e livre de vulnerabilidades. Como membros da comunidade de código aberto, é importante contribuir e ajudar a proteger todos os usuários de software de código aberto. Então, vamos trabalhar juntos para tornar o mundo digital mais seguro.