A Fundação Eclipse tem uma proposta para incorporar uma Ferramenta de Avaliação de Vulnerabilidade para ajudar os desenvolvedores a identificar quais das dependências de software contêm problemas de segurança conhecidos do banco de dados Common Vulnerabilities and Exposure (CVE).
A ferramenta ajuda as equipes a identificar violações prejudiciais dos problemas de segurança "A9-Using Components with Known Vulnerabilities" da OWASP. Sem verificações automatizadas para monitorar as bibliotecas, muitos desenvolvedores não sabem quando atualizar os componentes e podem continuar usando bibliotecas com exploits conhecidos, o que pode levar a comprometimentos e violações do sistema. O caso mais proeminente de componentes vulneráveis foi a violação do Equifax de 2017, que levou a uma exposição de 143 milhões de registros particulares, $600 milhões em perdas e uma sentença de quatro meses de prisão para o ex-CIO Jun Ying. Ying foi condenado e multado por uso de informações privilegiadas, usando o conhecimento da falha para vender ações antes que outros investidores descobrissem.
A ferramenta de avaliação de vulnerabilidade teve o código aberto pela SAP em janeiro de 2019, com suporte para Java e Python. Atualmente opera no mesmo espaço do setor que outras ferramentas de Análise de Composição de Software (SCA) que monitoram CVEs conhecidos. Um recurso semelhante está disponível para projetos de software que usam o GitHub, após a aquisição da Dependabot pela Microsoft. Semelhante à ferramenta de avaliação de vulnerabilidade, o GitHub identificará bibliotecas com CVEs conhecidos e irá ainda mais longe enviando pull requests que atualizam a biblioteca com problemas.
Embora a verificação de CVEs melhore a segurança corrigindo componentes vulneráveis, alguns riscos ainda permanecerão. Com base nas verificações dos números de biblioteca e versão, as ferramentas não conseguem determinar se as versões que são falsas ou não são realmente o que dizem ser. Em maio de 2019, o Docker forneceu uma versão padrão do OpenJDK que usava um número de versão indicando um nível de segurança, mas essa versão da OpenJDK não continha as correções de segurança. Em 2017, o Eclipse Marketplace fornecia um plug-in popular que tinha código-fonte aberto, mas executava uma base de código diferente com adware. Em cada caso, o banco de dados CVE não se aplica porque o código em execução real era diferente. O problema do docker com o OpenJDK foi resolvido por meio da colaboração da comunidade, e a Eclipse Foundation tomou medidas para remediar o plug-in enganoso.
A Análise de Composição de Software também analisa cada componente de maneira isolada, sem saber como funcionam juntos. Por exemplo, as ferramentas não relatam casos em que duas bibliotecas livres de problemas de segurança foram usadas juntas de uma maneira que criou-se uma brecha. Muitas aplicações Java, como o WebLogic, expõem esse tipo de vulnerabilidade usando a desserialização Java em dados não confiáveis. Outro recurso é o uso de MLets, que carregam e executam código de gerenciamento a partir de URLs.
Os participantes das comunidades Eclipse podem participar de discussões sobre a ferramenta de análise de vulnerabilidades enquanto a mesma ainda está no estágio de proposta.