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.
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.
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:
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.
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 🐦
GitHub Brasil no LinkedIn 📝
GitHub Brasil na Twitch 🟣
Latest comments (3)
O dependabot é uma ferramenta legal, pena que usando o poetry eu preciso aceitar um PR, esperar ele atualizar os outros PR que sempre dão conflito, para só então poder aceitar o próximo. Isso sem contar que no Python os arquivos de tipagem normalmente ficam em outro pacote (exemplo boto3 e boto3-stubs), e ai não da para fazer o merge dos dois pacotes juntos, o que pode dar problema quando a atualização não tem retrocompatibilidade. Sem contar que isso tudo acaba gerando um grande volume de e-mails, dele abrindo o PR, atualizando para resolver os conflitos, fazendo o merge... Mas é uma ferramenta que ajuda a manter tudo atualizado.
Outro caso, existem alguns módulos do terraform que usamos várias vezes, ou seja, o mesmo link e tag repetida algumas vezes no código, e cada uso é ele abre um PR diferente, se ele juntasse esses casos que são iguais facilitaria bastante.
Estava vendo sobre isso e pensando realmente em implementar dependabot, depois desse artigo vou implementar.