🔎 Informatica forense

Analisi forense di un sito web compromesso: da dove partire

Come analizzare un sito web compromesso, per esempio WordPress: copia di file, database e log, file modificati, account sospetti e punto di ingresso.

Un sito che reindirizza i visitatori verso pagine sconosciute, che mostra pubblicità mai inserita, che viene segnalato dai browser come pericoloso o che invia spam: sono segni tipici di una compromissione. La tentazione è ripristinare un backup e dimenticare. Ma se non si capisce come l'aggressore è entrato, nella maggior parte dei casi tornerà, magari dopo pochi giorni.

Prima di tutto: conservare lo stato attuale

Prima di qualsiasi pulizia serve una fotografia completa del sito com'è adesso:

  1. copia di tutti i file del sito, compresi quelli nascosti e le cartelle di caricamento, mantenendo date e permessi;
  2. esportazione del database;
  3. copia dei log del server web, del pannello di hosting, dell'FTP o SFTP e, se disponibili, del firewall applicativo;
  4. elenco degli account con accesso al pannello, all'FTP, al database e all'area amministrativa del sito;
  5. schermate e salvataggi delle pagine che mostrano il comportamento anomalo;
  6. hash degli archivi prodotti.

Molti hosting conservano i log di accesso solo per pochi giorni. Scaricarli subito è spesso la cosa più importante da fare.

Dove cercare le tracce

File modificati di recente

Ordinare i file per data di modifica è il punto di partenza più intuitivo. Va però ricordato che le date si possono falsificare, e che un aggressore esperto può impostare su un file malevolo la stessa data dei file legittimi. Più affidabile è il confronto con una versione pulita.

Confronto con i file originali

Per piattaforme diffuse come WordPress, il nucleo del sistema, i temi e i plugin ufficiali sono disponibili nelle loro versioni originali. Confrontando gli hash di ogni file con quelli della versione ufficiale corrispondente, si individuano subito i file aggiunti o alterati. Resta da esaminare a mano ciò che non ha un originale di riferimento, come i temi personalizzati e i file caricati.

File sospetti

Segnali ricorrenti:

  • file PHP in cartelle destinate solo a immagini o documenti caricati;
  • file con nomi che imitano quelli di sistema, con una lettera diversa;
  • codice offuscato, con lunghe stringhe codificate e funzioni che eseguono testo come codice;
  • file molto piccoli che ricevono comandi dall'esterno, le cosiddette web shell.

Il database

L'aggressore può nascondere codice anche nel database: script inseriti negli articoli, opzioni modificate per caricare risorse esterne, nuovi utenti amministratori. Vanno controllati gli account amministrativi, con data di registrazione, e le opzioni che contengono indirizzi esterni.

I log di accesso

I log del server web mostrano le richieste ricevute. Individuato un file malevolo, si cerca nei log chi lo ha richiamato e quando: spesso la prima richiesta coincide con il momento della compromissione, e le richieste precedenti dallo stesso indirizzo mostrano come l'aggressore ci è arrivato.

Indizio nei log Possibile significato
Molte richieste alla pagina di login Tentativi di indovinare le password
Richieste a un plugin specifico con parametri insoliti Sfruttamento di una vulnerabilità nota
Caricamento di file seguito da richieste a quel file Installazione di una web shell
Accesso FTP riuscito da un paese insolito Credenziali sottratte

Le vie d'ingresso più comuni

  • plugin o temi non aggiornati con vulnerabilità note;
  • componenti scaricati da fonti non ufficiali, già contenenti codice malevolo;
  • password deboli o riutilizzate per l'area amministrativa, l'FTP o il pannello di hosting;
  • computer dell'amministratore compromesso, da cui sono state sottratte le credenziali;
  • altri siti sullo stesso spazio di hosting, da cui l'infezione si è propagata.

Quest'ultimo caso è frequente negli hosting condivisi: si pulisce un sito, ma l'infezione ritorna perché un secondo sito, dimenticato nella stessa cartella, è ancora compromesso.

Dopo l'analisi: ripristino e prevenzione

Individuato il punto d'ingresso, si può procedere con il ripristino:

  1. ricostruire il sito da componenti ufficiali e da un backup verificato precedente alla compromissione;
  2. cambiare tutte le password: area amministrativa, database, FTP, pannello, posta;
  3. aggiornare tutto e rimuovere plugin e temi inutilizzati;
  4. verificare i computer di chi amministra il sito;
  5. attivare la verifica in due passaggi e un sistema di monitoraggio dei file.

Nel mio lavoro di informatica forense noto che il passaggio più trascurato è il quarto: se le credenziali sono state rubate da un computer infetto, nessuna pulizia del sito sarà definitiva.

In sintesi

  • Prima di pulire, copia file, database e log, che spesso hanno vita breve.
  • Il confronto con le versioni ufficiali individua rapidamente i file alterati.
  • Web shell, codice offuscato e nuovi amministratori sono segnali ricorrenti.
  • I log permettono di risalire al momento e al modo della compromissione.
  • Senza chiudere il punto d'ingresso, l'infezione tende a ripresentarsi.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica e in psicologia, unisce l'analisi tecnica alla comprensione del fattore umano.

Leggi anche