Andrea Piani

Home / Servizi PrestaShop / Caso studio

Caso studio · PrestaShop 8 · forniture industriali B2B

Il sito PrestaShop era segnalato come malware. Il negozio era pulito. Il problema era la posta.

Un titolare mi chiama perché VirusTotal segnala il suo e-commerce come malevolo. Pensa a un virus nel negozio. Il negozio era sano: le cose pericolose stavano in un blog dimenticato da anni, in un file lasciato sul server e, soprattutto, nella casella di posta aziendale.

1 · Il punto di partenza

Cinque motori rossi su VirusTotal.

Il negozio è un PrestaShop 8.2.8 di un'azienda italiana che vende forniture industriali ad altre aziende: circa 2.000 prodotti, online dal 2014. Negli ultimi anni le vendite erano crollate.

Poi il titolare scopre che su VirusTotal il dominio risulta malevolo per cinque motori, che pochi giorni dopo diventano quattro. Mi chiama con un'idea precisa: il negozio ha un virus, va ripulito.

Qui serve una precisazione che vale per chiunque si trovi nella stessa situazione. VirusTotal non apre i file del tuo sito: raccoglie il giudizio di decine di antivirus e di liste di reputazione. Molte di queste liste giudicano il dominio intero, non la singola pagina. Se un angolo qualsiasi del dominio fa cose sospette, il marchio rosso finisce anche sul negozio.

Quindi la prima domanda non è "come pulisco il negozio", ma "che cosa, sotto questo dominio, viene segnalato".

2 · Prima di toccare qualsiasi cosa

Copie, log, misure. Poi le mani.

Quando un sito è sospetto, la tentazione è cancellare subito quello che sembra strano. È un errore: si perdono le prove e spesso anche l'unica traccia di come è entrato chi è entrato. Per questo l'ordine è sempre lo stesso.

  1. Copia completa di file e database, prima di qualsiasi modifica.
  2. Lettura dei log del server web e degli accessi al back office di PrestaShop, per capire chi ha fatto cosa e quando.
  3. Analisi dei file del negozio: circa 2.250 file PHP analizzati, con attenzione a moduli, override e cartelle dove di solito si nascondono le backdoor.
  4. Scansione antivirus dell'intero spazio sul server: oltre 570.000 file.
2.250file PHP del negozio analizzati: nessun codice malevolo
570.000+file sul server scansionati: nessun virus

Il negozio era sano. Che è una buona notizia, ma non spiega i motori rossi. Il problema era altrove.

3 · Cosa c'era davvero

Quattro problemi, nessuno dentro il negozio.

Un WordPress 4.1 del 2015

Su un sottodominio c'era ancora un vecchio blog, aperto anni prima e mai più aggiornato. Dentro, un iniettore di link spam che infilava collegamenti pubblicitari in tutte le pagine e una backdoor: un file manager con utenti nascosti, da cui chiunque poteva caricare e modificare file. Era lui a far finire il dominio nelle liste nere. L'ho salvato in copia per le indagini e tolto dal web.

Un file PHP che parlava troppo

Nella cartella del sito c'era un file del 2015 lasciato da uno sviluppatore. Chiunque conoscesse l'indirizzo poteva aprirlo e leggere nome, cognome ed email di tutti i clienti. Dentro, in chiaro, anche le credenziali di un database. Rimosso.

Due filtri nascosti sulla casella aziendale

La scoperta più grave. Sulla posta aziendale c'erano due filtri con nomi fatti apposta per non farsi notare: uno si chiamava ".", l'altro "..". Il primo mandava una copia di ogni mail in arrivo a un indirizzo esterno. Il secondo spostava nello Spam gli avvisi di mancata consegna, così il titolare non si accorgeva di nulla. Lo stesso filtro era su due caselle.

Una password per tutto, niente DMARC

Le caselle di posta, l'area clienti dell'hosting e il pannello del server avevano la stessa password. Sul dominio mancava il record DMARC, quindi chiunque poteva spedire mail a nome dell'azienda. E il sito girava su PHP 7.4, fuori supporto da anni.

Il rosso su VirusTotal era il sintomo. La posta girata fuori era il danno.

4 · Come funzionava il filtro sulla posta

Il titolare leggeva tutto. Qualcun altro anche.

Il secondo filtro, "..", prendeva gli avvisi di mancata consegna e li spostava nello Spam. Se l'indirizzo esterno rifiutava una copia, il titolare non lo veniva a sapere.

In 15 giorni le mail girate fuori erano circa 88, circa sei al giorno: ordini, conversazioni con i clienti, notifiche di pagamento, offerte ai fornitori. Per un'azienda che vende ad altre aziende è il cuore del lavoro: prezzi, clienti, condizioni, scadenze.

Come è venuto fuori

Non da una scansione. Avevo scritto al titolare da un mio indirizzo e mi è tornato indietro un avviso di mancata consegna che non aveva senso: la sua casella funzionava. Seguendo quel rimbalzo sono arrivato ai filtri.

È il motivo per cui in un'analisi di sicurezza guardo sempre anche la posta, non solo il sito. Un antivirus sui file del server non avrebbe mai trovato due regole dentro una webmail.

Chi abbia messo quei filtri, e quando, è oggetto di un'indagine in corso. Qui non se ne parla.

5 · Cosa ho fatto

Chiudere, conservare, mettere in sicurezza.

Via le cose pericolose

Blog e file del 2015 salvati in copia e tolti dal web. Filtri sulla posta rimossi da entrambe le caselle.

Le prove restano

Richiesta scritta all'hosting di conservare i log con date e indirizzi IP: senza quelli una denuncia ha poco in mano.

Password e DMARC

Cambiate tutte le password, una diversa per ogni accesso. Record DMARC pubblicato sul dominio, perché i server di posta possano riconoscere le mail false spedite a suo nome.

Fuori dalle liste nere

Richieste di revisione a ogni lista che segnalava il dominio, fatte solo dopo aver tolto la causa.

Sul piano legale non decido io, ma ho detto al titolare con chiarezza cosa prevede la legge: una mail con i dati dei clienti girata a terzi è una violazione di dati personali. Va valutata la notifica al Garante Privacy entro 72 ore dalla scoperta, come chiede l'articolo 33 del GDPR, e la denuncia alla Polizia Postale, con i log conservati come base. Per entrambe gli ho consigliato di farsi seguire da un legale.

6 · Cosa insegna a chi ha un PrestaShop

Sei controlli che puoi fare oggi.

I problemi veri, quasi sempre, non stanno nel negozio ma nelle cose dimenticate intorno al negozio. Alcune le puoi controllare da solo in mezz'ora.

  • I sottodomini

    Fatti dare l'elenco dei sottodomini attivi. Ogni blog, vecchia vetrina o copia di prova che nessuno aggiorna è una porta aperta sul tuo dominio.

  • I file nella cartella del sito

    File con nomi come test, prova, export, backup, phpinfo lasciati negli anni da chi ha lavorato sul sito. Vanno cancellati, e vanno cercati.

  • Filtri e inoltri della posta

    Apri la webmail di ogni casella e guarda regole, filtri e inoltri automatici. Anche quelli con un nome fatto di un solo punto.

  • Il record DMARC

    Senza DMARC chiunque può spedire mail che sembrano tue: ai clienti, ai fornitori, alla banca. Si pubblica in pochi minuti nella zona DNS.

  • Una password per accesso

    Posta, hosting, pannello del server e back office con password diverse. Se ne esce una, non devono uscire tutte.

  • Versione di PHP e di PrestaShop

    PHP 7.4 e PrestaShop 1.6 e 1.7 non ricevono più correzioni di sicurezza. Se sei lì, è il momento di pianificare l'aggiornamento.

7 · Domande frequenti

Sito segnalato, cosa fare adesso.

Se VirusTotal segnala il mio sito, vuol dire che è hackerato?
Non necessariamente. VirusTotal raccoglie il giudizio di decine di motori e liste di reputazione, e molti segnalano il dominio intero, non il singolo negozio. Basta un sottodominio dimenticato, un vecchio blog o un file infetto perché tutto il dominio finisca in lista nera. Prima di toccare il negozio va capito che cosa viene segnalato e da chi.
Come si toglie un sito dalle liste nere?
Prima si elimina la causa, poi si chiede la revisione a ogni lista che segnala il dominio. Chiederla prima è inutile: la segnalazione torna. I tempi dipendono dalle singole liste, di solito da qualche giorno a qualche settimana.
Come controllo se la mia posta aziendale viene inoltrata a qualcuno?
Entra nella webmail di ogni casella e apri inoltri, filtri e regole. Guarda anche le regole con nomi strani o quasi vuoti, come un punto. Controlla poi se nello Spam finiscono avvisi di mancata consegna che non ti aspetti. Se non hai accesso alla webmail, chiedi l'elenco dei filtri a chi gestisce la posta.
Cosa devo fare se scopro che i dati dei clienti sono usciti?
Conserva le prove senza cancellare nulla, chiedi all'hosting di conservare i log con date e indirizzi, valuta con un legale la notifica al Garante Privacy entro 72 ore dalla scoperta (articolo 33 del GDPR) e la denuncia alla Polizia Postale. Nel frattempo si chiude la falla e si cambiano tutte le password.
Dopo una bonifica conviene aggiornare PrestaShop?
Dipende da cosa è emerso. In questo caso il negozio era già su PrestaShop 8 e pulito, ma girava su PHP 7.4, fuori supporto, che va portato a una versione attuale. Su un PrestaShop 1.6 o 1.7 la migrazione a 8 o 9 è quasi sempre la vera chiusura del problema.
Quanto dura un intervento come questo?
Questo caso è durato pochi giorni, dalla prima telefonata alla posta messa in sicurezza. La parte lunga, quando c'è, è l'attesa delle revisioni delle liste nere, non il lavoro sul sito.
Hai un PrestaShop segnalato, o un dubbio sulla posta?

Scrivimi l'indirizzo del sito. Guardo io da dove viene il rosso.

Se è urgente

WhatsApp.

Sito segnalato, avviso dell'hosting, mail strane che tornano indietro: scrivimi cosa vedi e l'indirizzo del sito. Ti rispondo io, non un modulo automatico.

Scrivimi su WhatsApp
Se vuoi prima un parere

Audit gratuito.

Mandami indirizzo e versione del negozio: entro 48 ore ti scrivo le cose tecniche da sistemare, sicurezza compresa, in ordine di priorità.

Chiedi l'audit