Priorização turbinada com o novo Priority Score da Snyk
Dan Mckean
4 de agosto de 2020
0 minutos de leituraO novo Priority Score da Snyk simplifica muito um dos maiores desafios de usar código aberto com segurança: descobrir quais vulnerabilidades corrigir primeiro.
Para a maioria das organizações, corrigir todas as vulnerabilidades simplesmente não é viável. Cada mudança tem um custo, que muitas vezes aumenta conforme o software envelhece e se torna mais complexo. Em média, um repositório tem mais de 35 vulnerabilidades no dia em que é importado pela primeira vez para a Snyk. Já os projetos de contêiner têm, em média, mais de 130 vulnerabilidades cada.
Como funciona a pontuação
Nosso algoritmo do Priority Score processa vários pontos de dados (fatores) para gerar uma pontuação de 0 a 1.000. Começamos com uma escala de 0 a 100, mas logo percebemos que as empresas não priorizam apenas dentro de um projeto: elas priorizam em _todos_os seus projetos. A granularidade é fundamental para evitar o problema de usar apenas a gravidade ou até mesmo o CVSS: tudo acaba sendo prioridade máxima! Calculamos o peso de cada fator para garantir que as pontuações se distribuam de forma equilibrada, sem deixar de atribuir as maiores pontuações aos riscos mais altos.
As pontuações aparecem em cada problema na visualização Projetos. Agora, todos os problemas são ordenados pelo Priority Score, para mostrar primeiro os mais urgentes. Também é possível filtrar os problemas por faixa de pontuação.

As pontuações também aparecem na aba Problemas, na seção Relatórios (para clientes com um plano pago), em uma coluna própria do Priority Score que pode ser usada para ordenar a tabela. Por padrão, a tabela já vem ordenada pela pontuação, ajudando você a priorizar seu tempo desde o início. Também é possível filtrar os problemas pela pontuação.

Atualmente, clientes com planos pagos podem consultar as pontuações mais baixas por meio das várias chamadas de API relacionadas a problemas. Essas chamadas agora retornam as pontuações na resposta e permitem filtrar por pontuação.
Saiba mais sobre as chamadas de API relevantes:
Como a pontuação é calculada
A primeira versão do algoritmo processa até 10 fatores por problema. Fazer isso manualmente — ou mesmo em planilhas — seria uma tarefa assustadora, considerando que muitas empresas têm milhares de vulnerabilidades em todos os seus projetos. No futuro, a Snyk planeja adicionar muitos outros fatores para ajudar a indicar melhor onde vale mais a pena investir tempo para reduzir os riscos de segurança.
Veja alguns dos fatores que já incluímos — mas esta lista está longe de ser completa!
O CVSS é a base da triagem da maioria das vulnerabilidades e, embora considere uma ampla variedade de fatores, não leva em conta uma vulnerabilidade específica no contexto do seu projeto. Além disso, é difícil priorizar usando apenas o CVSS quando mais de 23% das vulnerabilidades encontradas pela Snyk têm CVSS acima de 8,0. Já o Priority Score oferece uma distribuição muito melhor: menos de 5% das vulnerabilidades recebem mais de 800 pontos em 1.000. Ainda assim, o valor do CVSS é inegável, por isso ele tem um peso considerável no algoritmo de pontuação da Snyk.
A gravidade é outro fator. Embora tenha uma correlação direta com o CVSS, em alguns ecossistemas não é possível usar o CVSS e, em certos casos, ele já não é preciso. As Políticas de Segurança da Snyk permitem alterar a gravidade de um problema com base em informações que nem mesmo a Snyk consegue determinar — por exemplo, se o serviço é essencial para os negócios. Essa alteração permite que a priorização leve isso em conta e reduza a pontuação.
Um fator óbvio é a maturidade de exploração da Snyk. A equipe de segurança da Snyk, referência no setor, usa métodos manuais e automatizados para acompanhar quais vulnerabilidades podem ser exploradas e em que medida. Essas informações são fundamentais para determinar o risco que uma vulnerabilidade representa.
Uma novidade para a Snyk é a inclusão de informações sobre vulnerabilidades alcançáveis no Priority Score. Ao analisar os caminhos de código chamados em um projeto, ajudamos nossos usuários a identificar quais vulnerabilidades podem realmente ser alcançadas no código.
A disponibilidade de uma correção não altera o risco que uma vulnerabilidade representa, mas muda — e muito — o custo para corrigi-la. Sem uma versão mais segura para atualizar ou um patch prático da Snyk, as únicas opções para mitigar uma vulnerabilidade são aplicar um patch por conta própria ou usar outro pacote no software. Nenhuma delas é simples ou rápida, e vulnerabilidades que não podem ser corrigidas costumam ser tratadas como um risco inevitável.
Por fim, o tempo — um dos fatores mais difíceis de avaliar quanto ao impacto. Antes de analisar os dados, nossa hipótese era que as vulnerabilidades poderiam representar um risco maior logo após serem divulgadas, mas talvez se tornassem mais “populares” com o passar do tempo. Na prática, o primeiro cenário tem um impacto muito maior no risco de uma vulnerabilidade e, por isso, também é considerado na pontuação.
Além desses, estamos trabalhando em outros fatores para o algoritmo, como a análise estática de código, que identifica vulnerabilidades em caminhos de código realmente utilizados.
Primeiros passos
O Priority Score da Snyk já está disponível para todos os usuários da Snyk. Para começar, confira as vulnerabilidades em qualquer um dos seus projetos ou acesse a aba Problemas, na seção Relatórios, para descobrir quais problemas você deve corrigir primeiro.
Saiba mais no Centro de Conhecimento da Snyk.
