• Home
  • Química
  • Astronomia
  • Energia
  • Natureza
  • Biologia
  • Física
  • Eletrônicos
  • O que é Log4j? Um especialista em segurança cibernética explica a vulnerabilidade mais recente da Internet, quão ruim ela é e o que está em jogo

    Crédito:Pixabay/CC0 Public Domain

    O Log4Shell, uma vulnerabilidade da Internet que afeta milhões de computadores, envolve um software obscuro, mas quase onipresente, o Log4j. O software é usado para registrar todos os tipos de atividades que acontecem sob o capô 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 comunica mensagens de diagnóstico sobre eles aos administradores e usuários do 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.

    É relativamente simples explorar o Log4Shell. Consegui reproduzir o problema em minha cópia do Ghidra, uma estrutura de engenharia reversa para pesquisadores de segurança, em apenas alguns minutos. Há uma barra muito baixa para usar esse exploit, o que significa que uma gama maior de pessoas com intenções maliciosas pode usá-lo.

    Log4j está em toda parte

    Uma das principais preocupações sobre o Log4Shell é a posição do Log4j no ecossistema de software. O registro em log é 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, bem como uma ampla gama de programas de ferramentas de desenvolvimento de software a ferramentas de segurança.

    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. So while big companies like Amazon can quickly patch their web services to prevent hackers from exploiting them, there are many more organizations that will take longer to patch their systems, and some that might not even know they need to.
    Open-source software like Log4j is used in so many products and tools that some organizations don’t even know which pieces of code are on their computers.

    The damage that can be done

    Hackers are scanning through the internet to find vulnerable servers and setting up machines that can deliver malicious payloads. To carry out an attack, they query services (for example, web servers) and try to trigger a log message (for example, a 404 error). The query includes maliciously crafted text, which Log4j processes as instructions.

    These instructions can create a reverse shell, which allows the attacking server to remotely control the targeted server, or they can make the target server part of a botnet. Botnets use multiple hijacked computers to carry out coordinated actions on behalf of the hackers.

    A large number of hackers are already trying to abuse Log4Shell. These range from ransomware gangs locking down minecraft servers to hacker groups trying to mine bitcoin and hackers associated with China and North Korea trying to gain access to sensitive information from their geopolitical rivals. The Belgian ministry of defense reported that its computers were being attacked using Log4Shell.

    Although the vulnerability first came to widespread attention on Dec. 10, 2021, people are still identifying new ways to cause harm through this mechanism.

    Stopping the bleeding

    It is hard to know whether Log4j is being used in any given software system because it is often bundled as part of other software. This requires system administrators to inventory their software to identify its presence. If some people don't even know they have a problem, it's that much harder to eradicate the vulnerability.

    Another consequence of Log4j's diverse uses is there is no one-size-fits-all solution to patching it. Depending on how Log4j was incorporated in a given system, the fix will require different approaches. It could require a wholesale system update, as done for some Cisco routers, or updating to a new version of software, as done in Minecraft, or removing the vulnerable code manually for those who can't update the software.

    Log4Shell is part of the software supply chain. Like physical objects people purchase, software travels through different organizations and software packages before it ends up in a final product. When something goes wrong, rather than going through a recall process, software is generally "patched," meaning fixed in place.

    However, given that Log4j is present in various ways in software products, propagating a fix requires coordination from Log4j developers, developers of software that use Log4j, software distributors, system operators and users. Usually, this introduces a delay between the fix being available in Log4j code and people's computers actually closing the door on the vulnerability.

    Some estimates for time-to-repair in software generally range from weeks to months. However, if past behavior is indicative of future performance, it is likely the Log4j vulnerability will crop up for years to come.

    As a user, you are probably wondering what can you do about all this. Unfortunately, it is hard to know whether a software product you are using includes Log4j and whether it is using vulnerable versions of the software. However, you can help by heeding the common refrain from computer security experts:Make sure all of your software is up to date.
    © Ciência https://pt.scienceaq.com