Aggiornato recentemente a Ottobre 12th, 2024 alle 03:17 pm

Allarme PrestaShop: Rischio Furto Dati delle Carte di Credito per Migliaia di Ecommerce
Indice dei contenuti
- Allarme PrestaShop: Rischio Furto Dati delle Carte di Credito per Migliaia di Ecommerce
- Allarme PrestaShop: Rischio Furto Dati delle Carte di Credito per Migliaia di Ecommerce
- Che cos’è un web socket?
- L’investigazione
- 1. index.php
- 2. config.inc.php
- 3. autoload.php
- Analisi del malware
- Gestite un sito di e-commerce? Noi possiamo aiutarvi!
Allarme PrestaShop: Rischio Furto Dati delle Carte di Credito per Migliaia di Ecommerce
Durante una recente indagine del 14 Agosto 2024 Sucuri ha scoperto un altro skimmer di carte di credito che sfruttava una connessione web socket per rubare i dati delle carte di credito da un sito web PrestaShop infetto.
Sebbene PrestaShop non sia la soluzione di e-commerce più diffusa per i negozi online, è comunque nella top 10 delle piattaforme di e-commerce più comuni in uso sul web e si attesta poco sopra l’1% di tutti i siti web (oltre 60.000 in totale).
Gli aggressori non fanno distinzione tra le piattaforme che attaccano. Se un sito web viene identificato come una potenziale fonte per rubare e vendere i dati delle carte di credito sul mercato nero, si può essere certi che sarà un obiettivo.
In questo caso, l’amministrato del sito ha riscontrato un avviso antivirus quando accedeva al suo sito web (un sintomo comune di Magecart / malware per il furto di carte di credito). In particolare, il dominio dannoso qui sotto stava cercando di caricarsi:

Non ci è voluto molto per scoprire quale fosse la causa del problema ispezionando il codice sorgente, collocato in fondo alla pagina:

Ma la vera domanda era: Come è stato inserito? La ricerca di stringhe come WebSocket nei file e nel database non ha portato a nulla, quindi è stato un po’ più difficile da individuare del solito. In questo post esamineremo i web socket, il malware skimmer e il modo in cui siamo riusciti a individuare l’origine di questa infezione del ruba carte.
Che cos’è un web socket?
Prima di addentrarci nell’indagine, esaminiamo rapidamente i web socket, cosa sono e perché gli aggressori li utilizzano negli attacchi di carding.
Essenzialmente, un web socket è una connessione diretta tra un client e un server, con un flusso di traffico continuo in entrambe le direzioni. A differenza di una connessione http/https di base, in cui c’è una richiesta da parte del client, seguita da una risposta da parte del server, il traffico del web socket è continuo e va in entrambe le direzioni contemporaneamente:

Questo è utile per servizi come la finanza e i giochi online che richiedono molte conversazioni in tempo reale tra client e server, dove una vecchia e goffa connessione HTTP non sarebbe sufficiente.
Gli aggressori hanno adottato l’uso dei web socket anche a scopo di offuscamento. L’analisi del traffico dei socket Web è più impegnativa del normale traffico HTTP/HTTPS e non tutti gli strumenti di analisi lo supportano. Per analizzare questo tipo di traffico sono necessari strumenti e know-how specializzati. Sono anche adatti allo scopo di rubare i dati delle carte di credito da pagine di pagamento infette, come vedremo qui.
L’investigazione
Come ho detto in precedenza, la ricerca di stringhe simili a quelle che abbiamo visto nel view-source non ha portato a nulla. Molti skimmer di carte di credito possono essere facilmente trovati in un database infetto semplicemente cercando cose come <script o altre porzioni dell’iniezione di testo semplice.
Anche le stringhe codificate in base64 sono spesso utilizzate dagli aggressori, ma anche la ricerca di PHNjcmlw (<scrip in formato codificato in base64) ci ha lasciato a bocca asciutta. Facendo un ulteriore passo avanti, pensando che forse il payload fosse stato invertito usando strrev, anche la ricerca di wlmcjNHP (la stessa stringa ma al contrario) non ha portato a nulla.
Quindi, siamo tornati alle basi. Il malware per lo skimming delle carte di credito non può essere iniettato in qualsiasi punto di un sito web in file casuali, ma deve essere caricato nella pagina di pagamento. Per questo motivo, gli skimmer vengono spesso iniettati nei file del CMS principale, nei file del tema, in determinate aree del database o, nel caso di siti WordPress WooCommerce, in plugin dannosi.
In questo caso, il controllo dei file del tema e delle estensioni ha prodotto una webshell:

La rimozione di questo elemento dovrebbe aiutare a prevenire le reinfezioni, quindi non siamo del tutto a mani vuote, ma non è la scrematura che stavamo cercando.
Rivediamo quindi brevemente le fasi di base del funzionamento di un sito web PrestaShop e partiamo dall’inizio, che ne dite?
1. index.php
Il primo file che viene caricato in qualsiasi sito web basato su PHP è il file index.php primario nella docroot:

Le diverse piattaforme CMS hanno file di indice diversi, adatti a caricare il resto del nucleo della piattaforma CMS, e di solito sono piuttosto semplici. Nel caso di PrestaShop, il file è molto semplice e carica il file config.inc.php dalla directory corrispondente:

2. config.inc.php
Poi, abbiamo il file config.inc.php che si trova nella sottodirectory config.

Questo file è molto più complicato del precedente e include regole di configurazione come la dimensione massima consentita dei file che possono essere caricati sul sito web. Inoltre, include/richiede altri file dall’ambiente:

Perché non dare anche un’occhiata al file autoload.php?
3. autoload.php
In fondo a questo file c’era il nostro skimmer:


Si noti il numero di versione di Prestashop. Secondo l’archivio dei rilasci, la versione 1.7.4.2 è stata rilasciata nel 2018. Una follia comune dei proprietari di siti web è quella di rimanere “bloccati” nelle vecchie versioni della loro piattaforma CMS, spesso a causa di una base di codice altamente personalizzata che potrebbe non essere compatibile con le nuove versioni del loro CMS o anche solo di PHP. Non sorprende che molti di questi siti web finiscano per avere problemi di sicurezza: Uno dei compiti più importanti dell’amministratore di un sito web è quello di mantenere aggiornata la base di codice. Esaminando l’elenco dei CVE per Prestashop si scopre una storia ricca di vulnerabilità di sicurezza critiche, quindi prendetela come una lezione per mantenere il vostro sito web aggiornato!
Analisi del malware
Ora la parte più divertente: Smontiamo questo malware e vediamo come funziona! Iniziamo rimuovendo la codifica esadecimale per ottenere un campione più leggibile da analizzare qui:

Qui possiamo vedere il codice JavaScript che viene iniettato ed eseguito nel browser della vittima durante il processo di acquisto.
Possiamo vedere che utilizza fromCharCode per offuscare questa stringa:

Si tratta di una tecnica di offuscamento molto diffusa e particolarmente apprezzata da aggressori come Balada.
Tuttavia, l’utilizzo di un normale deobfuscater per questa tecnica produce solo spazzatura. Qual è quindi il trucco?
Se osservi attentamente la fine della stringa nella cattura dello schermo, vedrete il numero 42. Si tratta in realtà di un subdolo valore XOR. Lo XOR è una tecnica di offuscamento semplice e leggera che essenzialmente sposta i valori di una stringa. Quando applichiamo il valore XOR di 42 alla stringa di cui sopra, otteniamo quanto segue:

Quando lo passiamo attraverso il fidato deobfuscator fromCharCode dello zio Jim, otteniamo il nostro payload del web socket:

Gestite un sito di e-commerce? Noi possiamo aiutarvi!
In qualità di proprietari di un sito web di e-commerce, è fondamentale garantire solide misure di sicurezza. Non volete assolutamente che una telefonata di Visa o Mastercard identifichi il vostro sito come un punto di ritrovo per carte rubate. Ecco alcuni passi pratici per proteggere il vostro sito di e-commerce dagli skimmer delle carte di credito:
- Aggiornamenti regolari: Il software obsoleto è un obiettivo primario per gli aggressori che sfruttano le vulnerabilità dei vecchi plugin e temi. Evitate questo problema aggiornando costantemente il vostro sito e applicando le ultime patch di sicurezza. In alternativa, installate un Web Application Firewall (WAF) per le patch virtuali.
- Gestione degli account di amministrazione: Le password di amministrazione deboli sono una porta d’accesso per gli aggressori. Esaminate regolarmente tutti gli account di amministrazione per garantirne la validità e aggiornate frequentemente le password. Assicuratevi di utilizzare password forti e uniche per rafforzare la sicurezza.
- Monitoraggio dell’integrità dei file: Implementate il monitoraggio dell’integrità dei file per rilevare eventuali modifiche non autorizzate ai file del vostro sito web. Questo serve come sistema di allarme precoce per rispondere rapidamente alle potenziali minacce.
- Web Application Firewall: Un firewall per siti web può bloccare efficacemente il traffico dannoso e impedire che i tentativi di hacking raggiungano il vostro server.
Fonte: Allarme PrestaShop

Andrea Barbieri è consulente SEO, svilppattore di siti web e specialista in web marketing, fondatore di BTF Traduzioni SEO Sviluppo Web. Aiuta aziende e professionisti a ottenere visibilità online con siti ottimizzati, contenuti efficaci e strategie SEO mirate. Visita la mia pagina.


