Usar coleções de código pré-escritas em seu projeto, chamadas de bibliotecas ou pacotes, é uma prática comum. Esses módulos de código economizam muito tempo, permitindo que você se concentre nos aspectos novos e criativos do seu trabalho em vez de codificar grandes componentes reutilizáveis do zero. Quando adicionados ao seu projeto, eles são chamados de dependências, pois seu trabalho depende do código que eles contêm.
Embora o uso de dependências seja perfeitamente normal, elas podem conter vulnerabilidades de código, o que, por sua vez, tornaria seu projeto inseguro. Felizmente, ferramentas como o Dependabot podem encontrar vulnerabilidades de dependência, gerar pull requests para corrigi-las e até mesmo impedi-las de acontecer no futuro. Neste tutorial, você aprenderá a habilitar e usar o Dependabot e seus recursos para manter suas dependências em segurança.
Vamos começar criando um fork de um projeto de demonstração com algumas vulnerabilidades de dependência. Como não implantaremos o projeto, não há nenhum risco de segurança neste exercício.
- Navegue até o repositório
new2code/dependabot-demo
. - No canto superior direito da página, clique em Fork.
- Na página exibida, clique em Create fork.
Agora que configuramos o projeto, vamos configurar o Dependabot para localizar e criar correções para dependências inseguras.
- Na barra de navegação do repositório, clique em Security.
- Na linha "Dependabot alerts", clique em Enable Dependabot alerts.
- Na seção "Dependabot", ao lado de "Dependabot alerts", clique em Enable.
- No pop-up exibido, leia a instrução sobre como habilitar o grafo de dependência e clique em Enable.
- Para permitir que o Dependabot abra automaticamente pull requests para a correção de vulnerabilidades de dependência, ao lado de "Dependabot security updates", clique em Enable.
Com o Dependabot configurado, vamos descobrir quais de nossas dependências contêm vulnerabilidades.
- Na barra de navegação do repositório, clique em Security.
- Para ver os Dependabot alerts do repositório, na navegação lateral, clique em Dependabot.
- Para ver informações detalhadas sobre um alerta, clique no título dele. Para este exercício, clique em Command Injection in hot-formula-parser.
Agora que o Dependabot identificou algumas vulnerabilidades nas dependências, vamos analisar as informações fornecidas no alerta "Command Injection in hot-formula-parser".
Abaixo do título do alerta, você pode ver um breve resumo da correção dessa vulnerabilidade, incluindo o número de alertas que ela fechará e o local da vulnerabilidade. Em nosso caso, o alerta nos informa que atualizar o pacote hot-formula-parser
para a versão 3.0.1 corrigirá um alerta do Dependabot identificado em nosso arquivo javascript/package-lock.json
.
Esta seção também acompanha o progresso do Dependabot, criando uma pull request para corrigir a vulnerabilidade. Quando uma correção estiver disponível, você verá um botão rotulado como" Review security update" vinculando à pull request.
Abaixo dos detalhes da correção, o Dependabot fornece mais informações sobre a vulnerabilidade, incluindo:
- O nome do pacote vulnerável
- As versões do pacote que contêm a vulnerabilidade
- A versão do pacote que corrige a vulnerabilidade
- Detalhes sobre o tipo de vulnerabilidade e como ela pode ser explorada
Neste alerta, podemos ver que a função parse
no pacote hot-formula-parser
não verifica corretamente se a entrada de usuário é segura antes de executá-la, o que permite que invasores executem comandos mal-intencionados.
Dica
Se não entender completamente os detalhes da vulnerabilidade, tente pedir ao Copilot Chat para explicá-los.
Por fim, você pode ver a linha do tempo do alerta na parte inferior da página. Atualmente, nossa linha do tempo contém o carimbo de data/hora de quando o Dependabot abriu o alerta e será atualizada automaticamente quando corrigirmos a vulnerabilidade.
Para proteger nosso projeto de maneira rápida e fácil, vamos aplicar a correção que o Dependabot criou.
No campo de alerta com o resumo da correção, clique em Review security update.
Na página da pull request, clique em Files changed para ver as alterações do Dependabot. Após revisar as alterações, clique em Conversation para voltar à visão geral da pull request.
Para aplicar a correção, na parte inferior da página, clique em Merge pull request e clique em Confirm merge.
Após a pull request ser mesclada, o alerta do Dependabot vinculado será fechado automaticamente e a hora da correção será adicionada à linha do tempo.
Para ajudar a evitar que dependências inseguras sigam adiante, vamos permitir que o Dependabot abra automaticamente pull requests que atualizam suas dependências à medida que novas versões são lançadas.
- Na barra de navegação do repositório, clique em Settings.
- Na seção "Security" da barra lateral, clique em Advanced Security.
- Ao lado das Dependabot version updates", clique em Enable.
Agora que você testou o Dependabot e seus recursos em um repositório de demonstração, habilite-os em seus projetos para localizar, corrigir e evitar vulnerabilidades de dependência com facilidade.