Como verificar e corrigir a vulnerabilidade do Log4j?

A vulnerabilidade do Log4j está entre os problemas de segurança mais mortais em sistemas modernos.

O registro em log é um recurso fundamental em aplicativos modernos, e a biblioteca de registro, Log4j, é líder nesse espaço.

Essa biblioteca é usada na maioria dos aplicativos, serviços e sistemas. Portanto, todos os aplicativos em que o Log4j é usado são afetados por essa vulnerabilidade do Log4j encontrada no ano passado.

Com as crescentes preocupações de segurança cibernética em todo o mundo, organizações e indivíduos estão tomando medidas para proteger seus aplicativos, sistemas e dados.

E quando essa vulnerabilidade foi descoberta, estressou ainda mais profissionais e empresas.

Portanto, detectar a vulnerabilidade do Log4j e corrigi-la é essencial se você deseja proteger seus dados, rede, reputação e confiança do cliente.

Neste artigo, discutirei o que é a vulnerabilidade do Log4j, juntamente com as etapas para detectá-la e corrigi-la.

Vamos começar entendendo o Log4j e por que você precisa dele.

O que é Log4j?

Log4j é um utilitário de log de código aberto escrito em Java que é usado principalmente para armazenar, formatar e publicar registros de log gerados por aplicativos e sistemas e, em seguida, verificar erros. Os registros podem ser de vários tipos, desde uma página da web e dados do navegador até os detalhes técnicos de um sistema onde o Log4j é executado.

Em vez de escrever código do zero, os desenvolvedores podem usar a biblioteca Log4j integrando seu código em seus aplicativos.

Usando o Log4j, os desenvolvedores podem rastrear todos os eventos associados aos seus aplicativos com informações precisas de registro. Ele os ajuda a monitorar aplicativos, detectar problemas no prazo e corrigir problemas antes que eles se transformem em um problema maior em termos de desempenho e/ou segurança.

Esta biblioteca baseada em Java foi escrita por Ceki Gülcü e foi lançada em 2001 sob Apache License 2.0. Ele utiliza serviços de nomeação Java e interface de diretório (JNDI) para permitir que aplicativos interajam com outros aplicativos, como LDAP, DNS, CORBA, etc., e obtenham uma funcionalidade de diretório e nomeação para aplicativos baseados em Java. O Log4j possui três componentes para realizar suas tarefas:

  • Loggers para capturar registros de log
  • Layouts para formatar registros de log em diferentes estilos
  • Anexadores para publicar registros de log para diferentes destinos

Log4j é, de fato, uma das bibliotecas de log mais famosas da web e é usada por organizações de vários setores e países. Eles integraram essa biblioteca de registro em vários aplicativos, incluindo os principais serviços de nuvem do Google, Microsoft, Apple, Cloudflare, Twitter etc.

Seu desenvolvedor, Apache Software Foundation, desenvolveu o Log4j 2, uma atualização para o Log4j para resolver os problemas encontrados nas versões anteriores. No ano passado, foi encontrada uma vulnerabilidade no Log4j, que, quando não tratada, pode permitir que invasores invadam aplicativos e sistemas, roubem dados, infectem uma rede e executem outras atividades maliciosas.

Vamos entender mais.

O que é o Log4Shell – a vulnerabilidade do Log4j?

O Log4Shell é uma vulnerabilidade crítica de segurança cibernética na biblioteca Log4j, que afeta o funcionamento principal da biblioteca. Ele permite que um invasor controle um dispositivo ou aplicativo conectado à Internet executando a execução remota de código. Quando eles são bem sucedidos nisso, eles podem:

  • Execute qualquer código no dispositivo ou sistema
  • Acesse toda a rede e dados
  • Modifique ou criptografe qualquer arquivo no aplicativo ou dispositivo afetado

Essa vulnerabilidade foi relatada pela primeira vez em 24 de novembro de 2021, por Chen Zhaojun, pesquisador de segurança do Alibaba (gigante chinês de comércio eletrônico). A vulnerabilidade afetou seus servidores Minecraft, que a equipe de segurança em nuvem do Alibaba descobriu em 9 de dezembro.

Em seguida, o NIST publicou essa vulnerabilidade no National Vulnerability Database e a nomeou CVE-2021-44228. A Apache Software Foundation classificou essa vulnerabilidade como 10 na gravidade CVSS. Isso raramente é atribuído e é muito grave, pois tem o potencial de ser explorado ampla e facilmente, levando a danos maciços para organizações e indivíduos.

  Como verificar se sua conexão com a Internet é rápida o suficiente para jogos e Netflix

O Apache, em resposta, emitiu um patch para esta vulnerabilidade, mas ainda assim, algumas partes foram deixadas sem solução, levando a outras vulnerabilidades:

  • CVE-2021-45046 que facilitou ataques de negação de serviço (DoS) por meio de pesquisas JNDI
  • CVE-2021-45105 para permitir que hackers controlem as informações do Thread Context Map e causem ataques DoS interpretando uma string criada
  • CVE-2021-44832 afeta todas as versões do Log4j 2 via Remote Code Injection (RCE)

Como o Log4Shell funciona?

Para entender sua gravidade e quanto dano o Log4Shell pode causar, é pertinente aprender como essa vulnerabilidade do Log4j funciona.

A vulnerabilidade do Log4Shell permite que um invasor injete remotamente qualquer código arbitrário em uma rede e obtenha controle total sobre ela.

Essa sequência de ataque cibernético começa com a biblioteca de log, como Log4j, coletando e armazenando informações de log. Se não houver biblioteca de registro, todos os dados do servidor serão arquivados instantaneamente após a coleta dos dados.

Mas se você quiser analisar esses dados ou precisar realizar algumas ações com base em informações de log específicas, precisará de uma biblioteca de log para analisar os dados de log antes de arquivá-los.

Devido à vulnerabilidade do Log4j, qualquer sistema ou aplicativo que use o Log4j fica vulnerável a ataques cibernéticos. A biblioteca de log executa o código com base na entrada. Um hacker pode forçar a biblioteca de logs a executar código prejudicial, pois a vulnerabilidade permitirá que eles manipulem a entrada.

Enquanto isso, muitas coisas acontecem em segundo plano. Quando o Log4j recebe uma string especificamente criada, ele invoca um servidor LDP e baixa esse código hospedado em seu diretório para executar o código. Dessa forma, os invasores podem criar um servidor LDAP para armazenar código malicioso que pode ajudá-los a controlar qualquer servidor onde o código seja executado. Em seguida, ele enviará uma string direcionando seu código malicioso para um aplicativo ou sistema direcionado e assumirá o controle total dele.

Então, é assim que a vulnerabilidade do Log4j pode ser explorada:

  • Um invasor encontra um servidor com uma versão Log4j vulnerável.
  • Eles enviarão ao servidor de destino uma solicitação de obtenção com o link do servidor LDAP malicioso.
  • O servidor de destino, em vez de verificar a solicitação, se conectará diretamente a esse servidor LDAP.
  • Os invasores agora enviarão ao servidor de destino uma resposta do servidor LDAP contendo código malicioso. Devido à vulnerabilidade do Log4j, que permite receber o código e executá-lo sem verificação, o hacker pode aproveitar essa fraqueza para invadir o servidor de destino e explorar sistemas, redes e dispositivos conectados.

Como a vulnerabilidade do Log4j pode prejudicar os usuários?

A vulnerabilidade do Log4j é preocupante, pois é usada em uma ampla variedade de aplicativos e sistemas de software.

Como o registro é um recurso essencial na maioria dos aplicativos de software e o Log4j é uma solução líder no setor, o Log4j encontra aplicativos em vários sistemas de software.

Alguns dos serviços e aplicativos populares que usam o Log4j são Minecraft, AWS, iCloud, Microsoft, Twitter, roteadores de internet, ferramentas de desenvolvimento de software, ferramentas de segurança e assim por diante. Assim, os invasores podem atingir um grande número de aplicativos, serviços e sistemas de usuários domésticos, desenvolvedores de código, provedores de serviços e outros profissionais e indivíduos relacionados.

Além disso, a vulnerabilidade do Log4j é extremamente fácil de ser explorada por um invasor. O processo geral requer menos conjuntos de habilidades, não nível de especialista, para realizar um ataque. É por isso que o número de ataques que exploram essa vulnerabilidade está aumentando.

O impacto da vulnerabilidade Log4j são:

  • Ataques DoS
  • Ataques à cadeia de suprimentos
  • Mineração de moedas
  • Injeções de malware, como ransomware e cavalos de troia
  • Injeção de código arbitrário
  • Execução remota de código

E mais.

Como resultado desses ataques, você pode perder seus aplicativos, sistemas e dispositivos, e seus dados podem ser vítimas de invasores que podem vender seus dados, manipulá-los ou expô-los ao mundo exterior. Assim, sua empresa pode ser prejudicada em termos de privacidade de dados de clientes, confiança, segredos da organização e até mesmo suas vendas e receita, sem falar nos riscos de conformidade.

  Como instalar ferramentas de segurança e penetração de rede no Ubuntu

De acordo com um relatóriomais de 40% das redes corporativas globais sofreram ataques devido a essa vulnerabilidade.

Portanto, mesmo que você não use nenhuma versão vulnerável do Log4j em seus aplicativos, suas integrações de terceiros podem estar usando, o que torna seu aplicativo vulnerável a ataques.

Observe que todas as versões do Log4j anteriores ao Log4j 2.17.0. são impactados; portanto, você deve atualizar o registrador se usá-lo. Além disso, fornecedores famosos que são afetados por essa vulnerabilidade do Log4j são Adobe, AWS, IBM, Cisco, VMware, Okta, Fortinet, etc. Se você usa algum deles, monitore seus aplicativos continuamente e use sistemas de segurança para corrigir problemas assim que surge.

Como detectar programas afetados pelo Log4j e corrigir os problemas

A vulnerabilidade do Log4Shell tem 10 na pontuação CVSS. Portanto, todos os problemas no Log4j ainda não foram corrigidos. Mas é possível que você ou seu fornecedor terceirizado esteja usando o Log4j, que você usou em seu aplicativo.

Portanto, se você deseja proteger seus dados, sistemas e rede, certifique-se de seguir algumas etapas de correção.

#1. Atualize sua versão do Log4j

Atualizar sua versão atual do Log4j para o Log 4j 2.17.1 é a técnica de correção mais eficaz se você quiser proteger seu dispositivo e aplicativos contra ataques como resultado da vulnerabilidade do Log4j.

O Log4Shell é um tipo de ataque de dia zero que pode afetar potencialmente seu ecossistema de software. O Apache corrigiu algumas das vulnerabilidades em versões recentes, mas se o seu sistema foi comprometido antes da atualização, você ainda está em risco.

Portanto, assumindo isso, você deve não apenas atualizar a versão, mas também iniciar seus procedimentos de resposta a incidentes imediatamente para garantir que não haja vulnerabilidades em seus sistemas e aplicativos e mitigar os ataques. Você também deve revisar todos os logs do servidor para encontrar Indicadores de Comprometimento (IOC) e monitorar constantemente seus sistemas e rede.

#2. Use os mais recentes firewalls e sistemas de segurança

Firewalls como Web Application Firewall (WAF) e firewalls de última geração podem ajudar a proteger seu perímetro de rede contra invasores, verificando pacotes de dados de entrada e saída e bloqueando os suspeitos. Portanto, use os firewalls mais recentes em sua rede e defina regras de saída rígidas em seus servidores para ajudar a evitar ataques associados à vulnerabilidade do Log4j.

Embora os invasores possam contornar os firewalls, você ainda obterá algum grau de segurança com firewalls que podem bloquear as solicitações de um invasor.

Além disso, atualize todos os seus sistemas de segurança, como Sistemas de Detecção de Intrusão (IDS), Sistemas de Prevenção de Intrusão (IPS), etc., com as assinaturas e regras mais recentes. Esses sistemas ajudarão a bloquear ou filtrar o tráfego RMI e LDAP de se conectar a um servidor LDAP mal-intencionado.

#3. Implementar MFA

A configuração da autenticação multifator (MFA) em seus aplicativos e sistema fornecerá melhor segurança contra invasores. Ele fornecerá uma segunda camada de segurança, mesmo que um invasor consiga quebrar a primeira camada. Você pode fazer isso por meio de biometria, como impressões digitais, digitalização de íris, etc., definindo uma pergunta de segurança ou ativando um PIN de segurança.

O uso de MFA aumentará a dificuldade e o tempo dos invasores para realizar um ataque completo. Enquanto isso, ele também pode informá-lo sobre o incidente imediatamente para que você possa tomar as medidas de correção necessárias quando ainda tiver tempo.

Além disso, você também deve aplicar políticas rígidas de VPN para reduzir as violações de dados. Isso permitirá que os usuários acessem seus sistemas com segurança de qualquer lugar, sem medo de invasores.

#4. Alterar propriedades do sistema

Caso não seja possível atualizar para a versão mais recente da biblioteca Log4j, você deve alterar as propriedades do sistema java imediatamente se usar uma versão variando de Log4j 2.10 a Log4j 2.14.1.

Você deve configurá-lo de forma a evitar pesquisas que os invasores usam para detectar as vulnerabilidades e, em seguida, encontrar maneiras de explorá-las.

  Como configurar o tempo de tela para crianças no iPhone

#5. Remover JNDI

A razão para esta vulnerabilidade de segurança crítica está em seu design. O plugin JNDI Lookup tem uma falha de design através da qual os invasores podem realizar um ataque.

O JNDI é usado para execução de código com base nos dados de entrada em seu log, que qualquer pessoa pode manipular facilmente, pois o logger aceita qualquer solicitação sem verificação.

Pesquisadores de segurança descobriram que este plugin sempre permitiu dados não analisados ​​desde que foi lançado em 2013 e os envia para a biblioteca Log4j.

Portanto, a vulnerabilidade do Log4j é propensa à exploração com uma simples injeção de string. Uma vez que o invasor o injete, o logger aceitará a operação solicitada na string e a executará instantaneamente sem verificação.

Portanto, se você deseja proteger seus sistemas e aplicativos, deve desabilitar a classe – JndiLookup. Isso impedirá que o registrador tome medidas com base nos dados de log.

Na verdade, a pesquisa JNDI já está desabilitada no Log4j 2.16.0 por padrão na tentativa de proteger seus aplicativos e sistemas.

Portanto, se você estiver usando uma versão do Log4j inferior a 2.16.0, certifique-se de ter desabilitado o JNDI Lookup.

#6. Fale com seus fornecedores

Se você tem tudo certo, seus firewalls e sistemas de segurança atualizados, versão do Log4j atualizada, JNDI Lookup desabilitado, etc., não relaxe ainda.

Mesmo que você não use uma versão vulnerável do Log4j em seus aplicativos, seus fornecedores terceirizados podem estar usando. Portanto, você nunca saberá como seu aplicativo ou sistema foi invadido porque o problema real foi com sua integração de terceiros.

Portanto, converse com seus fornecedores e verifique se eles também atualizaram o Log4j para a versão mais recente e implementaram outras práticas de segurança discutidas acima.

#7. Use um verificador de vulnerabilidades Log4j

Existem muitas ferramentas de verificação de vulnerabilidades do Log4j disponíveis no mercado para facilitar a detecção de vulnerabilidades do Log4j em seus sistemas e aplicativos.

Por isso, ao procurar essas ferramentas, verifique suas taxas de precisão, pois muitas delas geram falsos positivos. Além disso, encontre uma ferramenta que possa atender às suas necessidades, pois ela pode se concentrar em identificar a vulnerabilidade do Log4j, relatar a exposição e remediar a vulnerabilidade.

Portanto, se seu foco for a detecção, encontre um verificador de vulnerabilidades Log4j que possa detectar o problema ou use aquele que possa detectar e corrigir o problema.

Algumas das melhores ferramentas de verificação do Log4j são:

  • Microsoft 365 Defender: a Microsoft oferece uma variedade de soluções e ferramentas de segurança para ajudá-lo a detectar e impedir explorações do Log4j em sua rede. Você poderá identificar tentativas de execução e exploração remotas de código, protegendo-o das vulnerabilidades do Log4j em dispositivos Windows e Linux.
  • Amazon Inspector e AWS: a Amazon criou uma ferramenta de varredura para encontrar a vulnerabilidade do Log4j em instâncias do Amazon EC2 e Amazon ECR.
  • CloudStrike Archive Scan Tool (CAST): CloudStrike também criou uma excelente ferramenta de varredura para detectar a vulnerabilidade do Log4j para ajudá-lo a corrigir problemas a tempo antes que os invasores possam explorá-lo.
  • Detecção do Google Cloud Logging: a solução de detecção de registro em nuvem do Google permite detectar explorações do Log4j usando o Logs Explorer. Você pode criar uma consulta de log nesta ferramenta e verificar possíveis sequências de exploração.
  • O Google também criou o log4jscanner, um scanner de sistema de arquivos de código aberto para detectar a vulnerabilidade do Log4j.
  • BurpSuite Log4j Scanner: Este é um plugin de segurança para profissionais e empresas para ajudá-los a detectar a vulnerabilidade do Log4j.
  • Testador de Vulnerabilidade Huntress Log4Shell: Esta ferramenta gera um identificador exclusivo aleatoriamente que você pode usar ao testar seus campos de entrada. Ao encontrar uma vulnerabilidade no aplicativo ou no campo de entrada, seu servidor LDAP seguro encerrará a conexão maliciosa instantaneamente e o manterá seguro.
  • WhiteSource Log4j Detect: WhiteSource criou uma ferramenta CLI gratuita, WhiteSource Log4j Detect, hospedada no GitHub para ajudá-lo a detectar e corrigir vulnerabilidades do Log4j – CVE-2021-445046 e CVE-2021-44228.
  • Ferramentas de varredura de código aberto JFrog para Log4j: O JFrog criou várias soluções e ferramentas de código aberto para encontrar vulnerabilidades do Log4j em seus binários e código-fonte.

Conclusão

A vulnerabilidade do Log4j é um problema crítico de segurança. Como essa biblioteca de log é amplamente usada em vários aplicativos e sistemas, a vulnerabilidade do Log4j se espalhou, permitindo que invasores explorem uma ampla variedade de sistemas e aplicativos.

Portanto, se você deseja proteger seus sistemas e aplicativos dessa vulnerabilidade, certifique-se de atualizar a biblioteca Log4j para a versão mais recente e implementar as melhores práticas de segurança discutidas acima.