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).

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:

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.


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:

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:

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.

Uma análise mais detalhada revelará:

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.


Aspectos-chave do script
- 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.
- 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.
- 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]]).
- 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.
- 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.

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.




