Skip to main content
Blog
Blog

Attaque JavaScript Magecart côté client chez Cisco

Un jour de plus, une nouvelle attaque JavaScript côté client très médiatisée. Ce matin, nous avons appris que Cisco est la prochaine victime d'un code malveillant chargé

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

Un jour de plus, une nouvelle attaque JavaScript côté client très médiatisée. Ce matin, nous avons appris que Cisco est la prochaine victime d'un code malveillant chargé via un script tiers.

Le site web Cisco Merchant fonctionne sur le framework Magento Enterprise, largement utilisé par les sites web de commerce électronique. Magento offre une plateforme robuste et évolutive, mais comme tout système, il est vulnérable à l'exploitation si les correctifs de sécurité et les mises à jour ne sont pas appliqués en temps opportun. La version exacte de Magento utilisée au moment de l'attaque était Magento 2.4 (Enterprise).

Détection Wappalyzer de Magento 2.4 Enterprise fonctionnant sur le site de Cisco

Les attaques ciblant les frameworks Magento ont, au fil du temps, obtenu leur propre surnom : les attaques Magecart.

Les attaquants utilisent un script tiers qui insère du code malveillant, souvent via un domaine, pour voler des informations de carte de crédit et des données personnelles. Les sites de commerce électronique sont souvent une cible dans ces attaques.

Pour des informations plus détaillées sur les vulnérabilités liées à Magento, consultez ces liens :

Le script malveillant décodé

Au cours de notre analyse, nous avons découvert le script injecté suivant sur le site web :

Balise de script injectée chargeant du code malveillant depuis rextension.net

Ce script, hébergé sur le domaine

rextension[.]net/za/, qui est associé à une adresse IP située en Russie (82.202.163.229), s'est avéré récupérer du code obfusqué supplémentaire. Le domaine a été récemment enregistré le 30 août 2024, ce qui en fait un domaine de seulement 7 jours au moment de notre analyse le 6 septembre 2024.

Charge utile obfusquée initiale récupérée depuis le domaine rextension.net

Requête WHOIS plaçant le domaine rextension.net sur une IP russe

Pourquoi c'est important

  • L'enregistrement récent du domaine soulève des signaux d'alarme car il pourrait indiquer une opération éphémère conçue pour une exploitation rapide avant d'être abandonnée.
  • Les scripts obfusqués comme ceux-ci sont difficiles à détecter sans surveillance spécialisée, ce qui les rend particulièrement dangereux tant pour les propriétaires de sites web que pour leurs clients.

Comment cside aurait arrêté cette attaque

Si le site web marchand de Cisco avait eu cside en place, notre moteur de détection aurait détecté cette attaque. L'un de nos systèmes vérifie les domaines nouvellement enregistrés, et lors des tests, notre moteur a détecté cela et alerté l'utilisateur de cette anomalie. Le script lui-même a été bloqué avant de se charger dans le navigateur de l'utilisateur test, arrêtant cette attaque avant qu'elle ne puisse avoir lieu. Ici, on peut voir quand ce domaine a été enregistré (lien sûr).

Inscrivez-vous gratuitement et protégez votre site en quelques secondes.

Désobfuscation du script étape par étape

Le script récupéré était fortement obfusqué, ce qui rendait son analyse difficile. Voici juste une partie du code obfusqué :

JavaScript fortement obfusqué récupéré depuis la page Cisco compromise

Le script ci-dessus est du JavaScript obfusqué en plusieurs couches, qui a été chargé dans un débogueur.

L'obfuscation est une méthode utilisée pour rendre le code difficile à comprendre, généralement comme moyen de cacher sa fonctionnalité ou de protéger des données sensibles. Cependant, pour les analystes, développeurs ou chercheurs en sécurité, comprendre la fonctionnalité sous-jacente est essentiel et légal.

Nous avons placé un point d'arrêt à :

Débogueur du navigateur arrêté au premier point d'arrêt dans le script obfusqué

Et exécuté le script et, après quelques décodages, nous avons obtenu deux JavaScripts décodés intermédiaires.

Le premier niveau d'obfuscation est une fonction qui prend un argument (décodé juste avant le script) et le transforme en utilisant diverses méthodes JavaScript, telles que la manipulation de chaînes et l'encodage de caractères.

Première couche du script Magecart obfusqué après un décodage partiel

Un examen plus approfondi révèle :

Débogueur du navigateur arrêté au deuxième point d'arrêt dans le script obfusqué

La version finale décodée :

Cet extrait confirme que le script se concentre sur les champs de carte de paiement, mais il est encore partiellement obfusqué, avec des fonctions comme _0xDCAD et _0xDBA3. Ces fonctions manipulent davantage le contenu, et après plusieurs couches de décodage, le script final émerge.

Extrait JavaScript finalement décodé ciblant les champs du formulaire de carte bancaire

Dernière couche décodée du script obfusqué qui vole les données de carte bancaire

Aspects clés du script

  1. Obfuscation : Le script est fortement obfusqué, utilisant des fonctions comme _0xDCAD, _0xDBB6, _0xDBC9 pour créer plusieurs niveaux d'encodage et d'obfuscation. C'est typique des logiciels malveillants ou des scripts essayant de cacher leur fonctionnalité réelle.
  2. Collecte d'entrées : Le script collecte des informations à partir d'éléments d'entrée HTML identifiés par des sélecteurs CSS tels que #authnetcim-cc-number, #authnetcim-cc-exp-month, #authnetcim-cc-exp-year, et #authnetcim-cc-cid. Ce sont généralement des champs où les utilisateurs saisiraient des informations de paiement sensibles.
  3. Traitement des données :- Les données collectées (numéro de carte de crédit, date d'expiration, CVV, etc.) sont rassemblées dans l'objet ffewq.
  • Le script chiffre ensuite ces informations en utilisant le chiffrement AES (via des fonctions comme encrypt, decrypt, round, etc.).
  • Une fois chiffrées, les données sont envoyées à un serveur en utilisant des appels jQuery.ajax() (visibles dans la section jQuery[_0xDB90[51]]).
  1. Chiffrement : Le script utilise AES (Advanced Encryption Standard) pour sécuriser les données avant de les envoyer. Cela inclut plusieurs fonctions gérant la logique de chiffrement AES (addRoundKey, mixColumns, encrypt, etc.), qui sont des composants standard dans un processus de chiffrement AES.
  2. Exécution périodique : Le script est conçu pour s'exécuter à intervalles réguliers (setInterval(_0xDBA3, 100);) pour vérifier ou envoyer continuellement les données collectées.

Veuillez noter que le tableau de bord cside effectue ce processus pour vous, désobfusquant les scripts pour les rendre plus faciles à lire et à analyser.

Tableau de bord cside affichant le contenu désobfusqué du script jsDelivr

Ce qui s'est passé dans cette attaque

L'une des vulnérabilités possibles qui aurait pu être exploitée dans cette attaque est connue sous le nom de CosmicSting. Il s'agit d'une exploitation connue dans la plateforme Magento qui a été documentée et recherchée. Vous pouvez en lire plus en détail sur Recherche SanSec sur CosmicSting.

Les attaques côté client comme celle-ci peuvent être dévastatrices tant pour les entreprises que pour les clients, soulignant l'importance d'une vigilance constante et de la mise en œuvre de mesures de sécurité sophistiquées. Les entreprises doivent s'assurer qu'elles appliquent les correctifs, surveillent les activités suspectes et utilisent des outils avancés comme ceux offerts par cside pour atténuer les risques.

Himanshu Anand
Software Engineer

I'm a software engineer and security analyst.

FAQ

Frequently Asked Questions

Les attaquants ont exploité une vulnérabilité Magento 2.4 — très probablement CosmicSting — pour injecter un script obfusqué dans la page. Le script était hébergé sur le domaine récemment enregistré rextension.net et siphonnait les données de cartes du formulaire de paiement.

Le domaine des attaquants n'avait que sept jours au moment de l'analyse — aucun threat feed ne l'avait encore signalé comme malveillant. La surveillance côté client repère le comportement — un script qui lit soudain les champs de carte — au lieu de s'appuyer sur une réputation de domaine qui n'existe pas encore.

Surveillez et sécurisez vos scripts tiers

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

Commencez gratuitement, ou essayez Business avec un essai de 14 jours.

cside Interface du tableau de bord affichant la surveillance des scripts et les analyses de sécurité
Related Articles
Réserver une démonstration