Skip to main content
Blog
Blog

Ataque JavaScript Magecart client-side na Cisco

Mais um dia, mais um ataque JavaScript client-side de alto perfil. Nesta manhã, lemos que a Cisco é a próxima vítima de código malicioso sendo

Sep 06, 2024 5 min read
cisco-client-side-image-cover

Mais um dia, mais um ataque JavaScript client-side de alto perfil. Nesta manhã, lemos que a Cisco é a próxima vítima de código malicioso sendo carregado através de um script de terceiros.

O site Cisco Merchant opera no framework Magento Enterprise, amplamente utilizado por sites de eCommerce. O Magento oferece uma plataforma robusta e escalável, mas como qualquer sistema, é vulnerável à exploração se patches de segurança e atualizações não forem aplicados em tempo hábil. A versão exata do Magento em uso no momento do ataque era Magento 2.4 (Enterprise).

Detecção do Wappalyzer mostrando Magento 2.4 Enterprise em execução no site da Cisco

Ataques direcionados aos frameworks Magento ganharam, ao longo do tempo, seu próprio apelido: ataques Magecart.

Os atacantes usam um script de terceiros que insere código malicioso, frequentemente através de um domínio, para roubar informações de cartão de crédito e dados pessoais. Sites de e-commerce são frequentemente alvos nesses ataques.

Para informações mais detalhadas sobre vulnerabilidades relacionadas ao Magento, confira estes links:

O script malicioso decodificado

Durante nossa análise, descobrimos o seguinte script injetado no site:

Tag de script injetada carregando código malicioso de rextension.net

Este script, hospedado no domínio

rextension[.]net/za/, que está associado a um endereço IP localizado na Rússia (82.202.163.229), foi encontrado recuperando código ofuscado adicional. O domínio foi registrado recentemente em 30 de agosto de 2024, tendo apenas 7 dias de idade no momento de nossa análise em 6 de setembro de 2024.

Carga útil ofuscada inicial recuperada do domínio rextension.net

Consulta WHOIS posicionando o domínio rextension.net em um IP russo

Por que isso importa

  • O registro recente do domínio levanta bandeiras vermelhas, pois pode indicar uma operação de curta duração projetada para exploração rápida antes de ser abandonada.
  • Scripts ofuscados como esses são difíceis de detectar sem monitoramento especializado, tornando-os especialmente perigosos tanto para proprietários de sites quanto para seus clientes.

Como o cside teria impedido este ataque

Se o site Cisco Merchant tivesse o cside implementado, nosso mecanismo de detecção teria capturado este ataque. Um de nossos sistemas verifica domínios recém-registrados e, em testes, nosso mecanismo detectou isso e alertou o usuário sobre essa anomalia. O próprio script foi bloqueado de carregar no navegador do usuário de teste, impedindo este ataque antes que pudesse ocorrer. Aqui pode ser visto quando este domínio foi registrado (link seguro).

Cadastre-se gratuitamente e proteja seu site em segundos.

Desofuscando o script passo a passo

O script recuperado estava altamente ofuscado, tornando difícil sua análise fácil. Abaixo está apenas uma parte do código ofuscado:

JavaScript fortemente ofuscado extraído da página comprometida da Cisco

O script acima é JavaScript ofuscado em múltiplas camadas, que foi carregado em um depurador.

Ofuscação é um método usado para tornar o código difícil de entender, tipicamente como meio de ocultar sua funcionalidade ou proteger dados sensíveis. No entanto, para analistas, desenvolvedores ou pesquisadores de segurança, entender a funcionalidade subjacente é essencial e legal.

Colocamos um breakpoint em:

Depurador do navegador pausado no primeiro ponto de interrupção dentro do script ofuscado

E executamos o script e, após algumas decodificações, obtivemos dois JavaScripts decodificados intermediários.

O primeiro nível de ofuscação é uma função que recebe um argumento (decodificado logo antes do script) e o transforma usando vários métodos JavaScript, como manipulação de strings e codificação de caracteres.

Primeira camada do script Magecart ofuscado após decodificação parcial

Uma análise mais detalhada revelará:

Depurador do navegador pausado no segundo ponto de interrupção dentro do script ofuscado

A versão final decodificada:

Este trecho confirma que o script está focado em campos de cartão de pagamento, mas ainda está parcialmente ofuscado, com funções como _0xDCAD e _0xDBA3. Essas funções manipulam ainda mais o conteúdo e, após mais camadas de decodificação, o script final emerge.

Trecho final de JavaScript decodificado que mira nos campos do formulário de cartão de pagamento

Última camada decodificada do script ofuscado que rouba dados de cartões de pagamento

Aspectos-chave do script

  1. Ofuscação: O script está fortemente ofuscado, usando funções como _0xDCAD, _0xDBB6, _0xDBC9 para criar múltiplos níveis de codificação e ofuscação. Isso é típico de malware ou scripts tentando ocultar sua funcionalidade real.
  2. Coleta de Entrada: O script coleta informações de elementos de entrada HTML identificados por seletores CSS como #authnetcim-cc-number, #authnetcim-cc-exp-month, #authnetcim-cc-exp-year e #authnetcim-cc-cid. Esses são tipicamente campos onde os usuários inseririam informações sensíveis de pagamento.
  3. Manipulação de Dados:- Os dados coletados (número do cartão de crédito, data de validade, CVV, etc.) são reunidos no objeto ffewq.
  • O script então criptografa essas informações usando criptografia AES (através de funções como encrypt, decrypt, round, etc.).
  • Uma vez criptografados, os dados são enviados para um servidor usando chamadas jQuery.ajax() (vistas na seção jQuery[_0xDB90[51]]).
  1. Criptografia: O script usa AES (Advanced Encryption Standard) para proteger os dados antes de enviá-los. Isso inclui várias funções que lidam com a lógica de criptografia AES (addRoundKey, mixColumns, encrypt, etc.), que são componentes padrão em um processo de criptografia AES.
  2. Execução Periódica: O script é projetado para executar em intervalos regulares (setInterval(_0xDBA3, 100);) para verificar ou enviar continuamente os dados coletados.

Saiba que o painel do cside faz esse processo para você, desofuscando scripts para torná-los mais fáceis de ler e analisar.

Painel da cside exibindo o conteúdo desofuscado do script do jsDelivr

O que aconteceu neste ataque

Uma das possíveis vulnerabilidades que pode ter sido explorada neste ataque é conhecida como CosmicSting. Esta é uma exploração conhecida na plataforma Magento que foi documentada e pesquisada. Você pode ler mais sobre ela em detalhes em Pesquisa SanSec sobre CosmicSting.

Ataques client-side como este podem ser devastadores tanto para empresas quanto para clientes, destacando a importância da vigilância constante e da implementação de medidas de segurança sofisticadas. As empresas devem garantir que apliquem patches, monitorem atividades suspeitas e utilizem ferramentas avançadas como as oferecidas pelo cside para mitigar riscos.

Himanshu Anand
Software Engineer

I'm a software engineer and security analyst.

FAQ

Frequently Asked Questions

Os atacantes exploraram uma vulnerabilidade do Magento 2.4 — provavelmente o CosmicSting — para injetar um script ofuscado na página. O script era hospedado no domínio recém-registrado rextension.net e capturava dados de cartões do formulário de checkout.

O domínio do atacante tinha apenas sete dias no momento da análise, então nenhum threat feed o havia marcado como malicioso. O monitoramento no cliente identifica o comportamento — um script lendo subitamente campos de cartão — em vez de depender de uma reputação de domínio que ainda não existe.

Monitore e Proteja Seus Scripts de Terceiros

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Comece grátis, ou experimente o Business com um teste de 14 dias.

Interface do painel cside mostrando monitoramento de scripts e análises de segurança
Related Articles
Agende uma demonstração