• If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

Vulnerabilità di tipo Cross Site Scripting

Page history last edited by Roberto Marmo 14 years ago

L’acronimo XSS (Cross Site Scripting) identifica una vulnerabilità di sicurezza che interessa in modo specifico i siti  di tipo dinamico afferenti al Web di seconda generazione (Web 2.0).

 

Gli attacchi Cross-site scripting sono costruiti usando software scritto con linguaggi di scripting, principalmente JavaScript, che partono dal sito web e attaccano il client dell'utente. Tale software è eseguito sulla macchina dell'utente vittima dell'attacco e potrebbe aprire le porte ad altri attacchi.

Il software può essere depositato anche in un sito web non potenzialmente pericoloso ma vulnerabile alla manipolazione della struttura del sito da parte di persone non autorizzate.

 

Come in molti altri casi, gli exploit XSS basano il loro funzionamento sulle possibilità offerte dal codice con il quale sono state realizzate le applicazioni pensate per il Web: cioè su quelle parti di codice sviluppate senza tenere conto di alcune raccomandazioni basilari al fine dell’ottenimento di un sufficiente livello di sicurezza: nella fattispecie si tratta di una insufficiente attenzione nelle procedure deputate al controllo delle operazioni di tipo POST e GET, durante l’impiego del protocollo HTTP (Hypertext Transfer Protocol). Pertanto questa vulnerabilità è creata dalla mancanza di codifica (encoding) delle entità HTML e dalle elaborazioni esegite senza fare controlli preventivi su cosa c'è scritto.

 

Gli exploit basati sul “Cross Site Scripting” permettono agli aggressori di alterare (in modo permanente o momentaneo) i contenuti della pagina Web da loro visualizzata, operazione che si presta a numerose e pericolose applicazioni come, ad esempio, la realizzazione di una pagina pensata “ad hoc” per carpire informazioni sensibili agli utenti che, successivamente, accederanno a quell’area del sito, realizzando “de facto” un vero e proprio Phishing (tecniche di inganno degli utenti che inducono a comunicare dati riservati) basato sulle risorse e la credibilità dell’inconsapevole (e legittimo) fornitore del servizio preso di mira.

 

Come prima anticipato, gli exploit basati su XSS possono essere fondamentalmente di due tipi, permanenti e non permanenti: nel primo caso le pagine prese di mira vengono permanentemente modificate dall’aggressore, mentre nel secondo le alterazioni sono soltanto momentanee e interessano, più che l’intero contenuto della pagina, soltanto il traffico relativo alle richieste POST/GET del protocollo HTTP (operando un opportuno reindirizzamento di queste richieste).

 

Un'altra classificazione delle tecniche principali:

  • stored, il client invia dati all'applicazione web, vengono memorizzati e rispediti agli altri utenti tramite le pagine dell'applicazione
  • reflective, il client web invia dati all'applicazione web, vengono subito usati da script sul server e rispediti al browser 
  • DOM, nella pagina web è stato inserito uno script in grado di accedere ai parametri nella URL request e li utilizza per generare codice HTML nella stessa pagina.

 

Gli effetti di un attacco dl genere, ovviamente, sono direttamente proporzionali al numero di utenti che abitualmente visita il sito preso di mira e alla credibilità che questo riscuote tra questi ultimi: nel caso di siti a elevato volume di traffico come, ad esempio, un sito di “Social Network” o di “Home Banking”, i rischi (e i danni concreti) verso cui si va incontro saranno certamente di notevole entità.

 

Le contromisure in questi casi, come già anticipato in precedenza, consistono nel verificare efficientemente quanto inserito dagli utenti nei campi editabili (campi di ricerca, di login  e similari), facendo in modo che nessun contenuto attivo (come ad esempio uno script) possa essere mandato arbitrariamente in esecuzione.

Per esempio, nei sistemi di gestione dei blog è opportuno controllare cosa scrive l'utente al fine di rimuovere tag HTML e JavaScript non permessi.

Dato che non si tratta di problematiche di sicurezza nuove - basti infatti pensare ai vetusti attacchi di tipo “SQL Injection”  che sfruttano un meccanismo simile (il mancato controllo di quanto inserito dagli utenti) -  si può dedurre come, nonostante il tempo trascorso, la mole di informazioni disponibile e i gravi problemi verso i quali si va incontro, la cultura della sicurezza non prevalga ancora su quella dell’improvvisazione, con effetti deleteri e imprevedibili per l’intera comunità.

Comments (1)

Nicola Sfondrini said

at 1:41 am on Mar 19, 2010

LA tecnica XSS si basa sull’iniezione di codice che muta il corretto comportamento della pagina web in questione applicando degli script malware nel sito direttamente dal browser.

Ad esempio il codice di una pagina vulnerabile può essere simile alla porzione qui riportata:

<html>
<head>
<title>Social Media Security</title>
<script type="text/javascript">
function prova() {
var ins=prompt("Inserisci il titolo dell'articolo...");
return prova;
</script>
</head>
<body>
<script type="text/javascript">
insert=prova();
document.write("Il titolo inserito è",insert);
</script>
</body>
</html>

Lo scrip,il cui compito è quello di stampare a video il titolo dell'articolo inserito manualmente è privo di controlli di sicurezza.
Inserendo, ad esempio, una parola tra due apici “codice malevolo”, il codice della pagina cambierà in

document.write("Il numero che hai inserito è ","codice malevolo");

Permettendo quindi l'inserimento e l'interpretazione del codice inserito la pagina può virtualmente diventare una minaccia per l'utente che la naviga.
Un concreto rischio è il cookie grabber, ovvero il furto dei cookie, utilizzato per rubare informazioni di login (o altri dati sensibili) per commettere frodi o furti di identità

Una vulnerabilità apparentemente così semplicei può portare anche al pieno controllo del portale, soprattutto se basati su sistemi CMS con apposito pannello di amministrazione.

You don't have permission to comment on this page.