Cosa sono gli attacchi XSS: una panoramica

Gli attacchi XSS, sigla che abbrevia l’espressione Cross-Site Scripting, sono minacce che nascono da una vulnerabilità presente su applicazioni web. Questo genere di attacchi può essere molto pericoloso, perché permette agli hacker di inserire script malevoli e dannosi per prendere possesso di dati sfruttando diverse parti dei siti come ad esempio i form.

Per fare qualche celebre esempio di attacco XSS basta ricordare quello che ha colpito il social network MySpace. Un utente infatti scoprì una falla ed inserì un codice payload chiamato Samy Worm sul suo profilo. Quando un altro utente lo visitava, il payload si copiava automaticamente anche nel profilo dell’ospite innescando una reazione a catena. Quando terminò l’attacco i danni furono minimi per via della innocuità di chi aveva inserito il codice, ma servì certamente da lezione.

Ciò che fece molti più danni invece fu l’attacco a British Airways, che provocò uno dei più grandi Data Breach della storia. Ebbene, quell’attacco venne veicolato grazie ad una vulnerabilità XSS che permise agli hacker di rubare i dati di milioni di passeggeri della compagnia. Nella rete delle vulnerabilità XSS sono finiti, negli anni, anche molti portali importanti come Facebook e Google, questo fa capire come sia importante vigilare sempre sulla salute del proprio sito.

Come ogni attacco informatico, i XSS non sono tutti uguali, ma ne esistono diversi tipi. Vediamoli tutti:

XSS Persistent

Questo tipo di vulnerabilità consente di caricare il payload sfruttando una vulnerabilità nel database, quindi lato server. Così facendo, quest’ultimo resta permanentemente nella pagina web e si esegue tutte le volte che questa viene caricata.

XSS Reflected

Questo XSS è il più semplice, in questo caso il payload viene caricato sul sito vulnerabile in modo istantaneo, ma non rimane salvato, cosa che invece accade nel caso del XSS Persistent. In questo modo, il percorso è lineare: l’hacker carica il codice malevolo, l’utente fa clic e gli vengono rubati i dati.

XSS DOM based

In questo caso l’attacco avviene in modo molto più strutturato e pericoloso. Il codice malevolo viene inserito lato javascript, pertanto attacca il livello DOM. Tale livello è quello che consente di prendere il controllo di vari script dinamici del sito come i form, gli URL ed i cookies. Se essi sono controllati, l’hacker riesce ad eseguire il payload e rubare i dati iniettando codice.

Come si vede in queste brevi descrizioni, questi attacchi sono potenzialmente molto pericolosi, ma non inevitabili. È possibile infatti prevenire tali problemi facendo attenzione ai link (e gli shortlink) ed al codice HTML del proprio sito. Per aggiungere uno strato superiore è consigliato anche utilizzare servizi come il WAF (Web Application Firewall), acquistabili da un provider, che evitano gli input di agenti esterni e fanno attenzione al traffico ed operazioni sospette sul proprio sito.

 

Fonti: 1, 2