Snyk.io: Segurança de dependências
Automatizando a localização e a correção de vulnerabilidades em suas dependências
Aí você lança algo em produção e depois descobre que uma das suas dependências, na exata versão que você faz uso, possui uma falha de segurança severa. Você corre pra corrigir! Afinal, não é sempre que ficamos ligados nessas coisas.
E se houvesse um modo de automatizar essa busca de vulnerabilidades das dependências que usamos?
Ela existe.
O snyk.io foi me apresentado pelo brother Victor Haberkorn, após termos discutido sobre isso.
Ela possui integração com diversos serviços, como podemos ver abaixo:
Você importa seu repositório do Github — em sua versão gratuita, você pode até importar repositórios privados — , ele faz a verificação na periodicidade que você escolhe, e a cada PR criado ele aparece no check, garantindo que aquele PR não tem uma falha de segurança grave.
Você também pode configurá-lo para receber noticações por email e até no Slack.
Ao importar e analisar seu repositório, será mostrado algo como a imagem abaixo:
Esse meu repositório aparentemente não possui em suas dependências nenhum tipo de ameaça com os níveis:
- High severity;
- Medium severity;
- Low severity.
Mas e se existisse. O que seria mostrado?
Esse repositório possui várias dependências com vulnerabilidades dos mais diversos níveis de periculosidade. E para cada uma delas, uma descrição do problema e como resolvê-lo — O Snyk pode abrir um PR pra você fazendo isso, ou você pode deixar isso automático quando ele fizer a análise.
E por fim, o Snyk também fornece uma CLI com comandos bem legais:
- snyk test — Escaneia suas dependências em busca de vulnerabilidades;
- snyk wizard — Mostra cada uma das vulnerabilidades encontradas e pergunta como você deseja resolvê-la, podendo ignorá-la, corrigi-lá, ou atualizá-la;
- snyk protect — Aplicará patches de acordo com as políticas definidas ao executar o snyk wizard.