Como deixar seu projeto mais seguro com Dependabot
Tags: security, braziliandevs, tutorial, githubbrasil
Published: 2023-02-01 13:48:31


Talvez você esteja se perguntando, porque eu deveria me preocupar com a segurança do meu repositório?

Com o aumento do uso de Open Source, muitos projetos dependem de um grande número de dependências (dependencies), o que nos traz o seguinte problema de segurança: E se alguma dessas dependências estiverem vulneráveis?

Uma das coisas mais importantes que você pode fazer para proteger seu repositório é cuidar de dependências vulneráveis e substituir qualquer malware.

  

Mas como eu faço isso Pachi?

Vem comigo que eu ensino.

  
 

## Ferramentas do GitHub para Dependências

O GitHub oferece várias ferramentas para te ajudar a entender seu ambiente, se informar sobre vulnerabilidades nas suas dependências e conservá-las, e eu vou falar um pouco de cada uma delas. Essa ferramentas são:

-   Dependency graph
    
-   Dependency review
    
-   Dependabot alerts
    
-   Dependabot updates
    

-   Dependabot security updates
    
-   Dependabot version updates
    

## Dependency graph e Dependency review

O dependency graph, ou Gráfico de dependências, é um sumário que mostra dependências submetidas ao repositório usando o API de submissão de dependência. Ele mostra, para cada repositório:

-   Dependências: os ecossistemas e pacotes dos quais ele depende;
    
-   Dependentes: repositórios e packages que dependem dele.
    

Para acessá-lo, clique na aba de Insights do seu repositório, e no menu localizado à esquerda, clique em Dependency graph.

![página do dependency graph, mostrando uma lista de dependencias](https://lh5.googleusercontent.com/X4PNpO-Qh8NqPq8kYYr16ghZjK96VshVoBWXxSrHnBdM0U6qk64CdbelN9_HlYlPzb0vIHSs8E51jw6G5Uhpas1LbhFvGWZYT3lxWEnGiuoJgFdayATU3A4xfZxU2z044h3JAVz3Fja4Q5UCS2G6DnQ)

Se seu repositório está como Público, essa ferramenta já está ativa, mas em caso de repositórios privados, você tem que ativá-la manualmente, navegando para Settings > Code Security and analysis > Enable Dependency graph.

Aqui você pode ver todas as suas dependências e onde elas estão armazenadas dentro do seu projeto.

  
  

## Dependabot

Enquanto o gráfico é uma ótima maneira de visualizar suas dependências, é o Dependabot que vai nos ajudar a consertar vulnerabilidades e deixar nosso repositório seguro.

Dependabot é uma ferramenta que identifica vulnerabilidades nas dependências do seu código e cria Pull Requests com a atualização da dependência com a versão já corrigida.

  

### Dependabot Alertas

Vamos começar com os Alertas do Dependabot. Todo repositório do Github já tem o Dependabot, mas precisamos ativar os alertas

-   Vá até a aba Settings;
    
-   Na coluna à esquerda, procure e clique em Code Security and analysis;
    
-   Aqui vamos ativar Dependabots Alerts, clicando em Enable.
    

  

Espere alguns segundos para as atualizações serem aplicadas.

Agora, se você for na aba de Security e clicar em Dependabot na coluna esquerda, você verá alertas de todas as vulnerabilidades encontradas no seu repositório, assim como o nível da gravidade de cada.

![pagina de alertas do dependabot mostrando 3 alertas de problemas de segurança](https://lh4.googleusercontent.com/XbYGDhCK3D9JX08I8aYH53zenGL72xr6d5eWMNPj3wtqZz34nP61nq88x0HzqLG0lpEhFMRKHS795xnVrTTDgE9_QGnGIxioDpSATh-gtfRtee9P_C9Innd_01TwDDsRC-E6MMJlQQqxy7r73YmWMf8)

Podemos consertar essas vulnerabilidades manualmente (clicando em cada alerta e fazendo uma revisão de update de segurança) ou podemos deixar que o Dependabot faça isso de maneira automatizada. E como nós de tech adoramos tudo automatizado, é isso que vou te ensinar agora.

  

### Dependabot updates de segurança

Para automatizar esse processo, você precisa:

-   Clicar na aba Settings;
    
-   Na coluna, esquerda, encontrar e clicar em Code security and analysis;
    
-   Em Dependabot, vamos ativar Dependabot security updates, clicando em Enable.
    

O que vai acontecer agora é que além dos alertas aparecem na aba de segurança como comentei anteriormente, o Dependabot automaticamente vai abrir PRs consertando as vulnerabilidades:![exmplo de PR criado pelo dependabot](https://lh5.googleusercontent.com/j7u8xNQVNPgVAxTU8uhJFJn9HpZQ2ey44FA4qC1_rcO2ibY55ra_CLdUh1aBADE5Hg_zq4ElEuXeFTLzxspB9NsBs5dwDZBd57aOJm_-YS98to9vXHOfAT0v9ew77YvzSF2f-6E6xvi9MA8y1iKsmhI)

Tudo que você tem que fazer é checar os updates e clicar em merge pull request.

Pronto, todas as vulnerabilidades de dependência se foram.

  
  

### Dependabot updates de versão

A última ferramenta do Dependabot é a de updates de versão.

Enquanto a Updates de segurança fica de olho em vulnerabilidades e abre PRs que consertem elas, a Updates de versão fica de olho, como o nome diz, em updates nas versões das dependências, e cria um PR com a atualização da mesma.

Para ativá-la vamos voltar naquela página que agora já é sua conhecida:

-   Clicar na aba Settings;
    
-   Na coluna, esquerda, encontrar e clicar em Code security and analysis;
    
-   Em Dependabot, vamos ativar Dependabotversion updates, clicando em Enable;
    
-   Isso vai abrir um arquivo chamado dependabot.yml já populado;
    
-   Aqui vamos adicionar “nuget” em package-ecosystem e criar um commit.
    

![arquivo para update de versão](https://lh5.googleusercontent.com/Vk9auKuDFdRGLDa1-k14WBnV6CNAGu_hpnxYrs1rvRJCBxhksUC1qu1GPmouP2FPBMv3vH9ASAiYXlgNDNo7Vz1LW3F0Z0p82mSn7pEeUDmiBWQ64czIGWmF2KId4a9msj6rHlfDfcEBy3PfEL6_-j4)

Agora, sempre que alguma das dependências do seu repositório tiver um updates, o Dependabot vai abrir um PR com esse update.

### Ta dã! Seu repositório está mais seguro!
Seguindo essas dicas acima, seu repositório está mais seguro e o melhor: De forma automatizada do jeito que a gente gosta!
Espero que vocês tenham gostado!

  

### Obrigada por ler até e sigam o GitHub Brasil das redes sociais para ficar por dentro de novidades <3

[GitHub Brasil Twitter](https://twitter.com/GitHubBrasil) 🐦
[GitHub Brasil no LinkedIn](https://www.linkedin.com/company/github-brazil/) 📝
[GitHub Brasil na Twitch](https://www.twitch.tv/githubbrasil) 🟣