Luca Annunziata

Kaspersky e il mistero di Duqu

I laboratori della software house moscovita non si danno pace. Cercano di svelare i misteri dietro il malware che fa la spia. Con delle scoperte interessanti: Ŕ scritto in un linguaggio sconosciuto

Roma - Si tratta di una novità non da poco, che se confermata getterebbe nuova luce sulla portata dell'affaire Duqu. Stando a quanto sostenuto da Kaspersky, azienda produttrice del software di sicurezza omonimo, parti del codice del malware analizzato in questi mesi alla ricerca di indizi su autori e mandanti del trojan sarebbe stato scritto in un linguaggio di programmazione sconosciuto. Duqu sarebbe il prodotto di uno sforzo di sviluppo e progettazione non indifferente: ora tutto sta a capire chi abbia movente e mezzi per mettere in piedi un'operazione del genere.

Duqu, da più parti definito come "figlio" di Stuxnet, è un malware di cui parecchio si è parlato attorno alla fine del 2011. In circolazione pare dal oltre 12 mesi, a lungo era riuscito a scansare i radar degli antivirus fino a quando Symantec e altri ne avevano rivelato l'esistenza. A differenza di Stuxnet, tuttavia, Duqu sembra un prodotto pensato per attacchi mirati più che per la diffusione indiscriminata: attacchi volti a carpire informazioni riservate e trasmetterle a un server remoto, probabilmente a scopo di spionaggio. A farne le spese pare sia stata soprattutto l'infrastruttura informatica dell'Iran. Particolarità di Duqu: i suoi autori sono stati molto abili a coprire le proprie tracce.

Secondo i tecnici Kaspersky, nel complesso il codice di Duqu è piuttosto normale: si tratta per lo più di un prodotto in C++ elaborato in un Visual Studio 2008 e ivi compilato. Niente di esotico. Più interessante è il meccanismo con cui è stato costruito: moduli indipendenti in grado di funzionare singolarmente, e dunque aperti ad aventuali aggiornamenti di uno solo degli elementi senza che gli altri debbano essere modificati di conseguenza. Su uno di questi però si è concentrata l'attenzione di Kaspersky nell'ultimo periodo: analizzando la DLL del payload scaricato dall'eseguibile base, i tecnici hanno notato che la sezione della libreria dedicata alla comunicazione tra il malware e il centro di comando e controllo remoto (C&C), fin qui uno dei segmenti più oscuri della vicenda, non sarebbe frutto di una normale programmazione C++, ma sarebbe stata sviluppata in un linguaggio fino a questo punto non identificato.
Scrivono i ragazzi di Kaspersky: "Il codice della DLL è piuttosto consueta per un binario composto da diversi pezzi di codice. ╚ composta di fette di codice che sono state compilate in un primo tempo in oggetti separati, quindi linkati in una singola DLL. Alcune fette sono comuni a quasi tutti i programmi in C++, come la funzione Standard Template Library (STL), funzioni in runtime e codice originale, eccetto la fetta relativa al codice di interazione con il C&C". Nel codice analizzato non c'è alcun riferimento a funzioni standard del C++, anche se sembra evidente si tratti del risultato di un linguaggio orientato agli oggetti. Ai tecnici non è rimasta altra scelta che denominarlo "Duqu Framework", e appellarsi all'intelligenza collettiva della Rete per cercare di scoprirne l'origine.

un esempio di codice del payload dll di duqu

Le cinque caratteristiche principali del framework sono così riassunte:
- tutto è racchiuso in oggetti;
- la function table è piazzata direttamente nella istanza di classe e può essere modificata a posteriori;
- non c'è distinzione tra classi di utility e codice scritto a mano;
- gli oggetti comunicano tramite chiamate definite in dei metodi, esecuzioni differite e callback attivate da eventi;
- non ci sono riferimenti a funzioni delle librerie di runtime, vengono invocate direttamente le API di Windows native.
Ci sono poi altre particolarità realtive a come sono definite le classi e gli oggetti, a come i parametri vengono passati alle funzioni (al contrario di quanto accade solitamente nei linguaggi più conosciuti, i parametri oggetto sono trasferibili alle classi sia in stack che per registro senza apparente preferenza o esclusiva per uno dei due meccanismi). Nel complesso il framework sembra essere guidato da un meccanismo di attivazione ad eventi, generati da chiamate delle API native di Windows o messo in moto durante l'esecuzione di alcuni brani di codice. Un meccanismo per certi versi simile a quello dell'Objective C, secondo Kasperksy: ma stando alle verifiche effettuate non sarebbe scritto in quel linguaggio (non è stato trovato alcun riferimento a funzioni conosciute), nè sarebbe compilato con un software noto.

Kaspersky sta tentando da qualche settimana di venire a capo del mistero: fino a questo punto sembrerebbe escluso che si tratti di codice C++, Objective C, Python, Ada, Lua, Java. I tecnici aggiungono di aver anche indagato oltre, esplorando alternative piò o meno esotiche: nessuno è stato in grado fino a questo punto di ricondurre il codice ricavato dal reverse engineering della DLL a un contesto conosciuto. Addirittura "vista la dimensione del Progetto Duqu, è possibile che un team diverso da quello che ha sviluppato il malware fosse responsabile solamente per la creazione del framework". Un lavoro di squadra coordinato, frutto evidentemente di un team organizzato, in cui addirittura il codice potrebbe essere stato partorito da gruppi di sviluppatori diversi e divisi in compartimenti stagni, senza una visione complessiva dell'intero quadro.

L'ipotesi più accreditata fino a questo punto è che sia stato sviluppato un framework originale che facesse da intermediario per la creazione di codice C: una modalità di lavoro inusuale e poco economica sotto il profilo tecnico, e che suscita più domande di quante risposte fin qui sia stato possibile fornire. "Facciamo un'appello alla comunità degli sviluppatori - concludono i tecnici Kaspersky - Chiediamo a chiunque riconosca framework, toolkit o il linguaggio di programmazione in grado di generare quel tipo di costrutto di codice di contattarci". Potrebbe trattarsi di un lavoro sperimentale o di un suo derivato, e rintracciarne l'origine aiuterebbe a circoscrivere il perimetro entro cui alimentare le ricerche per individuare gli autori del malware.

Luca Annunziata
Notizie collegate
  • SicurezzaMicrosoft prepara le patch di dicembreRedmond annuncia le portate previste dal men¨ in programma per il prossimo martedý di patch mensile. L'ultimo Patch Tuesday del 2011 conterrÓ un buon numero di fix importanti anche per falle zero-day
  • SicurezzaDuqu, attacco zero-dayIl malware sfrutterebbe una vulnerabilitÓ nel kernel di Windows per prendere il controllo del sistema. Microsoft Ŕ stata informata ma la patch sembrerebbe ancora lontana
  • SicurezzaKaspersky: Duqu e Stuxnet sono gemelliLa societÓ di sicurezza rivela che i due malware pi¨ chiacchierati degli ultimi mesi condividono autori e piattaforma di sviluppo. Dalla stessa genia sarebbero nate altre tre minacce tuttora ignote
32 Commenti alla Notizia Kaspersky e il mistero di Duqu
Ordina
  • E da quando le STL sono diventate "una funzione"?
    non+autenticato
  • Aggiungo "funzioni in runtime e codice originale", che cosa vuol dire?

    Probabilmente il "giornalista" non ha mai sentito parlare di template.
    non+autenticato
  • Immagino che questo "malware" giri solo su pc Windows...
    Dubito fortemente che chi abbia dati sensibili li archivi su di un pc il quale sistema operativo è stato prodotto in un paese ostile, e tra l'altro senza sapere effettivamente cosa giri al disotto...
    Fossi un'iraniano con il timore che gli usa mi spiassero metterei un bel server BSD, NON LINUX, ma BSD che è un'altra cosa... una cosa chiamata UNIX che molti si dimenticano esista, ed è, a mio avviso, uno dei sistemi operativi server piu stabili, e sicuri, in circolazione.
    non+autenticato
  • > Dubito fortemente che chi abbia dati sensibili li
    > archivi su di un pc il quale sistema operativo è
    > stato prodotto in un paese ostile, e tra l'altro
    > senza sapere effettivamente cosa giri al
    > disotto...

    Non dati sensibili, ma impianti industriali.
    Reinventare la ruota ogni volta è costoso, si compra quello che c'è sul mercato. Se te lo vendono ancora..
    Sviluppare per un mercato ristretto senza possibilità di esportazione è suicida.
  • Per il linguaggio informatico, la traduzione più corretta di "slices" sarebbe "sezioni" e non "fette".
    non+autenticato
  • Cito: "A differenza di Stuxnet, tuttavia, Duqu sembra un prodotto pensato per attacchi mirati più che per la diffusione indiscriminata"

    Ma questo non mi risulta assolutamente vero!!!

    Stuxnet è stato creato per uno scopo ben preciso, cioè ATTACCARE UNA DETERMINATA CENTRALE IRANIANA per l'arricchimento dell'uranio (situata a Natanz). E solo quella. Infatti il virus controllava, attraverso chiamate al PLC, che il sistema infettato avesse almeno 33 centrifughe operanti ad una determinata frequenza (tra 807Hz e 1,210Hz), che utilizzasse una scheda di rete Profibus, che ci fossero dei convertitori di frequenza specifici (Vacon NX e Fararo Paya), altrimenti non si attivava. Tutte caratteristiche della centrale di Natanz.

    Quindi Stuxnet non è assolutamente stato creato per una diffusione indiscriminata, come invece si evince dall'articolo.

    Qui l'avvincente storia della scoperta di Stuxnet (in inglese):
    http://www.wired.com/threatlevel/2011/07/how-digit...
    non+autenticato
  • - Scritto da: Pino
    > Cito: "A differenza di Stuxnet, tuttavia, Duqu
    > sembra un prodotto pensato per attacchi mirati
    > più che per la diffusione
    > indiscriminata"
    >
    > Ma questo non mi risulta assolutamente vero!!!
    >
    > Stuxnet è stato creato per uno scopo ben
    > preciso, cioè ATTACCARE UNA DETERMINATA CENTRALE
    > IRANIANA per l'arricchimento dell'uranio (situata
    > a Natanz). E solo quella. Infatti il virus
    > controllava, attraverso chiamate al PLC, che il
    > sistema infettato avesse almeno 33 centrifughe
    > operanti ad una determinata frequenza (tra 807Hz
    > e 1,210Hz), che utilizzasse una scheda di rete
    > Profibus, che ci fossero dei convertitori di
    > frequenza specifici (Vacon NX e Fararo Paya),
    > altrimenti non si attivava. Tutte caratteristiche
    > della centrale di
    > Natanz.
    >
    > Quindi Stuxnet non è assolutamente stato creato
    > per una diffusione indiscriminata, come invece si
    > evince
    > dall'articolo.
    >
    > Qui l'avvincente storia della scoperta di Stuxnet
    > (in
    > inglese):
    > http://www.wired.com/threatlevel/2011/07/how-digit
    quando hai ragione, hai ragione...Stuxnet e' un malware molto targetizzato. anche se i termini sono messi un po alla rinfusa Sorride
    non+autenticato
  • ...in Winzozz il codice migliore si trova nei virus! Cara MS licenzia i tuoi ingegneroni incapaci e i tuoi programmatori fighetti e assumi questi "hacker" che nel giro di un anno ti riscrivono il kernel colabrodo di Winzozz!
    non+autenticato
  • - Scritto da: homo erectus
    > ...in Winzozz il codice migliore si trova nei
    > virus! Cara MS licenzia i tuoi ingegneroni
    > incapaci e i tuoi programmatori fighetti e assumi
    > questi "hacker" che nel giro di un anno ti
    > riscrivono il kernel colabrodo di
    > Winzozz!

    Certo, certo...se avessi un centesimo per ogni volta che ho letto una cosa del genere, a quest'ora sarei Zio Paperone!
CONTINUA A LEGGERE I COMMENTI
Successiva
(pagina 1/2 - 9 discussioni)