Un Approccio Moderno al Cross-Site Scripting

20
Corso di Laurea in Sicurezza dei Sistemi e delle Reti Informatiche Un Approccio Moderno al Cross-Site Scripting RELATORE PROF. PAOLO CERAVOLO TESI DI LAUREA DI RENATO FERRUA Matr. 774222 Anno Accademico 2012/2013

description

studio e ricerca di tecniche d'attacco e di difesa moderne inerenti alla vulnerabilità cross-site scripting.

Transcript of Un Approccio Moderno al Cross-Site Scripting

Page 1: Un Approccio Moderno al Cross-Site Scripting

Corso di Laurea in Sicurezza dei Sistemi e delle Reti Informatiche

Un Approccio Moderno al

Cross-Site Scripting

RELATOREPROF. PAOLO CERAVOLO

TESI DI LAUREA DIRENATO FERRUA

Matr. 774222

Anno Accademico 2012/2013

Page 2: Un Approccio Moderno al Cross-Site Scripting

Obiettivo (1)

19961993 1999 2002 2005 2008 2011 2014

Page 3: Un Approccio Moderno al Cross-Site Scripting

Obiettivo (2)

Informazionevalida?

TE

SI

Creazione di una soluzione alternativa

Page 4: Un Approccio Moderno al Cross-Site Scripting

Stato dell’arte (1)

Il cross-site scripting (XSS) è una vulnerabilità che affligge i siti web dinamici. Permette all’attaccante di far eseguire del codice malizioso al browser della vittima.

Esistono 3 tipi di vulnerabilità XSS:

• Non-persistent• Persistent• Dom-based

Page 5: Un Approccio Moderno al Cross-Site Scripting

Stato dell’arte (2)

XSS non-persistent

Page 6: Un Approccio Moderno al Cross-Site Scripting

Stato dell’arte (3)

XSS persistent

Page 7: Un Approccio Moderno al Cross-Site Scripting

Stato dell’arte (4)

XSS DOM-based

persistent

non-persistent

<script>alert(‘test xss’);</script>

Page 8: Un Approccio Moderno al Cross-Site Scripting

Rischi per la vittima XSS (1)

• Accesso alle abitudini− Ricostruzione della cronologia− Ricostruzione dell’elenco dei siti in cui si è autenticati

• Accesso a servizi che necessitano di credenziali per l’autenticazione− Furto delle credenziali memorizzate nel password manager− Furto delle credenziali attraverso tecniche di phishing

• Hijacking della sessione− Inoltro dei cookies all’attaccante

• Accesso ai dati personali• Disinformazione/diffamazione

− Modifica dei contenuti di un sito• Attacchi behind the firewall

− Web server fingerprinting− Modifica della configurazione del router

• Il browser diventa uno zombie− The Browser Exploitation Framework (BeEF)

• Worm XSS

Page 9: Un Approccio Moderno al Cross-Site Scripting

Rischi per la vittima XSS (2)

Ricostruzione della Cronologia

nuovo attaccovecchio attacco

Page 10: Un Approccio Moderno al Cross-Site Scripting

Prevenzione degli attacchi (1)

Filtri anti-XSS nei browser

...

Page 11: Un Approccio Moderno al Cross-Site Scripting

Prevenzione degli attacchi (2)

Corretto filtraggio dell’input e dell’outputda parte delle applicazioni web

Page 12: Un Approccio Moderno al Cross-Site Scripting

Studio del Caso Cdling Capital Services Inc. (1)

• La società ha richiesto di valutare la sicurezza della propria piattaforma contro gli attacchi XSS

• La modalità di testing concordata è a scatola grigia (Gray Box)

Page 13: Un Approccio Moderno al Cross-Site Scripting

Studio del Caso Cdling Capital Services Inc. (2)

• Mappatura del sito

Page 14: Un Approccio Moderno al Cross-Site Scripting

Studio del Caso Cdling Capital Services Inc. (3)

• Mappatura dei file

Page 15: Un Approccio Moderno al Cross-Site Scripting

Studio del Caso Cdling Capital Services Inc. (4)

• Analisi degli input e degli output

Page 16: Un Approccio Moderno al Cross-Site Scripting

Studio del Caso Cdling Capital Services Inc. (5)

• Analisi degli input e degli output

Page 17: Un Approccio Moderno al Cross-Site Scripting

Studio del Caso Cdling Capital Services Inc. (6)

• Analisi del File System

• Analisi della Gestione degli Errori

• Analisi dei Cookie

Page 18: Un Approccio Moderno al Cross-Site Scripting

Studio del Caso Cdling Capital Services Inc. (7)

• cdling.com non presenta vulnerabilità XSS

• Durante l’analisi sono emersi alcuni bug, uno dei quali sfruttabile per aumentare la propria reputazione all’interno del sito

Page 19: Un Approccio Moderno al Cross-Site Scripting

Conclusioni (1)

• I concetti su cui si fonda il cross-site scripting al giorno d’oggi, sono analoghi a quelli dei primi anni 2000

• Essendo il browser la componente sfruttata per sferrare l’attacco, la vulnerabilità assume connotati diversi a seconda del web client in uso; ne consegue che gran parte della letteratura, essendo datata e basata su sistemi obsoleti, fornisce un supporto solo parziale al lettore

• Per ogni attacco non più funzionante è stato possibile trovare una variante, anche se generalmente meno performante o comunque compatibile con un numero inferiore di web client

• Per contrastare il cross-site scripting, negli ultimi anni, i principali vendor hanno integrato nei loro browser di ultima generazione dei filtri anti-XSS, questi sono in grado di mitigare gli attacchi non-persistent più comuni

• Altri progetti di ricerca sono in corso, ma nessuno di questi si è ancora tradotto in un software, efficace e facilmente distribuibile, in grado di prevenire tutti i tipi d’attacco

Page 20: Un Approccio Moderno al Cross-Site Scripting

Conclusioni (2)

• I linguaggi di programmazione moderni mettono a disposizione metodi e framework adatti alla scrittura di codice sicuro. Questi se sfruttati in modo intelligente da programmatori e progettisti permettono di creare applicazioni web prive di vulnerabilità XSS

• Negli anni la situazione è quindi migliorata, ma il problema è ben lontano dall’essere risolto