No último 09 de dezembro, foi divulgado um zero-day que preocupa a área de SI devido a sua criticidade. A vulnerabilidade identificada afeta o Log4J da Apache e foi atribuída com CVE-2021-44228. O Log4J é um registro muito comum usado pelos desenvolvedores de aplicativos da Web e de servidor e aplicações baseados em Java e outras linguagens de programação.
Uma exploração bem sucedida permite que o invasor tenha controle dos sistemas através da injeção de texto em uma mensagem de log ou parâmetros de mensagem de log, em servidores que carregam código de um servidor remoto. O servidor remoto por sua vez executará esse código através das chamadas via Naming and Directory Interface (JNDI), serviço esse que faz interface com diversos protocolos, incluindo LDAP, DNS, RMI, CORBA.
A comunidade de segurança já identificou exploração com protocolos LDAP, DNS e RMI resultado em operações maliciosas de criptomneração e ransomware, porém outros tipos de ataques – e cargas úteis – provavelmente ocorrerão rapidamente. A melhor correção no momento é realizar atualização já lançada pela Apache no Log4j 2.15.0
Autonomia do ataque
A vulnerabilidade ocorre nas versões anteriores do Log4J (anterior a 2.15.0) que tinha por padrão habilitado um recurso chamado de substituição de pesquisa de mensagem. Log4j detecta strings que referenciam recursos JNDI em fontes de configuração, mensagens de log e parâmetros passados por aplicativos, uma vez que Log4J não valida a URLs passados nessas strings, o invasor pode criar solicitações maliciosas para aplicativos que usam Log4J contendo strings de substituição de mensagem em campos que contêm uma URL para um servidor malicioso.
No exemplo em que se utiliza aplicativo WEB, a string pode ser parte de qualquer parte de uma comunicação HTTP que seria registrada, formatada como um comando de substituição que faz referência ao servidor malicioso – no formato
$ {jndi: [protocolo]: // [remoto servidor e endereço de código]}
Quando é enviado para o Log4J, os comandos de pesquisa que utiliza JNDI resultam no Log4J chegando a um servidor (local ou remoto) para buscar o código Java. No trafego normal, esse código ajudaria a gerar os dados a serem registrados. Mas a essência dessa vulnerabilidade é que esse mesmo mecanismo permite a execução de código Java remoto mal-intencionado e não detectado, onde o atacante terá todas as condições invadir e ter acesso à todos os dados do servidor ou do ambiente em um ataque lateral.
Como Mitigar?
Ação de correção mais eficaz nesse momento é efetuar a atualização para a versão corrigida, já lançada pela Apache no Log4j 2.15.0. Adicionalmente cada fabricante tem divulgados estratégias para conter e bloquear possíveis ataques, abaixo a Service apresenta links para visualizar a ações de cada fabricante de segurança.
LINKS:
TREND MICRO: https://success.trendmicro.com/solution/000289940
SOPHOS: https://news.sophos.com/en-us/2021/12/12/log4shell-hell-anatomy-of-an-exploit-outbreak/?cmp=30728
FORTINET: https://www.fortinet.com/blog/psirt-blogs/apache-log4j-vulnerability
PALO ALTO: https://unit42.paloaltonetworks.com/apache-log4j-vulnerability-cve-2021-44228/
Referencias:
- https://research.nccgroup.com/2021/12/12/log4shell-reconnaissance-and-post-exploitation-network-detection/
- https://www.tutorialjinni.com/log4shell-yara-ioc.html
- http://mail-archives.apache.org/mod_mbox/www-announce/202112.mbox/%3CD88D40C5-8884-470E-8FA3-3B6D6899A7B0@apache.org%3E
- https://www.socinvestigation.com/apache-log4j-vulnerability-detection-and-mitigation