Ready-to-Update: A Practical Approach for Mapping and Prioritizing Vulnerability Remediation of Third-Party Libraries
segurança de software, dependências vulneráveis, bibliotecas open source, gestão de vulnerabilidades, propagação de vulnerabilidades, segurança na cadeia de suprimentos de software
A prática disseminada de reuso de código aberto acelera o desenvolvimento e melhora a qualidade do software ao otimizar o tempo, os recursos e a especialização do desenvolvedor; contudo, essa utilização pode representar um risco de segurança significativo. Em resposta, pesquisadores têm proposto diversas abordagens para identificar dependências vulneráveis e remediar projetos afetados. Infelizmente, não existe uma solução universal, visto que as abordagens existentes frequentemente exigem adaptação para atender às necessidades específicas de cada empresa.
Este trabalho apresenta e avalia o Ready-to-Update, uma nova metodologia desenvolvida para priorizar e identificar dependências com vulnerabilidades conhecidas que requerem correção imediata. O Ready-to-Update foi elaborado com base em conhecimentos obtidos em uma grande instituição financeira (FinCompany), incorporando métodos já estabelecidos, mas adaptados ao grau de maturidade em segurança e às necessidades da FinCompany. A metodologia articula-se em quatro passos centrais: (i) identificação das dependências de um projeto, (ii) detecção de vulnerabilidades conhecidas nessas dependências, (iii) localização de versões mais atualizadas e seguras para as dependências vulneráveis e (iv) avaliação da compatibilidade dessas versões.
Demonstramos os resultados da aplicação do Ready-to-Update em 2.140 artefatos Java (de diferentes versões de 585 projetos) implementados no ambiente de produção da FinCompany entre janeiro e julho de 2024. Os resultados revelam uma prevalência significativa de vulnerabilidades tanto em dependências diretas quanto em transitivas. Por exemplo, a vasta maioria dos projetos (99,53%) depende de artefatos afetados por vulnerabilidades críticas. Além disso, a análise indicou que 92,40% das dependências diretamente vulneráveis possuíam versões mais recentes disponíveis. Dessas novas versões, 65,62% foram consideradas seguras-ou seja, não apresentavam vulnerabilidades reportadas-sugerindo que a atualização dessas dependências poderia reduzir o número de dependências diretas vulneráveis em 98,63% dos projetos analisados.As versões identificadas como seguras foram, posteriormente, submetidas a testes de compatibilidade binária e semântica. Isto demonstrou que, para 86,3% das dependências diretas vulneráveis, a remediação é alcançável apenas pela atualização da versão da dependência direta.
A abordagem Ready-to-Update se mostrou promissora para a remediação de vulnerabilidades, ao permitir que os desenvolvedores concentrem seus esforços em dependências que são diretamente gerenciáveis e para as quais existem alternativas mais seguras, o que, em última análise, leva a uma resolução mais rápida e eficaz das vulnerabilidades identificadas.