Corrija vulnerabilidades com confiança com o Merge Advice da Snyk, baseado em machine learning
2 de junho de 2020
0 minutos de leituraTemos o prazer de anunciar a versão beta do Merge Advice — o mais recente aprimoramento dos recursos de correção da Snyk, que ajuda você a corrigir vulnerabilidades com confiança. Com tecnologia de machine learning, o Merge Advice dá aos desenvolvedores mais segurança para corrigir vulnerabilidades em dependências de código aberto.
Investindo na confiança dos desenvolvedores
O risco de introduzir alterações incompatíveis em uma branch faz com que clicar no botão de merge possa parecer uma espécie de roleta-russa. Até uma ação simples, como atualizar um pacote, às vezes pode interromper o código que depende dele.
Fazer merge de pull requests com confiança é essencial. Por isso, continuamos investindo para que as pull requests de correção e atualização da Snyk sejam precisas e façam o mínimo possível de alterações para eliminar a vulnerabilidade. No caso de correções de segurança, por exemplo, sempre recomendamos a versão não vulnerável mais antiga compatível com seu projeto. O Merge Advice vai além: usa machine learning para permitir a correção confiável de mais vulnerabilidades.
Cada pull request compatível iniciada pela Snyk ou por meio dela exibirá um selo indicando se há probabilidade de a correção causar alterações incompatíveis. Agora, os desenvolvedores têm as informações necessárias para tomar decisões de merge com base em dados.
Como funciona?
Uma grande quantidade de dados é analisada para determinar a recomendação de merge de cada PR:
A atividade das PRs é acompanhada tanto em repositórios públicos do GitHub quanto nos monitorados pela Snyk.
Três métricas são avaliadas: resultados dos testes de CI, taxas de merge e reversões de PRs.
Em seguida, o machine learning prevê a probabilidade de sucesso do merge de uma PR.
O resultado desse processo é um selo do Merge Advice exibido no topo das pull requests compatíveis:

Previsões precisas com a ajuda do machine learning
O algoritmo do Merge Advice foi projetado para prever com alto grau de confiança o sucesso de merges de pull requests. Ele usa um modelo estatístico que considera tanto a quantidade de pontos de dados quanto sua distribuição observada ao atualizar uma dependência específica da versão X para a versão Y. Se não houver dados suficientes para gerar uma previsão confiável, nenhuma recomendação será exibida para a atualização.
O modelo usado pelo Merge Advice da Snyk adota uma abordagem exclusiva, acompanhando várias métricas:
a proporção de sucesso e falha das suítes de testes de CI ao atualizar um pacote da versão X para a Y;
a proporção de merges dessas atualizações;
e o número de vezes que uma atualização foi revertida.
Essas métricas também são acompanhadas em várias fontes de dados. Monitoramos a atividade em repositórios públicos do GitHub com a ajuda do GHArchive — um projeto que registra e arquiva atividades públicas do GitHub, disponibilizando-as para análises posteriores. Também usamos, é claro, os mais de 750 mil repositórios (atualmente) protegidos por usuários da Snyk.
A combinação dessas fontes de dados gera um conjunto abrangente de dados para fazer inferências e acrescenta profundidade estatística ao modelo usado pelo Merge Advice.
Fazer merge ou não fazer merge: eis a questão!
Como isso se encaixa no seu fluxo de trabalho diário no GitHub? Vamos conferir.
Como sempre, usuários da Snyk podem abrir manualmente uma PR pela interface da Snyk para corrigir uma vulnerabilidade específica ou um conjunto delas. A Snyk também pode abrir uma pull request automaticamente em duas situações: ao identificar uma nova vulnerabilidade em dependências existentes ou ao identificar uma dependência desatualizada.
Independentemente do que as acione, essas pull requests agora incluem o novo selo do Merge Advice. A recomendação exibida no selo varia de acordo com o modelo de análise preditiva descrito acima.

Mãos à obra!
O objetivo do Merge Advice é ajudar os desenvolvedores a tomar decisões baseadas em dados ao fazer merge de pull requests para proteger suas dependências de código aberto. Para garantir os melhores resultados, estamos sempre aprimorando o algoritmo por trás desse recurso. Variáveis como a sazonalidade, por exemplo, podem afetar os resultados e também serão incluídas nos cálculos.
No momento, os selos do Merge Advice aparecem apenas em uma pequena parcela das pull requests do GitHub para pacotes Yarn e npm em que há atualização de um único pacote. À medida que a versão beta avança, vamos ampliar e aprofundar o suporte. Fique de olho nas novidades.
O Merge Advice está disponível para todos os usuários, em todos os planos, inclusive no plano Free.
Bom merge!
Comece a participar de desafios de Capture the Flag
Aprenda a resolver desafios de Capture the Flag assistindo sob demanda ao nosso workshop virtual introdutório.



