Encontre vulnerabilidades do Log4Shell em JARs não gerenciados e em JARs com dependências incorporadas usando a Snyk CLI
Michal Brutvan
18 de dezembro de 2021
0 minutos de leituraComo você talvez já saiba, a vulnerabilidade Log4Shell, identificada como CVE-2021-44228 e CVE-2021-45046, foi divulgada na sexta-feira (10 de dezembro de 2021) no framework de registro de logs Log4j, da Apache. A CLI da Snyk já é uma ferramenta poderosa para começar, pois permite encontrar CVEs do Log4j quando a biblioteca está incluída diretamente ou como dependência transitiva no seu aplicativo. No entanto, se a biblioteca Log4j não foi declarada no arquivo de manifesto, foi bifurcada ou reempacotada, talvez você não encontre essas ocorrências — até agora.
Hoje, estamos ampliando os recursos da Snyk CLI com um novo comando, snyk log4shell, que oferece mais visibilidade sobre seu aplicativo, permitindo encontrar vestígios da biblioteca vulnerável mesmo quando ela não está declarada no arquivo de manifesto. O novo comando examina arquivos .jar e .war para encontrar o Log4j ou seus componentes. Arquivos "fat JAR" também são compatíveis.
O comando está disponível na versão 1.796 ou posterior da Snyk CLI e é baseado na tecnologia revolucionária de análise e detecção possibilitada pela aquisição da FossID no início deste ano.
Snyk Open Source
Estes comandos já estão disponíveis na CLI do Snyk Open Source e podem ser usados para testar projetos Java:
snyk testanalisa os manifestos do projeto e identifica as dependências e suas vulnerabilidades conhecidas. Leia a documentação do Snyk para Java para saber mais sobre o uso.snyk test --scan-all-unmanagedcompara as assinaturas dos arquivos JAR na pasta de destino com as assinaturas no repositório Maven para detectar pacotes individuais e suas vulnerabilidades. Leia a documentação de referência da CLI para saber mais sobre o uso.
Snyk Log4Shell (novo)
O argumento existente –scan-all-unmanaged não abre arquivos JAR; apenas compara as assinaturas dos arquivos. Para examinar arquivos .jar e encontrar componentes não declarados — como projetos bifurcados, arquivos renomeados ou arquivos JAR reempacotados (por exemplo, fat JARs) —, criamos um novo comando da Snyk CLI, voltado especificamente a encontrar versões do Log4j afetadas pela vulnerabilidade CVE-2021-44228 (Log4Shell).
snyk log4shell complementa as verificações do Snyk Open Source, que ajudam você a encontrar pacotes vulneráveis por meio dos arquivos de manifesto, analisando recursivamente binários Java compilados em busca de vestígios do código-fonte da biblioteca Log4j.
Com snyk log4shell, você pode:
Verificar se um projeto Java inclui arquivos .jar com a versão vulnerável do Log4j.
Verificar se um projeto Java inclui arquivos que, sabidamente, estão presentes na biblioteca Log4j vulnerável. Essas descobertas indicam que a biblioteca Log4j inteira pode estar incluída.
Como usar snyk log4shell
Verifique se o projeto foi compilado.
Execute
snyk log4shellno diretório do projeto que você quer verificar:
Observação: o novo comando não requer nem aceita argumentos adicionais na linha de comando.
Recursos adicionais
Além de desenvolvermos esse recurso com a Snyk, também nos dedicamos a criar uma biblioteca completa de informações sobre a vulnerabilidade Snyk4Shell. Recomendamos que você explore esses recursos — incluindo nosso guia rápido de correção do Log4Shell e o guia para encontrar e corrigir o Log4Shell — para manter sua segurança.
