Skip to main content
Blog
Blog

Cisco client-side Magecart JavaScript-aanval

Weer een dag, weer een spraakmakende client-side JavaScript-aanval. Vanochtend lazen we dat Cisco het volgende slachtoffer is van kwaadaardige code die wordt

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

Weer een dag, weer een spraakmakende client-side JavaScript-aanval. Vanochtend lazen we dat Cisco het volgende slachtoffer is van kwaadaardige code die wordt geladen via een third-party script.

De Cisco Merchant-website draait op het Magento Enterprise-framework, dat veel wordt gebruikt door eCommerce-websites. Magento biedt een robuust en schaalbaar platform, maar zoals elk systeem is het kwetsbaar voor exploitatie als beveiligingspatches en updates niet tijdig worden toegepast. De exacte versie van Magento die ten tijde van de aanval in gebruik was, was Magento 2.4 (Enterprise).

Wappalyzer-detectie van Magento 2.4 Enterprise op de site van Cisco

Aanvallen gericht op de Magento-frameworks hebben in de loop der tijd hun eigen bijnaam gekregen: Magecart-aanvallen.

De aanvallers gebruiken een third-party script dat kwaadaardige code invoegt, vaak via een domein, om creditcard- en persoonlijke informatie te stelen. E-commerce sites zijn vaak een doelwit bij deze aanvallen.

Voor meer gedetailleerde informatie over kwetsbaarheden gerelateerd aan Magento, bekijk deze links:

Het kwaadaardige script gedecodeerd

Tijdens onze analyse ontdekten we het volgende geïnjecteerde script op de website:

Geïnjecteerde scripttag die kwaadaardige code laadt vanaf rextension.net

Dit script, gehost op het domein

rextension[.]net/za/, dat is gekoppeld aan een IP-adres in Rusland (82.202.163.229), bleek aanvullende geobfusceerde code op te halen. Het domein was onlangs geregistreerd op 30 augustus 2024, waardoor het slechts 7 dagen oud was ten tijde van onze analyse op 6 september 2024.

Initiële versluierde payload opgehaald van het domein rextension.net

WHOIS-lookup die het domein rextension.net op een Russisch IP-adres plaatst

Waarom dit belangrijk is

  • De recente registratie van het domein is een waarschuwingssignaal, omdat het kan wijzen op een vluchtige operatie die is ontworpen voor snelle exploitatie voordat deze wordt verlaten.
  • Geobfusceerde scripts zoals deze zijn moeilijk te detecteren zonder gespecialiseerde monitoring, waardoor ze bijzonder gevaarlijk zijn voor zowel website-eigenaren als hun klanten.

Hoe cside deze aanval had kunnen stoppen

Als de Cisco merchant-website cside had gehad, zou onze detectie-engine deze aanval hebben onderschept. Een van onze systemen controleert op nieuw geregistreerde domeinen, en bij het testen heeft onze engine dit opgepikt en de gebruiker gewaarschuwd voor deze anomalie. Het script zelf werd geblokkeerd en kon niet worden geladen in de browser van de testgebruiker, waardoor deze aanval werd gestopt voordat deze kon plaatsvinden. Hier is te zien wanneer dit domein werd geregistreerd (veilige link).

Meld je gratis aan en bescherm je site in enkele seconden.

Het script stap voor stap deobfusceren

Het opgehaalde script was sterk geobfusceerd, waardoor het moeilijk te analyseren was. Hieronder is slechts een deel van de geobfusceerde code:

Sterk versluierd JavaScript afkomstig van de gecompromitteerde Cisco-pagina

Het bovenstaande script is meerlaags geobfusceerde JavaScript, die in een debugger werd geladen.

Obfuscatie is een methode die wordt gebruikt om code moeilijk te begrijpen te maken, meestal als middel om de functionaliteit te verbergen of gevoelige gegevens te beschermen. Voor analisten, ontwikkelaars of beveiligingsonderzoekers is het echter essentieel en legaal om de onderliggende functionaliteit te begrijpen.

We plaatsten een breakpoint bij:

Browser-debugger gepauzeerd op het eerste breakpoint in het versluierde script

En voerden het script uit en, na een paar decoderingen, kregen we twee tussentijdse gedecodeerde JavaScripts.

Het eerste niveau van obfuscatie is een functie die een argument neemt (gedecodeerd vlak voor het script) en dit transformeert met behulp van verschillende JavaScript-methoden, zoals stringmanipulatie en tekencodering.

Eerste laag van het versluierde Magecart-script na gedeeltelijke decodering

Een nadere blik zal:

Browser-debugger gepauzeerd op het tweede breakpoint in het versluierde script

De uiteindelijke gedecodeerde versie:

Dit fragment bevestigt dat het script zich richt op betaalkaartvelden, maar het is nog steeds gedeeltelijk geobfusceerd, met functies zoals _0xDCAD en _0xDBA3. Deze functies manipuleren de inhoud verder, en na meer lagen van decodering komt het uiteindelijke script tevoorschijn.

Definitief gedecodeerd JavaScript-fragment dat betaalkaartvelden in formulieren aanvalt

Laatste gedecodeerde laag van het versluierde script dat betaalkaartgegevens steelt

Belangrijke aspecten van het script

  1. Obfuscatie: Het script is sterk geobfusceerd, met functies zoals _0xDCAD, _0xDBB6, _0xDBC9 om meerdere niveaus van codering en obfuscatie te creëren. Dit is typisch voor malware of scripts die hun werkelijke functionaliteit proberen te verbergen.
  2. Invoerverzameling: Het script verzamelt informatie van HTML-invoerelementen die worden geïdentificeerd door CSS-selectors zoals #authnetcim-cc-number, #authnetcim-cc-exp-month, #authnetcim-cc-exp-year en #authnetcim-cc-cid. Dit zijn doorgaans velden waar gebruikers gevoelige betalingsinformatie zouden invoeren.
  3. Gegevensverwerking:- De verzamelde gegevens (creditcardnummer, vervaldatum, CVV, enz.) worden verzameld in het ffewq-object.
  • Het script versleutelt deze informatie vervolgens met behulp van AES-versleuteling (via functies zoals encrypt, decrypt, round, enz.).
  • Eenmaal versleuteld, worden de gegevens naar een server verzonden met behulp van jQuery.ajax()-aanroepen (te zien in de jQuery[_0xDB90[51]]-sectie).
  1. Versleuteling: Het script gebruikt AES (Advanced Encryption Standard) voor het beveiligen van de gegevens voordat deze worden verzonden. Dit omvat verschillende functies die AES-versleutelingslogica afhandelen (addRoundKey, mixColumns, encrypt, enz.), die standaardcomponenten zijn in een AES-versleutelingsproces.
  2. Periodieke uitvoering: Het script is ontworpen om met regelmatige tussenpozen te draaien (setInterval(_0xDBA3, 100);) om de verzamelde gegevens continu te controleren of te verzenden.

Houd er rekening mee dat het cside-dashboard dit proces voor u uitvoert, waarbij scripts worden gedeobfusceerd om ze gemakkelijker te lezen en te analyseren.

cside-dashboard met de gedeobfuscateerde inhoud van het jsDelivr-script

Wat er gebeurde bij deze aanval

Een van de mogelijke kwetsbaarheden die bij deze aanval kan zijn uitgebuit, staat bekend als CosmicSting. Dit is een bekende exploit in het Magento-platform die is gedocumenteerd en onderzocht. U kunt er meer over lezen in detail op SanSec Research over CosmicSting.

Client-side aanvallen zoals deze kunnen verwoestend zijn voor zowel bedrijven als klanten, wat het belang benadrukt van constante waakzaamheid en de implementatie van geavanceerde beveiligingsmaatregelen. Bedrijven moeten ervoor zorgen dat ze patches toepassen, controleren op verdachte activiteit en geavanceerde tools gebruiken zoals die worden aangeboden door cside om risico's te beperken.

Himanshu Anand
Software Engineer

I'm a software engineer and security analyst.

FAQ

Frequently Asked Questions

Aanvallers misbruikten een Magento 2.4-kwetsbaarheid — vermoedelijk CosmicSting — om een versluierd script in de pagina te injecteren. Het script werd gehost op het pas geregistreerde rextension.net en schraapte kaartdata uit het afrekenformulier.

Het aanvallersdomein was op het moment van de analyse pas zeven dagen oud, dus geen enkele threat feed had het al als kwaadaardig gemarkeerd. Client-side monitoring vangt het gedrag op — een script dat plots kaartvelden uitleest — in plaats van te leunen op een domeinreputatie die er nog niet is.

Monitor en Beveilig Je Third-Party Scripts

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

Start gratis, of probeer Business met een proefperiode van 14 dagen.

cside dashboard interface met script monitoring en beveiligingsanalytics
Related Articles
Boek een demo