um membro do Group Elephant

além do propósito corporativo

Entendendo a vulnerabilidade do Log4j

RSVP agoraRSVP agora
1º de novembro de 2021
10:30 PM
1º de novembro de 2021
10:30 PM

Estamos na metade de dezembro de 2021, pouco antes do fim do ano civil, e a vulnerabilidade do log4j chegou ao topo da lista de tarefas de qualquer empresa, especialmente se ela tiver aplicativos que se comunicam com a Internet.

O objetivo desta publicação é descrever a falha do Log4Shell em termos compreensíveis e como você pode envolver nossa equipe para ajudar.

Resumo:

1. O Log4Shell precisa ser levado a sério.

2. A vulnerabilidade contra o log4j, chamada de "Log4Shell", é oficialmente NIST CVE-2021-44228.

3. Atualizações concisas podem ser encontradas no aviso do Github aqui.

4. Uma ferramenta RASP (Runtime Application Self-Protection) o ajudará a se proteger durante a correção. Os clientes da AppDynamics podem aproveitar o Cisco Secure Application para proteção imediata durante a correção.

5. As organizações precisam de uma plataforma como a Lacework, que oferece visibilidade holística da segurança na nuvem.

6. Depois que a vulnerabilidade do Log4Shell for corrigida, as organizações deverão examinar sua infraestrutura e suas políticas de DevOps e garantir que estejam equipadas para responder a essas ameaças de forma fluida e decisiva.

Versões do Apache Log4j afetadas: 2.0 a 2.14.1

Classificação de gravidade: Crítico (10.0 CVSS geral do NIST)

Listagem oficial do NIST: CVE-2021-44228

Aviso de ameaça da TALOS: CVE-2021-44228

Orientação de correção da Apache: Injeção remota de código no Log4j

Os fundamentos: O que é o Log4Shell?

Contexto mais amplo

A vulnerabilidade do Apache Log4j, chamada Log4Shell, tem semelhanças com a vulnerabilidade da SolarWinds. É claro que elas são diferentes, mas são duas situações muito semelhantes. Por quê? A SolarWinds e a Log4Shell são ambas vulnerabilidades da cadeia de suprimentos de software. A vulnerabilidade SUNBURST (a que levou ao incidente da SolarWinds) foi uma inclusão maliciosa (um ataque) em uma DLL, e atualmente acredita-se que a vulnerabilidade Log4Shell seja uma inclusão acidental na biblioteca log4j, mas ambas são vulnerabilidades na cadeia de suprimentos de software.

O que é uma "vulnerabilidade da cadeia de suprimentos de software"?

Escondidas no fundo de todos os aplicativos estão as bibliotecas de código que o desenvolvedor do aplicativo não escreveu e que ele não vetou pessoalmente. Elas são onipresentes. Essas bibliotecas são pequenos (às vezes não tão pequenos) pacotes de código pré-escrito que executam uma função específica ou um conjunto de funções.

Os desenvolvedores usam bibliotecas de código público para não reinventar a roda. Ou, neste caso, para não reinventar uma estrutura de registro em Java. Os desenvolvedores aproveitam bibliotecas como a log4j porque as bibliotecas provaram ser soluções robustas, poderosas e confiáveis para tarefas comuns de software.

Portanto, uma vulnerabilidade na cadeia de suprimentos de software ocorre quando uma biblioteca de código é comprometida mais adiante na cadeia de suprimentos do aplicativo.

Como ocorrem as vulnerabilidades na cadeia de suprimentos de software?

Os problemas acontecem quando uma vulnerabilidade é encontrada em bibliotecas de software. Quer uma vulnerabilidade acabe no código da biblioteca de forma maliciosa ou acidental, se você a estiver usando, estará em risco. Os engenheiros de software e de segurança não podem se isolar totalmente da ameaça de vulnerabilidades em dependências. As equipes podem buscar auditorias rigorosas ou tentar evitar totalmente o uso de bibliotecas externas, mas essas opções geralmente não são economicamente viáveis.

Além da ameaça de vulnerabilidades encontradas em códigos existentes, novos códigos vulneráveis podem ser publicados no futuro. Essas bibliotecas estão sendo atualizadas constantemente. As atualizações vêm para correções de bugs e patches de segurança, que todos nós ficamos felizes em receber, mas novos recursos também são adicionados. Esses novos recursos representam uma superfície de ataque cada vez maior contra nossos aplicativos. Uma equipe de desenvolvimento pode decidir fixar suas dependências em uma versão específica, com apenas os recursos de que precisa, mas, assim, perde as correções de bugs e os patches de segurança. Nos piores casos, as vulnerabilidades podem ser adicionadas de forma maliciosa, o que tornaria isso um ataque à cadeia de suprimentos de software.

O que é o Log4Shell especificamente?

Log4Shell, oficialmente CVE-2021-44228, é uma vulnerabilidade de execução remota de código (RCE) em uma estrutura de registro Java onipresente, log4j (v2).

Há três fatores que tornam o Log4Shell tão perigoso:

1. A biblioteca vulnerável log4j é amplamente implantada.

2. A vulnerabilidade é surpreendentemente fácil de ser explorada.

3. A exploração dá aos invasores a capacidade de executar códigos arbitrários remotamente.

A biblioteca vulnerável log4j é amplamente implantada: O Log4J2 existe como biblioteca desde 2001 e tem quase 21 anos de idade. No momento em que este texto foi escrito, ele tinha apenas 11.500 commits em seu repositório git (https://github.com/apache/logging-log4j2) e seu uso é totalmente gratuito, licenciado pela Apache Foundation, uma organização sem fins lucrativos. Os desenvolvedores podem tentar replicar 21 anos de trabalho contínuo ou podem usar essa biblioteca gratuita e prontamente disponível que já é confiável e usada em quase todos os lugares.

A vulnerabilidade do Log4Shell é incrivelmente fácil de ser explorada: Basta ser capaz de fazer com que um aplicativo vulnerável registre algo de sua escolha.

Isso é muito mais fácil do que parece. Digamos que um usuário vá a uma loja on-line. Ele tenta fazer login e o aplicativo da Web registra a tentativa. O nome de usuário é registrado juntamente com a data da tentativa, se ela foi bem-sucedida ou não etc. Portanto, se esse usuário for um invasor e decidir digitar uma cadeia de caracteres maliciosa no campo de nome de usuário, ela será registrada. O site não precisa nem mesmo ter uma opção de login. Quando um usuário navega para uma página, ela registra sua visita. Muitas vezes, o identificador do agente de usuário do navegador é registrado. Um invasor pode falsificar esse agente de usuário com uma cadeia de caracteres de sua escolha e, em seguida, o aplicativo registrará essa cadeia personalizada.

O registro da cadeia de caracteres personalizada de um invasor por si só não seria problemático. O problema está em um dos muitos recursos do log4j: substituição de pesquisa de mensagens. Quando as pesquisas de mensagens estão ativadas, elas dão ao log4j a capacidade de enriquecer os dados executando pesquisas nos URLs da mensagem registrada.

Agora, os invasores podem executar códigos arbitrários remotamente: Um invasor hospeda um URL que serve um código mal-intencionado e força um aplicativo que esteja executando o log4j a registrá-lo. Quando registrado, o log4j realizará uma pesquisa e se conectará a esse URL, baixando e executando o código malicioso. O código mal-intencionado explora a vulnerabilidade do Log4Shell e injeta um segundo estágio do ataque no jvm. O segundo estágio permite que o invasor execute seu próprio código remotamente. Essa é uma versão simplificada do processo completo, que a Talos Intelligence descreve aqui:(https://blog.talosintelligence.com/2021/12/apache-log4j-rce-vulnerability.html).

Que medidas devo tomar?

Em minha experiência com o Log4Shell nos últimos dias, a fonte mais confiável de informações concisas e precisas foi aqui:

Consultoria CVE-2021-44228 do Github

As etapas de ação imediata são:

- Se você utiliza um RASP, verifique se ele está configurado para bloquear explorações contra essa vulnerabilidade.

- Faça um inventário de onde seus próprios aplicativos são vulneráveis por meio de varredura de vulnerabilidades ou outros métodos.

- Faça um inventário de seu software de terceiros e verifique seus avisos.

- Corrija seus aplicativos atualizando todas as bibliotecas log4j em uso para >=2.16.0.

- Corrija seu software de terceiros seguindo as instruções dos avisos de seus fornecedores.

- Caçar possíveis ameaças internamente. A velocidade com que o Log4Shell foi explorado pelos atacantes significa que, mesmo que uma organização tenha feito tudo certo, ainda assim poderia ter havido uma violação.

Ajudando ou dando uma segunda opinião

As organizações não consertarão completamente a vulnerabilidade do Log4Shell da noite para o dia, nesta semana ou mesmo neste mês. As equipes de segurança, DevOps, infraestrutura e liderança de TI precisam trabalhar juntas tanto no curto quanto no longo prazo.

As equipes de segurança e tecnologia precisam de maneiras de obter visibilidade, simplicidade e usabilidade para plataformas empresariais complexas, a fim de liderar a transformação digital e abordar as vulnerabilidades rapidamente, sem a cascata de dores de cabeça de TI resultante.

Curto prazo

Ajudando ou dando uma segunda opinião

Podemos oferecer chamadas de consultoria com nossos especialistas para validar se nossos clientes estão lidando com as vulnerabilidades corretamente. Normalmente, podemos ajudar na identificação de aplicativos e componentes vulneráveis no cenário de um cliente, por meio de varredura automatizada. Há maneiras de prestarmos assistência com a mitigação real, especialmente em cenários mais complexos. E, por fim, podemos dar conselhos sobre como proteger os sistemas no futuro, incluindo sugestões sobre ferramentas e gerenciamento de riscos.

Aplicativo seguro da Cisco

O Cisco Secure Application é uma ferramenta RASP (Runtime Application Self Protection) desenvolvida juntamente com o AppDynamics. Das ferramentas RASP disponíveis, o Cisco Secure Application é o mais fácil de implantar e usar que já encontrei.

Ele está incorporado em todos os agentes AppDynamics 21.3 ou posteriores. Ele não automatizará a correção para você, mas pode ajudá-lo a rastrear onde você está vulnerável ao Log4Shell e oferecer proteção enquanto você faz a correção. Como ele está incorporado ao AppDynamics Agent, se você já é um usuário do AppDynamics, nada é mais rápido do que adicionar o Secure Application. Você pode ativá-lo e proteger ativamente seus aplicativos em apenas um dia.

O Secure Application rastreia as vulnerabilidades examinando as bibliotecas carregadas do aplicativo. Ele pode ver a biblioteca vulnerável e ver as execuções que usam o caminho do código vulnerável. Assim, ele pode detectar explorações executadas contra esse (e outros) caminhos de código vulneráveis e alertá-lo sobre elas. Opcionalmente, ele também pode ser configurado para bloquear a execução desse exploit.

Se você estiver executando agentes 21.3 ou posteriores, o Secure Application poderá ser ativado sem a necessidade de nenhuma implantação adicional de sua parte. A vulnerabilidade do Log4Shell e as explorações contra essa vulnerabilidade são detectadas automaticamente. A única configuração é ativar os aplicativos e, em seguida, configurar o bloqueio automático da exploração, se desejar.

Veja esta postagem do blog sobre o aplicativo seguro da Cisco em ação

Proteja suas contas na nuvem

Assim como o Secure Application, a detecção de vulnerabilidades em contêineres de tempo de execução do Lacework pode ajudá-lo a rastrear em que parte do seu ambiente você está vulnerável a esse tipo de ameaça. Indo além do Secure Application, o Lacework pode ajudá-lo a ver, em nível de host, todas as instâncias de uma biblioteca vulnerável em suas contas de nuvem.

Além disso, a varredura de contêineres da Lacework ajuda a detectar essas vulnerabilidades em seu software antes que ele seja implantado. Isso é particularmente útil porque pode ajudá-lo a evitar a reversão para uma versão vulnerável.

No entanto, a Lacework realmente se destaca por sua abordagem holística da segurança na nuvem. A detecção de anomalias líder do setor da Lacework permite que você detecte rapidamente ameaças que possam ter entrado com sucesso em seu ambiente.

Veja a análise da Lacework sobre os atacantes do Log4Shell

Com um tempo de implementação inicial de apenas uma semana, o Lacework permite que você passe rapidamente de uma visibilidade cega para uma visibilidade total da nuvem.

Longo prazo

Patching e implementação de atualizações | Harness

A longo prazo, você deve considerar fortemente a possibilidade de garantir que sua equipe de engenharia esteja equipada com um mecanismo para aplicar patches e implementar atualizações de software rapidamente.

O Harness permite que os clientes simplifiquem ambientes DevOps modernos e complexos. A estratégia vencedora é tripla: maior velocidade de entrada no mercado, otimização automatizada da nuvem e capacitação do desenvolvedor que prioriza a segurança. O Harness traz governança para as mudanças de TI à medida que os clientes implementam códigos, patches e criam novas infraestruturas. As mudanças na TI criam riscos comerciais para os clientes, e o ROI da governança é enorme, tanto em dólares quanto em moral.

Conclusão

Em resumo, o Log4Shell é uma ameaça séria, mas provavelmente não será a última ameaça desse tipo que as equipes de segurança encontrarão. Também é importante estar preparado para esses tipos de ameaças no futuro, pois veremos mais delas. Por mais assustadoras que sejam essas ameaças, as ferramentas modernas (como o Cisco Secure Application) estão bem equipadas para ajudá-lo a se proteger e obter visibilidade. Os profissionais de segurança com visão de futuro devem continuar a implementar essas ferramentas e a governança antes da próxima vulnerabilidade, e a Evolutio pode ajudar.

Se quiser saber mais, use o formulário "Fale conosco" e poderemos conversar.

Apresentador

Autor

Devin Stonecypher
Diretor de Segurança

Devin trabalhou em várias disciplinas de TI por mais de uma década e agora atua como Diretor de Segurança na Evolutio.

Está pronto para ver o que podemos fazer por sua organização?

Entre em contato conosco
Consentimento de cookies

Ao clicar em "Aceitar", você concorda com o armazenamento de cookies em seu dispositivo para aprimorar a navegação no site, analisar o uso do site e auxiliar em nossos esforços de marketing. Consulte nossa Política de Privacidade e Política de Cookies para obter mais informações.