Log4Shell. Falha de segurança deixa milhares de plataformas vulneráveis

Muitos dos principais serviços na Internet têm a sua segurança comprometida através de uma vulnerabilidade detetada numa biblioteca dedicada ao registo de operações.

As equipas de segurança de um vasto número de empresas em todo o mundo estão em contra-relógio para corrigir uma vulnerabilidade chamada Log4Shell, que tem o potencial de permitir que hackers comprometam milhões de dispositivos na Internet. Quando explorada, a vulnerabilidade permite a execução remota de código em servidores vulneráveis, dando a um invasor a capacidade de importar malware, entenda-se conteúdo malicioso, que comprometa completamente os sistemas das empresas.

Esta vulnerabilidade é encontrada no Apache Log4j, um dos mais populares sistemas de Java, que consiste numa biblioteca que gere os ficheiros de registo de código aberto usada por aplicações e serviços na Internet. O registo é um processo no qual as aplicações mantêm uma lista das operações que realizaram.

A exploração desta vulnerabilidade foi detetada pela primeira vez em sites que albergam servidores do videojogo Minecraft, que descobriram que os atacantes podem ativar a vulnerabilidade através de mensagens de chat.

De acordo com a Check Point Research, que tem acompanhado a evolução da vulnerabilidade e respetivo impacto, mais de 46% das tentativas de ataque foram perpetradas por grupos maliciosos conhecidos. Na Europa, a 13 de dezembro, mais de 40% das redes corporativas haviam já sido impactadas pela vulnerabilidade – percentagem essa acima da estimativa global. Já em Portugal, 43% das redes corporativas sofreram uma tentativa de exploração maliciosa.

Chegaram a ser identificados mais de cem hacks por minuto relacionados com a vulnerabilidade no Log4j, além de terem sido documentados mais de 846 mil ataques nas 72 horas após o surto inicial e mais de 60 novas variantes da vulnerabilidade original em menos de 24 horas.

Até ao momento, já foram evitadas, através de uma proteção emitida pela Check Point Software, 820 mil tentativas de alocar a vulnerabilidade.

Incorporado em quase todos os serviços e aplicações conhecidas, como Twitter, Amazon, Microsoft, Minecraft, entre outros, o Log4j é utilizado num vasto número de empresas a nível mundial, permitindo o logging em várias aplicações amplamente conhecidas.

Segundo Nelson Escravana, diretor de cibersegurança do INOV – Instituto de Engenharia de Sistemas e Computadores Inovação, esta vulnerabilidade foi introduzida em 2013, quando um utilizador pediu a introdução de “uma funcionalidade um pouco estranha” no Log4j. Isto é possível porque este sistema de logging é um projeto colaborativo e aberto, em que programadores e utilizadores vão pedindo funcionalidades.

Neste caso, a funcionalidade consistia em “poder indicar numa linha de log onde é que o sistema vai buscar mais informação para adicionar a esse registo de operações”.

“Isto é uma péssima prática de segurança, porque estamos a permitir que algo que é controlado pelo utilizador determine que código é que vai ser executado nestes servidores. Isto faz com que os sistemas que estão vulneráveis possam ser levados a executar código que está num servidor malicioso”, explica o especialista em cibersegurança.

Assim, “os atacantes a única coisa que têm de fazer é disponibilizarem qualquer código malicioso num servidor de Internet e depois enviar uma mensagem, ou seja, provocar uma operação no sistema que quer atacar, cuja mensagem que fique registada em log tenha o endereço desse código”. Isto significa que com este tipo de ataque se pode executar código remotamente “que é um dos tipos de vulnerabilidades mais críticas”, acrescenta.

Em muitos casos não é necessário sequer possuir credenciais para aceder ao sistema vulnerável, sendo preciso apenas realizar uma qualquer operação que o atacante saiba que fica registada no ficheiro log.

“Isso permite ao atacante executar o código que entender no sistema alvo e, a partir daí, pode tomar controlo do sistema”, reitera.

Na ótica de Nelson Escravana, esta situação pode ser especialmente muito crítica: “Primeiro pela facilidade de realizar um ataque, pelo facto de não haver grandes restrições ao que o atacante pode fazer. E, depois, pela grande disseminação que esta tecnologia tem, pois praticamente todas as aplicações que foram escritas na linguagem de programação Java nos últimos 20 anos estão vulneráveis. Ou seja, o impacto é muito alargado”, esclarece.

Para mitigar este problema há várias medidas que podem ser tomadas, aponta o diretor de cibersegurança do INOV. Uma vez que estes ataques acontecem através da Web, a primeira das soluções pode passar por uma tecnologia chamada Web Aplication Firewall (WAF) que “filtra os pedidos externos e consegue detetar estes ataques e evitá-los”. A segunda e a mais recomendada é atualizar a tal biblioteca para uma versão que já não seja vulnerável.

“É um processo relativamente simples, que não necessita de mudar o sistema todo, pode ter apenas alguns problemas no que toca a encontrar a versão certa para atualizar, se o sistema for muito antigo”, indica.

A terceira e mais drástica é desligar totalmente a funcionalidade de logging, tendo em conta que não é essencial para o funcionamento da maior parte dos programas. Contudo, neste caso perdem-se muitas coisas, como o registo de operações que, em alguns casos, pode ser obrigatório por questões de negócio ou legais. Portanto, essa solução pode não ser possível para todas as empresas.

Em último, também é possível alterar a aplicação para evitar que ela execute códigos remotos. “Mas essa é uma solução muito mais demorada e cara de implementar do ponto de vista dos recursos humanos porque tem de se refazer código”, assinala.