Dgroove

Cosa è un XSS e come prevenirlo?

cosa è un XSS

Secondo alcune statistiche elaborate da OWASP, le vulnerabilità di tipo XSS (“Cross-Site Scripting”) sarebbero presenti in circa il 50% di tutti i software attualmente creati e affliggono in particolare le funzionalità di ricerca, inserimento di dati all’interno di campi specifici e reindirizzamenti a pagine esterne, facilmente manipolabili da attaccanti in grado di sfruttare al meglio queste funzionalità.

Nel corso di questo articolo andremo dunque a descrivere cosa sia una vulnerabilità di tipo XSS, quale è il suo impatto e come prevenire l’insorgere di problematiche relative a questa classe di attacco particolarmente diffusa.

Indice degli argomenti

  1. Quali sono le differenti tipologie di XSS?
  2. Che impatto può generare un XSS?
  3. Come prevenire le vulnerabilità XSS?

L’XSS è una classe di vulnerabilità di tipo client-side identificata da OWASP Top 10 con l’acronimo “A7” che, sfruttando lo scarso controllo dell’input fornito dall’utente, permette l’iniezione di codice HTML e JavaScript all’interno di una pagina web.

Con il termine “client-side” si identifica una problematica relativa al dispositivo adottato (client) dalla vittima e perciò non implica necessariamente una modifica del contenuto presente nel server, ma piuttosto di quanto è servito da quest’ultimo al client.

Quali sono le differenti tipologie di XSS?

Secondo la classificazione operata da OWASP nel 2017, le vulnerabilità di tipo XSS sono divise in 3 categorie in base alla causa da cui scaturisce la problematica e al tipo di iniezione che potrebbe essere permanente e potenzialmente estesa a tutti gli utenti oppure riflessa per la sola vittima che accede alla risorsa:

Che impatto può generare un XSS?

L’iniezione di codice HTML/JavaScript è particolarmente diffusa soprattutto in applicativi web e in tal caso gli impatti possono essere differenti:

In caso l’iniezione di codice avvenga invece in un software desktop, questo potrebbe comportare addirittura il controllo della macchina della vittima.

Come prevenire le vulnerabilità XSS?

Secondo la guida “OWASP Cross Site Scripting Prevention Cheat Sheet”, le problematiche di tipo XSS possono essere eliminate controllando estensivamente tutti gli input passati dall’utente tramite l’ausilio di librerie apposite.

Tra le guidelines principali troviamo:

Per diminuire l’impatto degli XSS è invece necessario:

Conclusioni

Le vulnerabilità XSS sono sempre più diffuse e, malgrado i maggiori browser stiano cercando di introdurre all’interno dei propri software alcune mitigazioni per abbassare l’impatto di tali attacchi, gli hacker continuano a trovare nuove strade per sfruttare queste falle difficilmente contrastabili per via della variabilità dei vettori d’attacco. Controllare gli input e adottare librerie appropriate per validare l’input e bonificare l’output sono i migliori consigli per evitare che il vostro software risenta di questa problematica.

Exit mobile version