Cosa significa il sito web è compromesso?

Malware

Con il termine sito web compromesso si intende un sito web al quale

  • è stato eseguito almeno un accesso per mezzo di una modalità non desiderata,
  • nel quale sono state eseguite operazioni non previste dal disegno funzionale dello stesso
  • sono stati modificati dei contenuti senza autorizzazione
  • il codice del sito è stato modificato (e.g. modificandone il comportamento)

Questi eventi derivano tipicamente dallo sfruttamento di bug all'interno del software di gestione per eseguire operazioni non autorizzate, da una configurazione errata del software (e.g. troppo permissiva) oppure dall'uso di credenziali ottenute tramite altri metodi non leciti.

Cosa si intende con contenuti compromessi di un sito web?

Con il termine contenuti compromessi fa riferimento a tutti quei contenuti (codice, testo, immagini, o altro) che siano stati modificati in seguito ad un'azione eseguita da personale non autorizzato.

I contenuti compromessi possono essere a livello di database o di filesystem.

I primi (contenuti compromessi a livello di database) possono essere sia contenuti passivi che attivi, ovvero semplici modifiche del dato oppure immissione di codice che potrebbe essere eseguito nella pagina del visitatore ed il vettore d'attacco è tipicamente un difetto nel software di gestione oppure un malware, installato nel filesystem, che si interfaccia con il database.

I secondi (contenuti compromessi a livello di filesystem) possono essere contenuti alterati, redirezioni nascoste verso altri siti web, modifiche per trarre in inganno i motori di ricerca oppure malware a tutti gli effetti, sia in forma di eseguibili che di script Javascript (ad esempio), in grado di forzare un comportamento diverso delle pagine, tracciare i dati sensibili degli utenti o sottrarre informazioni.

Quali sono le conseguenze?

La semplice modifica di contenuti visualizzati (senza modifica delle logiche del di funzionamento del sito) tipicamente provoca un danno di immagine al sito web, ma potrebbe essere sfruttata anche per indurre il visitatore a comunicare dati non necessari, per indirizzarlo verso altri siti (eventualmente ancora più compromessi) o anche solo per modificare il modo in cui i motori di ricerca vedono il sito web (e.g. link nascosti, cloacking, etc...). In generale, anche una semplice modifica del contenuto può avere impatti rilevanti, tra cui il furto di dati sensibili o anche semplicemente perdita di ranking nei motori di ricerca.

La modifica del comportamento del sito, se non corretta tempestivamente, genera invece quasi sempre danni significativi, poiché tramite i malware caricati gli hacker hanno accesso a numerose possibilità di sfruttamento del server per i loro scopi, tra cui sottrarre dati, diffondere virus o utilizzare le risorse del webserver per altri scopi (per approfondire il tema dei malware, per sapere cosa sono e cosa possono comportare, maggiori dettagli sono disponibile nell'articolo Malware e siti web).

Come evitare la compromissione di un website?

La risposta a questa domanda non è semplice, poiché dipende in gran parte dal software utilizzato nel sito web, ma in linea di massima le indicazioni base sono:

Mantenere aggiornato il software del sito

Benché possa sembrare un'indicazione scontata, la maggior parte dei siti web vengono aggiornati molto di rado e benché non ci sia garanzia del fatto che ogni nuovo aggiornamento risolva completamente i problemi di sicurezza esistenti (o addirittura ne introduca di nuovi) è comunque meglio avere le ultime versioni del software utilizzato (per quanto è consentito dai requisiti di compatibilità tra i diversi componenti).

Verificare regolarmente la configurazione

Riguardo al tema della configurazione ci sarebbero numerosi elementi da tenere in considerazione a partire dalla configurazione del webserver, dei certificati SSL/TLS, degli header (CORS, CSP, etc...), fino alla configurazione del software.

In primo luogo, la configurazione di qualunque software deve essere eseguita da personale esperto, che provveda alla limitazione dei permessi alle sole operazioni strettamente necessarie e renda il sistema il più robusto possibile, ma tali configurazioni devono essere riverificate periodicamente (ad esempio, riguardo agli header di sicurezza capita che alcuni vengano deprecati, ed altri nuovi vengano aggiunti man mano che pratiche sempre più sicure siano implementate nei browser di ultima generazione).

Monitoraggio continuo del sito web

Anche prendendo tutte le precauzioni possibili, non è mai possibile certificare un sito web sicuro al 100%. Questo perché, quand'anche non vi fossero falle di sicurezza (e anche questo non è certificabile, al più è possibile dire che "non ci sono falle di sicurezza note"), un hacker ha sempre la possibilità di procurarsi in altri modi le credenziali per collegarsi (e.g.: ingegneria sociale, ovvero raggirando un utente che detiene lecitamente tali credenziali di accesso) ed in seguito agire dall'interno.

Il monitoraggio, se svolto manualmente, è un'attività molto onerosa, ma i costi possono essere abbattuti in modo estremamente significativo con un software come WebKeeper (Piani di licenza e prezzi).

Note:

  • Esistono anche plugin di protezione installabili all'interno del sito web, ma la protezione è minimale, poiché in caso di compromissione, se l'hacker dovesse ottenere l'accesso al filesystem, la prima attività sarebbe la "sterilizzazione" dei meccanismi di sicurezza locali e dei log, rendendo inutili tali misure di protezione. Un sistema di monitoraggio remoto come WebKeeper è invece molto più difficile da aggirare poiché nella maggior parte dei casi invierebbe comunque almeno un messaggio di notifica ai manutentori del sito.
  • Un monitoraggio continuo del sito, con il tracciamento delle modifiche, incide anche sulla compliacy al GDPR, poiché come spiegato nell'articolo WebKeeper: un aiuto per i requisiti GDPR, riduce i tempi di ripristino ed implementa una verifica continua della tenuta delle misure di sicurezza messe in atto.