top of page
  • Foto do escritorInternational IT

Spring4Shell: Como se proteger dessa vulnerabilidade Zero Day?

Atualizado: 5 de dez. de 2023

Pouco tempo depois do Log4Shell, a vulnerabilidade Apache Log4j que deixou grande parte da internet em risco, uma nova falha Zero Day com alto grau de severidade foi descoberta.




O Spring Framework é um dos modelos de programação e configuração para desenvolvedores Java mais populares do mundo. Recentemente, várias vulnerabilidades (batizadas como Spring4Shell) foram identificadas afetando o popular Java Spring Framework e componentes de software relacionados.


Segundo a Check Point, líder global em soluções de cibersegurança, várias tentativas de exploração de vulnerabilidades estão acontecendo entre seus clientes:


Já a empresa Praetorian confirmou em seu blog que o bug depende de configurações específicas para ser explorado:

A exploração requer um endpoint com DataBinder habilitado (por exemplo, uma solicitação POST que decodifica dados do corpo da solicitação automaticamente) e depende muito do contêiner do servlet para o aplicativo.
Por exemplo, quando o Spring é implantado no Apache Tomcat, o WebAppClassLoader fica acessível, o que permite que um invasor chame getters e setters para gravar um arquivo JSP malicioso em disco.
No entanto, se o Spring for implementado usando o Embedded Tomcat Servlet Container, o classloader é um LaunchedURLClassLoader que tem acesso limitado.
Em certas configurações, a exploração desse problema é direta, pois exige apenas que um invasor envie uma solicitação POST criada para um sistema vulnerável. No entanto, a exploração de diferentes configurações exigirá que o invasor faça pesquisas adicionais para encontrar cargas úteis que serão eficazes.

As organizações que usam o Java Spring devem revisar imediatamente seus softwares e atualizar para as versões mais recentes, seguindo as orientações oficiais do projeto Spring.


Como se proteger do Spring4Shell?


O CloudGuard AppSec da Check Point oferece proteção preventiva contra explorações das vulnerabilidades acima.


Para garantir que você esteja protegido pelo CloudGuard AppSec, a única coisa que você precisa fazer é certificar-se de que o aplicativo Web esteja definido para o modo de prevenção padrão. Nenhuma atualização ou outras configurações são necessárias.




Como o CloudGuard AppSec funciona?


A solução usa Contextual Machine Learning em uma abordagem de três fases para detectar e prevenir ataques.


Fase 1 - Decodificação da carga útil


Um Machine Learning eficaz requer uma compreensão profunda dos protocolos de aplicativos. A solução analisa todos os campos relevantes, incluindo cabeçalhos HTTP, extração JSON/XML e normalização de carga útil, como base64 e outras decodificação. Um conjunto de analisadores que cobrem protocolos comuns alimenta os dados relevantes na fase 2.


Fase 2 - Indicadores de Ataque


Após a análise e a normalização, a entrada de carga útil da rede é alimentada em um mecanismo de alto desempenho que procura indicadores de ataque. Um indicador de ataque é um padrão de exploração de vulnerabilidades de várias famílias. Derivamos esses padrões de ataque com base no aprendizado supervisionado off-line contínuo de um grande número de cargas úteis que recebem uma pontuação de acordo com a probabilidade de serem benignas ou mal-intencionadas. Essa pontuação representa o nível de confiança de que esse padrão faz parte de um ataque.


No caso do Spring4Shell tivemos vários indicadores de Injeção/Execução Remota de Código que sinalizavam cargas úteis como maliciosas em uma pontuação muito alta o que por si só já bastava, mas para garantir precisão e evitar falsos positivos, o motor sempre passa para a terceira e última fase.


Fase 3 - Mecanismo de avaliação contextual


Esse mecanismo contextual está usando técnicas de Machine Learning para determinar se a carga útil é maliciosa, no contexto de um cliente/ambiente específico, usuário, URL e campo que em uma função ponderada soma uma pontuação de confiança. Se a pontuação for maior que o limite, a solicitação será descartada.


Estes são os fatores considerados pelo motor:

  • Fator de reputação: Em cada solicitação, o originador da solicitação recebe uma pontuação. A pontuação representa a reputação do originador com base em solicitações anteriores. Essa pontuação é normalizada e usada para aumentar ou diminuir a pontuação de confiança.

  • Reconhecimento do aplicativo: Muitas vezes, os aplicativos modernos permitem que os usuários modifiquem páginas da Web, carreguem scripts, usem uma sintaxe elaborada de pesquisa de consulta, etc. Eles oferecem uma melhor experiência ao usuário, mas sem o reconhecimento do aplicativo, são detectados como ataques maliciosos. Usamos ML para analisar o comportamento do aplicativo.

  • Formato de entrada do usuário: O sistema pode identificar tipos especiais de entrada do usuário que são conhecidos por causar falsa detecção e aplicar ML para modificar o processo de detecção e permitir comportamento legítimo sem comprometer a segurança contra ataques.

  • Fator de detecção falsa: Se houver uma inconsistência na detecção, um fator é aplicado à pontuação de confiança com base na reputação por local de detecção.

  • Módulo de aprendizado supervisionado: Módulo opcional que mostra a carga útil dos administradores e pede para classificá-los, acelerando assim o processo de aprendizado.


Próximos passos


Se sua organização não estiver usando o CloudGuard AppSec e estiver usando o Java Spring, revise imediatamente seu software e atualize para as versões mais recentes seguindo as orientações oficiais do projeto Spring.


Se quiser iniciar uma avaliação gratuita da solução da Check Point, entre em contato com nossos especialistas no formulário abaixo.

 



Posts recentes

Ver tudo

Nos acompanhe nas redes sociais!

1200X628 - SAND.png
1200X628 -NOC.png

Ver todos os materiais gratuitos

bottom of page