Log4Shell - A nova Vulnerabilidade Log4J

Log4Shell exploit CVE-2021-44228, a nova vulnerabilidade que apareceu a 10 de Dezembro de 2021, uma falha de segurança na biblioteca de software Apache Log4j, versões 2.0 a 2.14.1.

Mas calma, existe já uma possível solução para esta vulnerabilidade.

O Log4j é uma biblioteca que faz parte do Apache Logging e é usada pela maioria das aplicações.

Invés do Logging nativo do Java, o Log4j veio-o substituir de uma forma mais simples e integrada mas com funcionalidades extra: é utilizado para realizar o registo de logs para todas as diferentes atividades dentro de uma aplicação e é uma das maneiras mais fáceis de registrar erros e verificar o estado e a situação da mesma.

Ou seja, o "logging" permite guardar esses registros para analisar o comportamento de uma aplicação ou acompanhar as mudanças feitas durante o desenvolvimento do programa.

O Log4j divide-se em DEBUG, INFO, WARN, ERROR, FATAL (referência)

O que é a Vulnerabilidade Log4j ou também conhecida como Log4Shell.

Esta vulnerabilidade permite a execução remota de comandos na biblioteca classe RCE (Remote Code Execution), não requer acesso físico ao sistema e pode ser acionado por meio de qualquer servidor que tenha algum tipo de acesso via navegador. Apenas é necessário forçar o aplicativo a gravar só o trecho malicioso no log e, depois disso, pode-se fazer upload do próprio código maligno no aplicativo, ganhando-se o controle de uma máquina ou servidor;

Ou seja, um hacker poderia fazer um pedido com um primeiro nome que possui o código que ativa a vulnerabilidade e, por meio de uma base de dados, executar um comando que daria acesso aos sistemas da empresa.

Estão Vulneráveis todos os servidores com acesso a internet que estiveram utilizando da versão: 2.0 a versão 2.14.1 do Log4j, inclusive frameworks da família Apache, como: Apache Struts2, Apache Solr, Apache Druid ou Apache Flink.

Como encontrar? Correr o comando para verificar qual a versão do log4j: find / -name log4j.jar

Tão simples como atualizar o Log4j para a versão mais recente (Versão 2.16.0)!

Para versões anteriores a 2.10, isso pode ser atenuado definindo a propriedade do sistema log4j2.formatMsgNoLookups = true.

A Cybereason lançou também uma solução chamada "Logout4Shell": é usada a própria vulnerabilidade para reconfigurar o logger evitando uma exploração posterior do ataque.

"A vulnerabilidade de execução de código remoto da Apache Log4j é a maior e mais crítica da última década"

Amit Yoran, Reuters.