Cos'è il cross-site scripting (o XSS)?

Immagina: all'improvviso non puoi più accedere al tuo negozio online preferito. Inoltre, qualcuno fa degli strani commenti a nome tuo ed effettua ordini. Ricordi quella volta in cui, navigando su un sito web, hai cliccato su un link contenuto in un commento per vedere quella giacca che qualcuno aveva consigliato? Sembra proprio che tu sia vittima del cross-site scripting (o XSS). Scopri qui sotto perché è pericoloso ed è così facile cascarci.

Cos'è il cross-site scripting (o XSS)

L'attacco di cross-site scripting (o XSS) si verifica quando un hacker inserisce un codice dannoso in siti web e app normalmente considerati affidabili. Sfrutta i punti deboli dell'HTML, di JavaScript o di qualsiasi altro linguaggio di programmazione supportato dai browser. Tale codice viene eseguito lato client, anziché lato server. Pertanto non danneggia direttamente il sito web, bensì i suoi utenti. Questi infatti, a seconda del tipo di XSS, possono attivare il codice dannoso semplicemente cliccando su un link o visitando un sito web compromesso.

Così facendo, gli hacker possono ottenere una grande quantità di dati sensibili, diffondere trojan, reindirizzare gli utenti su siti web pericolosi, rubare credenziali, ecc.

Tipi di cross-site scripting

XSS riflesso

L'XSS riflesso si verifica quando un utente clicca su un link a un sito vulnerabile che riflette lo script sul suo browser, attivandolo. I criminali informatici possono così dirottare i cookie di sessione dell'utente e rubarne i dati relativi alle autorizzazioni.

Un sito web che non ripulisca correttamente le richieste in entrata, può consentire loro di inserire script dannosi all'interno di link. È molto probabile che i proprietari del sito in questione non siano nemmeno a conoscenza del fatto che qualcuno se ne serva a tale scopo.

Ad esempio, immaginiamo che Maria possieda un e-commerce e che Giulia lo utilizzi regolarmente. Giulia accede normalmente al sito di Maria inserendo le sue credenziali, che vengono memorizzate tramite un cookie di autorizzazione. A questo punto entra in gioco Tommaso, il cattivo della storia, che scopre che il sito di Maria ha una vulnerabilità. Perciò, crea un URL dannoso e lo invia a Giulia tramite un'e-mail contenente un'offerta molto interessante. Giulia clicca sul link ed esegue lo script, che infetta il suo browser e invia tutti i dati di accesso associati al cookie del sito web a Tommaso. Quest'ultimo può così accedere all'e-commerce di Maria con un altro nome, rubare le informazioni di fatturazione e cambiare la password.

XSS archiviato

Con l'XSS archiviato, gli hacker non solo possono inserire script dannosi in un link, ma possono anche installarlo sul server di un sito web. In genere, collocano lo script in una sezione del sito in cui può rimanere nascosto per un periodo di tempo indefinito (ad esempio, in quella dedicata ai commenti). Così facendo, ogni volta che gli utenti accedono a questa sezione, gli hacker possono ottenere le relative credenziali. Per intenderci: l'XSS riflesso rappresenta la canna da pesca, mentre quello archiviato è più simile a una rete con la capacità di colpire un numero molto maggiore di utenti.

Ad esempio, mettiamo che Alice abbia individuato una vulnerabilità nel sito web di Giovanni e abbia quindi inserito un tag HTML dannoso nella sezione relativa ai commenti. Lo lascia lì, senza fare altro. Quando i visitatori aprono la sezione dedicata ai commenti, il tag attiva lo script della hacker ospitato su un altro sito web inviandole tutti i dati dei loro cookie relativi alle autorizzazioni. A questo punto, Alice può accedere al sito web spacciandosi per le sue vittime.

XSS basato su DOM

Quando si carica un sito web, il browser crea un DOM (modello a oggetti del documento) della pagina che funge da mediatore tra l'HTML e JavaScript, rendendo la pagina dinamica e facile da modificare. Nel caso dell'XSS basato su DOM, il codice JavaScript compromesso scrive i dati nel DOM. Proprio come nell'XSS riflesso, un utente lo avvia cliccando su un link compromesso. In questo caso però gli hacker nascondono il codice dannoso molto più in profondità, in modo che non possa essere identificato semplicemente esaminando l'URL. Per farlo, infatti, occorre controllare il codice del sito web.

Self-XSS

L'attacco self-XSS invece non si basa sulla vulnerabilità di un sito web, bensì induce gli utenti a inserire uno script dannoso nel proprio browser. Di solito, per farlo, i criminali informatici impiegano tattiche ingegneria sociale. Ad esempio, possono convincere l'utente a inserire nel browser un codice con la promessa che questo gli consentirà di accedere a un altro account con maggiori vantaggi. Tuttavia, tutto ciò che farà sarà permettere all'hacker di impossessarsi dell'account della vittima.

Prevenzione del cross-site scripting

Gli attacchi XSS sono nascosti a livello di codice. Pertanto, possono passare inosservati per molto tempo. Gli stessi proprietari di siti web vulnerabili spesso li identificano troppo tardi. Tuttavia, come sempre, è possibile adottare alcune misure che consentono di evitarli:

  • Usa il software di sicurezza più aggiornato e affidabile, in grado di bloccare automaticamente l'accesso ai siti web pericolosi;

  • Aggiorna regolarmente il browser in modo da avere sempre la versione più recente. Assicurati, inoltre, che abbia funzionalità di sicurezza anti-XSS;

  • Non aprire link sospetti, anche se a prima vista sembrano legittimi. Esamina l'URL in modo approfondito e verifica che non vi sia nulla di insolito;

  • Se noti qualcosa di sospetto, contatta i responsabili del sito web (ad esempio, se non riesci ad accedere con le tue credenziali abituali, se nella lista degli ordini ce ne sono alcuni che non ricordi di aver effettuato, ecc.).

Iscriviti alla newsletter di NordPass

Ricevi le ultime notizie e i suggerimenti di NordPass direttamente nella tua casella di posta.