Priorização de vulnerabilidades

A priorização de vulnerabilidades está falha: por que usar apenas a pontuação de gravidade leva você a corrigir o problema errado primeiro.

Uma equipe passa o sprint corrigindo uma vulnerabilidade CVSS 9.8 encontrada em uma biblioteca que nunca é utilizada em produção. Enquanto isso, uma vulnerabilidade CVSS 6.5 em um endpoint acessível pela internet permanece aberta por mais um mês, simplesmente porque nunca chegou ao topo da lista de prioridades. Isso não é hipotético; é o resultado padrão da priorização de vulnerabilidades baseada exclusivamente na pontuação de severidade, e é uma falha mais comum do que a maioria dos programas de segurança está disposta a admitir.

Qual é, de fato, o objetivo da priorização de vulnerabilidades?

A priorização de vulnerabilidades é o processo de decidir quais vulnerabilidades devem ser corrigidas primeiro, a partir de uma lista que quase sempre é longa demais para ser totalmente analisada. Quando bem feita, ela responde a uma pergunta mais específica e complexa do que "quão grave é essa vulnerabilidade em teoria": ela responde "quanto a correção dessa vulnerabilidade, agora, reduz o risco para esse sistema específico". Essas perguntas não são a mesma coisa, e confundi-las é onde a maioria dos esforços de priorização de vulnerabilidades falha.

Por que a pontuação de gravidade sozinha falha

O CVSS nunca foi projetado para ser um sistema de priorização completo por si só; trata-se de uma pontuação de gravidade, uma descrição de quão grave uma vulnerabilidade poderia ser teoricamente em um contexto genérico. Ele não diz nada sobre:

  • Acessibilidade. Independentemente de o trecho de código vulnerável ser efetivamente chamado em algum lugar da aplicação, ou se permanecer inativo em uma dependência que nada invoca.
  • Explorabilidade. Se existe um exploit funcional em uso real ou se a vulnerabilidade é apenas teórica, fora de um ambiente de laboratório.
  • Exposição. Independentemente de o componente afetado estar exposto à internet ou estar localizado três camadas atrás de um serviço interno sem acesso externo.
  • Contexto empresarial. Seja o sistema afetado relacionado a dados de clientes ou fluxos de pagamento, ou se trata de uma ferramenta interna de baixo valor e da qual ninguém depende.

Uma abordagem de priorização de vulnerabilidades que classifica puramente pelo CVSS trata uma vulnerabilidade 9.8 em um código inacessível como mais urgente do que uma vulnerabilidade 6.5 em um caminho acessível e exposto à internet, com uma exploração conhecida. Essa ordenação está invertida e é o resultado direto de pontuar a gravidade ignorando todos os outros fatores que determinam o risco real.

O custo oculto de priorizar vulnerabilidades incorretamente

O custo não se resume apenas a horas de engenharia desperdiçadas, embora isso seja real: as equipes rotineiramente gastam tempo com descobertas de alta gravidade que não representam risco prático, enquanto problemas genuinamente exploráveis ​​permanecem sem solução. O custo mais sutil é a confiança. Quando os desenvolvedores são repetidamente interrompidos em tarefas importantes para corrigir vulnerabilidades que se mostram inacessíveis ou já mitigadas em outros lugares, eles começam a desconsiderar também o próximo alerta, e todo o objetivo da priorização de vulnerabilidades — corrigir primeiro os problemas certos — deixa de existir, mesmo que a lista esteja tecnicamente sendo trabalhada em ordem.

O que uma boa priorização de vulnerabilidades realmente exige

A priorização eficaz de vulnerabilidades sobrepõe vários sinais à gravidade, em vez de a substituir completamente:

  • Análise de acessibilidade. Confirme se a função vulnerável é realmente chamada a partir do código do aplicativo e não apenas está presente em uma árvore de dependências.
  • Aproveite a disponibilidade. Verifique se existe algum exploit público ou campanha ativa que visem a vulnerabilidade específica, e não apenas a família CVE.
  • Deduplicação entre scanners. O mesmo problema subjacente relatado por três ferramentas diferentes não deve ser considerado como três itens separados competindo por atenção.
  • Contexto empresarial e de exposição. Pondere as conclusões com base no que o ativo afetado realmente toca, e não apenas pela pontuação genérica da CVE.
  • Um funil visível, não uma lista plana. A capacidade de visualizar quantas descobertas sobrevivem a cada filtro, desde todos os problemas até o que é realmente explorável, torna a priorização defensável em vez de uma caixa preta.

Esse último ponto é mais importante do que parece. Uma lista plana, ordenada por gravidade, não dá à equipe uma noção de escala: 40% do backlog é real ou apenas 2%? Uma visão em funil, com todas as descobertas, depois as solucionáveis, depois as alcançáveis, depois as com vulnerabilidade conhecida e, por fim, as que são realmente exploráveis ​​neste ambiente, transforma uma lista enorme em uma lista curta e defensável.

O que procurar em ferramentas de priorização de vulnerabilidades

Nem todas as plataformas comercializadas para priorização de vulnerabilidades realmente realizam o trabalho descrito acima. Ao avaliar ferramentas de priorização de vulnerabilidades, algumas perguntas logo se destacam em meio ao marketing:

  • Isso demonstra a acessibilidade ou apenas reporta a presença de um pacote vulnerável?
  • O programa remove resultados duplicados de diferentes scanners, incluindo ferramentas de terceiros já em uso, ou cada fonte adiciona uma lista separada e não correlacionada?
  • Um líder de segurança consegue visualizar o funil de buscas, quantas descobertas foram filtradas e por quê, ou apenas a lista final "priorizada" sem visibilidade da lógica por trás dela?
  • Leva em consideração a disponibilidade de exploits a partir de informações reais sobre ameaças, ou apenas a pontuação CVSS estática publicada no momento da divulgação?
  • A priorização se aplica igualmente às descobertas de scanners nativos e de ferramentas de terceiros incorporadas, ou apenas aos resultados do próprio fornecedor?

Essa última questão é mais importante do que parece. Muitas ferramentas de priorização de vulnerabilidades priorizam apenas o que elas mesmas encontraram, deixando de lado tudo o que foi coletado de outras fontes. SAST, SCAou scanners de terceiros que estejam em uma pilha separada e sem classificação.

Como a Xygeni aborda a priorização de vulnerabilidades

Xygeni ASPM Aplica um funil de quatro etapas: ingerir descobertas de scanners nativos e ferramentas de terceiros, construir visibilidade unificada em todo o inventário resultante e, em seguida, correlacionar e priorizar usando desduplicação, acessibilidade e contexto orientado por IA, antes mesmo que as descobertas cheguem à fila de um desenvolvedor. Na prática, esse funil reduz uma lista completa de descobertas ao que é corrigível, ao que é acessível no código do aplicativo, ao que possui uma vulnerabilidade conhecida e, finalmente, ao que é genuinamente explorável naquele ambiente específico. Assim, a lista com a qual uma equipe realmente trabalha é pequena o suficiente para ser analisada completamente, e não apenas triada indefinidamente.

Como essa camada de priorização de vulnerabilidades se aplica tanto a descobertas provenientes de scanners de terceiros quanto a Scanners nativos da própria XygeniUma equipe não precisa arrancar tudo. uma ferramenta existente Para obter uma visão unificada e correlacionada, a lógica de priorização se baseia em dados já existentes, preenchendo a lacuna que a maioria das ferramentas de priorização de vulnerabilidades deixa aberta ao classificar apenas suas próprias descobertas.

Perguntas frequentes

Por que o CVSS não é suficiente por si só para a priorização de vulnerabilidades?

O CVSS mede a gravidade teórica, não o risco real em um ambiente específico. Ele não leva em consideração se o código vulnerável é acessível, se existe um exploit em uso ou o quão exposto está o sistema afetado, fatores que alteram significativamente a necessidade de corrigir uma vulnerabilidade imediatamente após a sua descoberta.

Qual a diferença entre gravidade e explorabilidade na priorização de vulnerabilidades?

A gravidade descreve o quão prejudicial uma vulnerabilidade poderia ser teoricamente. A explorabilidade descreve se esse dano é realmente possível de ser causado agora, dado um exploit funcional e um caminho de código acessível. Uma vulnerabilidade de alta gravidade e baixa explorabilidade geralmente é menos urgente do que uma de gravidade moderada e alta explorabilidade.

As ferramentas de priorização de vulnerabilidades precisam também abranger as descobertas de scanners de terceiros?

Sim, caso contrário, a equipe acaba com várias listas de prioridades separadas e não correlacionadas, uma para cada ferramenta, em vez de uma visão unificada do que realmente importa em toda a pilha de ferramentas.

Até que ponto a análise de alcançabilidade pode, realisticamente, reduzir a lista de resultados?

Isso varia de acordo com a base de código, mas é comum que a maioria das vulnerabilidades sinalizadas esteja em caminhos de código que nunca são realmente chamados, o que significa que a mera possibilidade de acesso muitas vezes elimina uma grande parte das descobertas de uma análise séria antes mesmo de a explorabilidade ser avaliada.

Uma lista menor e priorizada indica que o risco está sendo ignorado?

Não, pelo contrário. Uma lista mais curta, resultante de uma priorização genuína de vulnerabilidades, significa que o ruído foi filtrado, não o risco. A alternativa, uma lista longa e não filtrada que ninguém consegue analisar completamente, produz resultados piores porque o risco real se perde no volume.

sca-tools-software-composição-análise-ferramentas
Priorize, corrija e proteja seus riscos de software
Crie sua conta gratuita.
Nenhum cartão de crédito é necessário.

Proteja seu desenvolvimento e entrega de software

com o Suíte de Produtos da Xygeni