TL;DR: domínio skimmer rextension.net com sete dias de idade
- O orçamento não ajudou: A Cisco prova que um grande orçamento de segurança não protege de um domínio atacante com sete dias de idade. As listas de reputação estavam vazias. A instância Magento estava uma CVE atrasada. Isso foi suficiente.
- Um domínio com sete dias: O domínio rextension[.]net tinha sete dias quando capturou os campos de cartão authnetcim na loja da Cisco, cifrando depois os dados roubados em AES antes da exfiltração. O cside sinaliza automaticamente domínios de scripts recém-registados, para que o mesmo truque gere um alerta antes de o primeiro cartão ser exposto.
- Aplique o patch e verifique a idade do script: Se utiliza o Magento Enterprise 2.4, aplique o patch do CosmicSting e audite os scripts do checkout esta semana. Se a aplicação do patch estiver bloqueada por uma janela de alterações, coloque uma verificação de idade de script antes do checkout como controlo temporário.
Sem tempo? Veja o bloqueio in-browser de Magecart e skimmers da cside. Cobre tudo o que se segue numa única implementação.
Mais um dia, mais um ataque JavaScript client-side de alto perfil. Esta manhã, lemos que a Cisco é a próxima vítima de código malicioso carregado através de um script de terceiros.
O site Cisco Merchant funciona sobre a framework Magento Enterprise, amplamente utilizada por sites de comércio eletrónico. O Magento oferece uma plataforma robusta e escalável, mas, como qualquer sistema, é vulnerável a exploração se os patches de segurança e as atualizações não forem aplicados a tempo. A versão exata do Magento em uso no momento do ataque era o Magento 2.4 (Enterprise).

Os ataques direcionados às frameworks Magento ganharam, com o tempo, a sua própria designação: ataques Magecart.
Os atacantes utilizam um script de terceiros que insere código malicioso, frequentemente através de um domínio, para roubar dados de cartões de crédito e informações pessoais. Os sites de comércio eletrónico são frequentemente alvo destes ataques.
Para informações mais detalhadas sobre vulnerabilidades relacionadas com o Magento, consulte estas ligações:
O script malicioso decodificado
Durante a nossa análise, descobrimos o seguinte script injetado no site:

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


Porque é que isto importa
- O registo recente do domínio levanta suspeitas, pois pode indicar uma operação efémera concebida para exploração rápida antes de ser abandonada.
- Scripts ofuscados como este são difíceis de detetar sem monitorização especializada, tornando-os especialmente perigosos tanto para os proprietários dos sites como para os seus clientes.
Como o cside teria impedido este ataque
Se o site Cisco Merchant tivesse o cside implementado, o nosso motor de deteção teria detetado este ataque. Um dos nossos sistemas verifica domínios recém-registados e, em testes, o nosso motor detetou isto e alertou o utilizador sobre esta anomalia. O próprio script foi bloqueado de carregar no navegador do utilizador de teste, impedindo este ataque antes que pudesse ocorrer. Aqui pode ver-se quando este domínio foi registado (link seguro).
Registe-se gratuitamente e proteja o seu site em segundos.
A desofuscação do script passo a passo
O script recuperado estava altamente ofuscado, tornando difícil uma análise fácil. Abaixo está apenas uma parte do código ofuscado:

O script acima é JavaScript ofuscado em várias camadas, que foi carregado num depurador.
A ofuscação é um método utilizado para tornar o código difícil de compreender, tipicamente como forma de ocultar a sua funcionalidade ou proteger dados sensíveis. No entanto, para analistas, programadores ou investigadores de segurança, compreender a funcionalidade subjacente é essencial e legal.
Colocámos um ponto de interrupção em:

Executámos o script e, após algumas descodificações, obtivemos dois JavaScripts descodificados intermédios.
O primeiro nível de ofuscação é uma função que recebe um argumento (descodificado imediatamente antes do script) e o transforma utilizando vários métodos JavaScript, como manipulação de strings e codificação de caracteres.

Uma análise mais atenta revela:

A versão final descodificada:
Este trecho confirma que o script está focado nos campos de cartões de pagamento, mas ainda está parcialmente ofuscado, com funções como _0xDCAD e _0xDBA3. Estas funções manipulam ainda mais o conteúdo e, após mais camadas de descodificação, o script final surge.


Aspetos-chave do script
- Ofuscação: O script está fortemente ofuscado, utilizando funções como _0xDCAD, _0xDBB6, _0xDBC9 para criar múltiplos níveis de codificação e ofuscação. Isto é típico de malware ou scripts que tentam ocultar a sua funcionalidade real.
- Recolha de Dados de Entrada: O script recolhe 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. Estes são tipicamente os campos onde os utilizadores introduziriam informações sensíveis de pagamento.
- Tratamento de Dados:- Os dados recolhidos (número do cartão de crédito, data de validade, CVV, etc.) são reunidos no objeto ffewq.
- O script encripta depois esta informação utilizando encriptação AES (através de funções como encrypt, decrypt, round, etc.).
- Depois de encriptados, os dados são enviados para um servidor através de chamadas jQuery.ajax() (visíveis na secção jQuery[_0xDB90[51]]).
- Encriptação: O script utiliza AES (Advanced Encryption Standard) para proteger os dados antes de os enviar. Isto inclui várias funções que tratam da lógica de encriptação AES (addRoundKey, mixColumns, encrypt, etc.), que são componentes padrão num processo de encriptação AES.
- Execução Periódica: O script está concebido para ser executado em intervalos regulares (setInterval(_0xDBA3, 100);) para verificar ou enviar continuamente os dados recolhidos.
Tenha em conta que o painel do cside faz este processo por si, desofuscando scripts para os tornar mais fáceis de ler e analisar.

O que aconteceu neste ataque
Uma das possíveis vulnerabilidades que poderá ter sido explorada neste ataque é conhecida como CosmicSting. Trata-se de uma exploração conhecida na plataforma Magento, já documentada e investigada. Pode ler mais em detalhe em Investigação da SanSec sobre o CosmicSting.
Ataques client-side como este podem ser devastadores tanto para as empresas como para os clientes. Aplique os patches prontamente, monitorize atividades suspeitas e utilize ferramentas como o cside para detetar o que a aplicação de patches, por si só, não apanha.









