JavaScript is the most common scripting language that is used to build rich web interfaces. It has also been abused to harm customers’ machines, such as stealing customers’ private data, for a long time. JavaScript is a prototype-based scripting language that is dynamic, weakly-typed and has first-class functions. Because of these peculiarities, it is very difficult to apply traditional program-analysis techniques such as static analysis and dynamic analysis. Indeed, the research in this field is very active, motivated by the need for tools that can recognize malicious JavaScript code (e.g., code that attempt to exploit a browser vulnerability) and protect clients (e.g, browsers) from being compromised by malicious JavaScript code. Unfortunately, there is no paper that systematise the knowledge in this field. The goal of this thesis is to systematise the research approaches published in the proceedings of top computer security conferences between 2005 and 2012. In addition, we attempt to draw future trends of JavaScript-based threats and mitigation approaches. We study the evolution of both JavaScriptbased threats and mitigation approaches and propose a taxonomy. We describe 34 papers in detail and compare the advantages and disadvantages among them.

Il pericolo crescente di codice JavaScript malevolo. Per migliorare la visualizzazione dei siti web sul lato cliente, JavaScript ´e il linguaggio pi ´u comunemente scelto dagli sviluppatori web, ed ´e supportato da tutti i browser web come Google Chrome, Firefox e Internet Explorer. Il linguaggio JavaScript ´e stato sviluppato da Netscape come linguaggio di scripting leggero con funzionalit´a orientate agli oggetti ed ´e stato successivamente standardizzato da ECMA. JavaScript pu´o essere abusato per scopi malevoli (ad esempio, sfruttare le vulnerabilit´a dei browser per causare la perdita di dati privati). JavaScript ha le seguenti quattro caratteristiche: basato su prototipo, dinamica, debolmente tipizzato ed espone funzioni di prima classe che rendono molto difficile da rilevare le minacce basate su di esso. Al giorno d’oggi, l’abuso maligno di Javascript ´e diventata la principale minaccia per i clienti. Secondo un rapporto pubblicato da Sophos Labs indicano che il numero di frammenti JavaScript maligni analizzati ogni giorno nel 2010 - circa 95.000 campioni - quasi raddoppiato dal 2009 citep 2011. Ci sono diversi tipi di minacce basate su JavaScript contro i browser attuali, come ad esempio: 1. Attacchi drive-by download, che significa una vulnerabilit´a nel browser web o uno dei suoi componenti estensioni (ad esempio, Acrobat Reader o Flash plug-in) viene sfruttata per imporre ai client di scaricare ed eseguire codice arbitrario. 2. Cross-Site Scripting (XSS) che consente ad un utente malintenzionato di iniettare codice JavaScript malevolo in pagine web. 3. Attacchi heap spraying, che sfruttano vulnerabilit´a di heap/buffer overflow del browser o browser dei suoi plug-ins per allocare una grande quantit´a di memoria heap, di solito utilizzando array di stringhe che contengono shell-code e NOP sleds. Lavori precedenti. Motivata dalla necessit´a di proteggere i clienti dalle minacce basate su JavaScript, la ricerca in questo campo ´e molto attiva. Diversi, nuovi approcci e strumenti sono stati proposti, ad esempio: Wepawet esegue un’analisi on-line di una determinata pagina, al fine di rilevare gli attacchi drive-by download. Cujo esegue l’analisi online, ma introduce un overhead di pi ´u di 1,5 secondi su siti JavaScript pesanti come Facebook, che incide negativamente sulla qualit´a dell’esperienza dell’utente. Gatekeeper e Google Caja tentano di trovare un modo per eseguire codice JavaScript arbitrario in un ambiente protetto, il che richiede di lavorare su un sottoinsieme della specifica JavaScript completa, ad esempio, Gatekeeper rimuove costrutti del linguaggio come eval() e document.write() dalla specifica JavaScript per la loro analisi. La motivazione di questa tesi. Finora, ci sono numerosi tipi di minacce basate su JavaScript e proposti approcci che ne mitigano gli effetti. Ma, purtroppo, non c’´e un tesi che istematizza la conoscenza in questo campo. Questa tesi ´e la prima tesi che sistematizza la conoscenza della sicurezza JavaScript. Pensiamo che questa tesi pu´o aiutare le persone che e nuovo in questo campo, nella prospettiva di rispondere alle seguenti problematiche: 1. Quali minacce basate su JavaScript e approcci di mitigazione sono stati sviluppati. 2. Per attenuare uno specifico minaccia basato su JavaScript, quali tipi di contromisure sono efficaci per fermarla. 3. Quale pu´o essere la prossima minaccia basata su JavaScript e quali contromisure possono essere preparate per mitigarla. Principali contributi. Per riassumere, questa tesi presenta i seguenti contributi: 1. Studiamo l’evoluzione di entrambe le minacce basate su JavaScript e le tecniche di mitigazione contro di loro. Esponendole in ordine della loro evoluzione temporale. 2. Forniamo una tassonomia per classificare le minacce basate su JavaScript esistenti e gli approcci di mitigazione e di descrivere le differenze, i vantaggi, gli svantaggi delle diverse classi di approcci di mitigazione. 3. Usiamo due tavoli di correlare le tecniche di mitigazione con le minacce basate su JavaScript per mostrare l’efficacia delle tecniche di mitigazione. 4. Descriviamo i documenti cui si fa riferimento in dettaglio come prova per la conoscenza che abbiamo di sistematizzare. 5. Indichiamo i prossimi possibili attacchi.

Evolution of client side web attacks and defences against malicious JavaScript code : a retrospective, systematization study

YIN, ZHINING
2012/2013

Abstract

JavaScript is the most common scripting language that is used to build rich web interfaces. It has also been abused to harm customers’ machines, such as stealing customers’ private data, for a long time. JavaScript is a prototype-based scripting language that is dynamic, weakly-typed and has first-class functions. Because of these peculiarities, it is very difficult to apply traditional program-analysis techniques such as static analysis and dynamic analysis. Indeed, the research in this field is very active, motivated by the need for tools that can recognize malicious JavaScript code (e.g., code that attempt to exploit a browser vulnerability) and protect clients (e.g, browsers) from being compromised by malicious JavaScript code. Unfortunately, there is no paper that systematise the knowledge in this field. The goal of this thesis is to systematise the research approaches published in the proceedings of top computer security conferences between 2005 and 2012. In addition, we attempt to draw future trends of JavaScript-based threats and mitigation approaches. We study the evolution of both JavaScriptbased threats and mitigation approaches and propose a taxonomy. We describe 34 papers in detail and compare the advantages and disadvantages among them.
MAGGI, FEDERICO
ING V - Scuola di Ingegneria dell'Informazione
22-apr-2013
2012/2013
Il pericolo crescente di codice JavaScript malevolo. Per migliorare la visualizzazione dei siti web sul lato cliente, JavaScript ´e il linguaggio pi ´u comunemente scelto dagli sviluppatori web, ed ´e supportato da tutti i browser web come Google Chrome, Firefox e Internet Explorer. Il linguaggio JavaScript ´e stato sviluppato da Netscape come linguaggio di scripting leggero con funzionalit´a orientate agli oggetti ed ´e stato successivamente standardizzato da ECMA. JavaScript pu´o essere abusato per scopi malevoli (ad esempio, sfruttare le vulnerabilit´a dei browser per causare la perdita di dati privati). JavaScript ha le seguenti quattro caratteristiche: basato su prototipo, dinamica, debolmente tipizzato ed espone funzioni di prima classe che rendono molto difficile da rilevare le minacce basate su di esso. Al giorno d’oggi, l’abuso maligno di Javascript ´e diventata la principale minaccia per i clienti. Secondo un rapporto pubblicato da Sophos Labs indicano che il numero di frammenti JavaScript maligni analizzati ogni giorno nel 2010 - circa 95.000 campioni - quasi raddoppiato dal 2009 citep 2011. Ci sono diversi tipi di minacce basate su JavaScript contro i browser attuali, come ad esempio: 1. Attacchi drive-by download, che significa una vulnerabilit´a nel browser web o uno dei suoi componenti estensioni (ad esempio, Acrobat Reader o Flash plug-in) viene sfruttata per imporre ai client di scaricare ed eseguire codice arbitrario. 2. Cross-Site Scripting (XSS) che consente ad un utente malintenzionato di iniettare codice JavaScript malevolo in pagine web. 3. Attacchi heap spraying, che sfruttano vulnerabilit´a di heap/buffer overflow del browser o browser dei suoi plug-ins per allocare una grande quantit´a di memoria heap, di solito utilizzando array di stringhe che contengono shell-code e NOP sleds. Lavori precedenti. Motivata dalla necessit´a di proteggere i clienti dalle minacce basate su JavaScript, la ricerca in questo campo ´e molto attiva. Diversi, nuovi approcci e strumenti sono stati proposti, ad esempio: Wepawet esegue un’analisi on-line di una determinata pagina, al fine di rilevare gli attacchi drive-by download. Cujo esegue l’analisi online, ma introduce un overhead di pi ´u di 1,5 secondi su siti JavaScript pesanti come Facebook, che incide negativamente sulla qualit´a dell’esperienza dell’utente. Gatekeeper e Google Caja tentano di trovare un modo per eseguire codice JavaScript arbitrario in un ambiente protetto, il che richiede di lavorare su un sottoinsieme della specifica JavaScript completa, ad esempio, Gatekeeper rimuove costrutti del linguaggio come eval() e document.write() dalla specifica JavaScript per la loro analisi. La motivazione di questa tesi. Finora, ci sono numerosi tipi di minacce basate su JavaScript e proposti approcci che ne mitigano gli effetti. Ma, purtroppo, non c’´e un tesi che istematizza la conoscenza in questo campo. Questa tesi ´e la prima tesi che sistematizza la conoscenza della sicurezza JavaScript. Pensiamo che questa tesi pu´o aiutare le persone che e nuovo in questo campo, nella prospettiva di rispondere alle seguenti problematiche: 1. Quali minacce basate su JavaScript e approcci di mitigazione sono stati sviluppati. 2. Per attenuare uno specifico minaccia basato su JavaScript, quali tipi di contromisure sono efficaci per fermarla. 3. Quale pu´o essere la prossima minaccia basata su JavaScript e quali contromisure possono essere preparate per mitigarla. Principali contributi. Per riassumere, questa tesi presenta i seguenti contributi: 1. Studiamo l’evoluzione di entrambe le minacce basate su JavaScript e le tecniche di mitigazione contro di loro. Esponendole in ordine della loro evoluzione temporale. 2. Forniamo una tassonomia per classificare le minacce basate su JavaScript esistenti e gli approcci di mitigazione e di descrivere le differenze, i vantaggi, gli svantaggi delle diverse classi di approcci di mitigazione. 3. Usiamo due tavoli di correlare le tecniche di mitigazione con le minacce basate su JavaScript per mostrare l’efficacia delle tecniche di mitigazione. 4. Descriviamo i documenti cui si fa riferimento in dettaglio come prova per la conoscenza che abbiamo di sistematizzare. 5. Indichiamo i prossimi possibili attacchi.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
Thesis.pdf

accessibile in internet per tutti

Descrizione: Thesis text
Dimensione 1.18 MB
Formato Adobe PDF
1.18 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/78542