O Log4Shell, uma vulnerabilidade da Internet que afeta milhões de máquinas, envolve um software obscuro, mas quase onipresente, o Log4j. O software é usado para registrar todos os tipos de atividades que são executadas em uma ampla variedade de sistemas de computador.
Jen Easterly, diretora da Agência de Segurança Cibernética e Infraestrutura dos EUA, chamou o Log4Shell de a vulnerabilidade mais séria que ela já viu em sua carreira. Já houve centenas de milhares, talvez milhões, de tentativas de explorar a vulnerabilidade .
Então, o que é essa humilde infraestrutura da Internet, como os hackers podem explorá-la e que tipo de caos pode ocorrer?
O que o Log4j faz?
O Log4j registra eventos – erros e operações de rotina do sistema – e faz um diagnóstico desses erros para os administradores e usuários de um sistema. É um software de código aberto fornecido pela Apache Software Foundation .
Um exemplo comum de Log4j em funcionamento é quando você digita ou clica em um link da web incorreto e recebe uma mensagem de erro 404. O servidor da Web que executa o domínio do link da Web que você tentou acessar informa que não existe essa página da Web. Ele também registra esse evento em um log para os administradores de sistema do servidor usando o Log4j.
Mensagens de diagnóstico semelhantes são usadas em todos os aplicativos de software. Por exemplo, no jogo online Minecraft, Log4j é usado pelo servidor para registrar atividades como memória total usada e comandos do usuário digitados no console.
Como o Log4Shell funciona?
O Log4Shell funciona abusando de um recurso no Log4j que permite aos usuários especificar um código personalizado para formatar uma mensagem de log. Esse recurso permite que o Log4j, por exemplo, registre não apenas o nome de usuário associado a cada tentativa de login no servidor, mas também o nome real da pessoa, se um servidor separado possuir um diretório ligando nomes de usuários e nomes reais. Para fazer isso, o servidor Log4j precisa se comunicar com o servidor que contém os nomes reais.
Infelizmente, esse tipo de código pode ser usado para mais do que apenas formatar mensagens de log. O Log4j permite que servidores de terceiros enviem código de software que pode executar todos os tipos de ações no computador de destino. Isso abre a porta para atividades nefastas, como roubar informações confidenciais, assumir o controle do sistema de destino e transferir conteúdo malicioso para outros usuários que se comunicam com o servidor afetado.

Log4j está em toda parte
Uma das principais preocupações sobre o Log4Shell é a posição do Log4j no ecossistema de software. Logging é um recurso fundamental da maioria dos softwares, o que torna o Log4j muito difundido . Além de jogos populares como Minecraft, ele é usado em serviços de nuvem como Apple iCloud e Amazon Web Services, além de uma ampla gama de programas, desde ferramentas de desenvolvimento de software até ferramentas de segurança .
Softwares de código aberto como o Log4j são usados em tantos produtos e ferramentas que algumas organizações nem sabem quais pedaços de código estão em seus computadores.
Isso significa que os hackers têm um grande menu de alvos para escolher: usuários domésticos, provedores de serviços, desenvolvedores de código-fonte e até pesquisadores de segurança. Portanto, embora grandes empresas como a Amazon possam corrigir rapidamente seus serviços da Web para impedir que hackers os explorem, haverá muitas empresas que levarão mais tempo para corrigir seus sistemas e algumas que talvez nem saibam que precisam.
O dano que pode ser feito
Os hackers estão vasculhando a Internet para encontrar servidores vulneráveis e configurar máquinas que podem entregar cargas maliciosas. Para realizar um ataque, eles consultam serviços (por exemplo, servidores da web) e tentam acionar uma mensagem de log (por exemplo, um erro 404). A consulta inclui texto criado com códigos maliciosos, que o Log4j processa como instruções.
Essas instruções podem criar um shell reverso, que permite que o servidor atacante controle remotamente o servidor de destino, ou podem tornar o servidor de destino parte de uma botnet . Botnets usam vários computadores sequestrados para realizar ações coordenadas em nome dos hackers.
Um grande número de hackers já está tentando abusar do Log4Shell. Eles variam de gangues de ransomware que bloqueiam servidores de minecraft a grupos de hackers que tentam minerar bitcoin e hackers associados à China e à Coreia do Norte tentando obter acesso a informações confidenciais de seus rivais geopolíticos. O ministério da defesa belga informou que seus computadores estavam sendo atacados usando o Log4Shell .
Embora a vulnerabilidade tenha chamado a atenção pela primeira vez em 10 de dezembro de 2021, as pessoas ainda estão identificando novas maneiras de causar danos por meio desse mecanismo.
Parando o sangramento
É difícil saber se o Log4j está sendo usado em um determinado sistema de software porque geralmente é empacotado como parte de outro software. Isso exige que os administradores de sistema façam um inventário de seus softwares para identificar sua presença. Se algumas pessoas nem sabem que têm um problema, é muito mais difícil erradicar a vulnerabilidade.
Outra consequência dos diversos usos do Log4j é que não há uma solução única para corrigi-lo. Dependendo de como o Log4j foi incorporado em um determinado sistema, a correção exigirá abordagens diferentes. Isso pode exigir uma atualização do sistema que foi atacado, como no caso de alguns roteadores Cisco, ou disponibilizar uma atualização para uma nova versão do software, como feito no Minecraft , ou a remoção manual do código vulnerável para aqueles que não podem atualizar o software.
O Log4Shell faz parte da cadeia de suprimentos de software. Assim como os objetos físicos que as pessoas compram, o software percorre diferentes empresas e pacotes de software antes de terminar em um produto final. Quando algo dá errado, em vez de passar por um processo de recall, o software passa por um gerenciamento de patches.
No entanto, dado que o Log4j está presente de várias maneiras nos produtos de software , a propagação de uma correção requer coordenação dos desenvolvedores de Log4j, desenvolvedores de software que utilizam o Log4j, distribuidores de software, operadores do sistema e usuários. Normalmente, isso gera um atraso entre a disponibilização da correção no código Log4j e a correção das máquinas que foram realmente afetadas.
Algumas estimativas de tempo de reparo em software geralmente variam de semanas a meses. No entanto, se o comportamento passado for indicativo de desempenho futuro, é provável que a vulnerabilidade do Log4j apareça nos próximos anos .Como usuário, você provavelmente está se perguntando o que pode fazer sobre tudo isso. Infelizmente, é difícil saber se um produto de software que você está usando inclui o Log4j e se ele está usando versões vulneráveis do software. No entanto, você pode se proteger com os serviços de especialistas em segurança de informação, pois eles sabem como identificar as falhas que um usuário comum não consegue enxergar.
