
Ferramenta de verificação e correção para CVE-2021-44228 e preocupações relacionadas ao log4j.
Links para baixar a versão mais recente:
| Linux x64 com glibc2.17+ (RHEL7+) | Windows e todas as outras plataformas |
|---|---|
| Baixar binário Linux |
| Baixar Java .jar |
🚑 Nota: clientes SAS que desejam corrigir suas implantações SAS 9.4 ou SAS Viya 3.x devem seguir as instruções específicas fornecidas na documentação do SAS Help Center.
Este projeto é um fork inicial de logpresso/CVE-2021-44228-Scanner, inicialmente modificado para inspecionar recursivamente arquivos e adicionar suporte para compressão tar/gz. Desde o fork, o projeto evoluiu em paralelo ao original e implementa muitos recursos semelhantes, embora a maior parte do código tenha sido reescrita. Enquanto a funcionalidade original de 'fix' foi substituída por um método patch que suporta alguns casos extremos de aninhamento profundo e é mais tolerante a falhas e rollback, o mecanismo de detecção (o comando scan) continua funcionando de forma muito semelhante ao original.
Você pode baixar uma versão da ferramenta na página de Releases ou seguindo os links no topo desta página. A imagem nativa é um executável autônomo que será executado no EL7 e versões posteriores. O arquivo jar pode ser executado com java -jar em JRE 1.8+. Esta é atualmente a melhor maneira de executá-lo em outras plataformas e versões mais antigas do glibc (incluindo Windows, AIX, Solaris, etc).
Após baixar a imagem nativa, é necessário executar chmod +x no arquivo antes de poder executá-lo.
A sintaxe do comando é a mesma, independentemente de você chamar o .jar ou o executável nativo. Por exemplo, isto:
./loguccino help
é funcionalmente idêntico a isto
java -jar ./loguccino-all.jar help
O comando loguccino help fornece documentação sobre os comandos disponíveis.
./loguccino scan /path/to/approot
Isso percorrerá todos os subdiretórios em /path/to/approot, incluindo a travessia recursiva de todos os arquivos .tar.gz, .tgz, .tar, .zip, .ear, .war e .jar aninhados.
Um arquivo .csv chamado loguccino-scan-[datetime].csv será criado no diretório de trabalho, contendo os seguintes dados:
/opt/sas/config/Lev1/Web/Staging/sas.webreportstudio4.4.21w47AIX.ear/install/deploy/21w47SASConfig/Lev5/Web/Staging/sas.webreportstudio4.4.21w47AIX.earopt/sas/config/Lev1/Web/Staging/sas.webreportstudio4.4.21w47AIX.ear::sas.webreportstudio.war::WEB-INF/lib/log4j-core-2.1.jarMais informações sobre o comando scan estão disponíveis via ./loguccino help scan.
Se vulnerabilidades forem encontradas, o loguccino-scan-[datetime].csv é usado como entrada para o comando patch:
./loguccino patch ./loguccino-scan-23122021003311.csv
Isso remove cada vulnerabilidade encontrada e cria um diretório loguccino-patch-[timestamp] contendo um backup de cada arquivo que foi corrigido. Quando um arquivo foi corrigido para múltiplas vulnerabilidades (como um arquivo de backup maior contendo múltiplas ferramentas ou versões de software), múltiplas versões do arquivo corrigido são copiadas em cada estágio do processo para permitir rollback em etapas em caso de falha.
Nota:
Corrigir um arquivo no disco não corrige a versão do programa já em execução no host. Lembre-se de que você deve parar os serviços/aplicações relevantes antes de corrigir e reiniciá-los após a correção para que as alterações tenham efeito.
Mais informações sobre o comando patch estão disponíveis via ./loguccino help patch.
Ao escanear vulnerabilidades, alguns arquivos podem ser relatados como corrompidos (isso também acontece com arquivos aninhados onde os métodos de compressão não correspondem à extensão do arquivo). O comando scan imprimirá o caminho para estes no logpresso-scan-[datetime].log. Se forem considerados significativos, esses arquivos devem ser descomprimidos e inspecionados (ou escaneados) manualmente para confirmar que estão de fato corrompidos.
Se você encontrar quaisquer bugs ou comportamentos inesperados, por favor abra uma issue e anexe quaisquer etapas para reproduzir o bug juntamente com outras informações de contexto.
Pull requests e atualizações no código são bem-vindos e incentivados.