TDL3 rootkit: spettatori di un gioco a senso unico

January 19th, 2010 by Marco Leave a reply »

Era questione di tempo – e non c’era bisogno di scomodare hypervisor rootkit o SMM rootkits – per arrivare a vedere come anche un classico rootkit kernel mode potesse diventare una bestia nera per qualsiasi software di sicurezza, tanto da girare liberamente online per piu di due mesi senza che nessun – o quasi nessun – software di sicurezza fosse riuscito a mettere una toppa e ad individuarlo nel sistema ad infezione attiva.

Il TDL rootkit – in veste di terza edizione – è ad oggi il rootkit kernel mode più avanzato mai visto in circolazione, capace di nascondersi nel sistema così bene da impedire ad ogni software di sicurezza l’individuazione e la rimozione dell’infezione. In pochi ne parlano, perché non esiste una soluzione definitiva al momento.

L’infezione è aggravata dal fatto che il team alle spalle del rootkit TDL è costantemente attento alle tecniche di difesa messe in atto dai software antivirus e risponde giornalmente – in alcuni casi anche con piu aggiornamenti al giorno – con contro misure capaci di annullare ogni timida controffensiva.

Il rootkit si diffonde attraverso siti di crack o attraverso le reti peer to peer. Gli aggiornamenti giornalieri fanno sì che il dropper del rootkit sia in grado di evadere agevolmente le signature dei software antivirus.

Una volta eseguito – il dropper necessita dei privilegi di amministratore per poter installare il rootkit – tenta di evadere il controllo di alcuni basilari software HIPS e carica in memoria il driver del rootkit. Da questo momento in poi, il rootkit diventa letteralmente invisibile. Se l’UAC è disabilitato – o si danno i diritti di amministratore manualmente – il rootkit è in grado di infettare anche Windows Vista e Windows 7.

I file che compongono l’infezione – il driver, due librerie dll e file di configurazione – vengono scritti negli ultimi settori del disco rigido, fuori dal file system del sistema. Seppure i file, in questa maniera, siano già invisibili a qualsiasi software antivirus, il rootkit applica un’altra tecnica particolarmente interessante ed avanzata: il rootkit utilizza un file system proprietario e crittografato, con una propria MFT e sistemazione dei file al suo interno. La conseguenza è che leggendo gli ultimi settori del disco rigido ci si trova davanti solo dei byte casuali apparentemente senza senso, perché crittografati.

L’accesso in lettura e scrittura al contenuto crittografato è gestito in tempo reale dal rootkit, che codifica e decodifica on-the-fly i file quando sono richiesti.

Da notare che una tecnica simile, ma più semplice, era stata già vista nel MBR rootkit, il quale scrive il proprio driver negli ultimi settori del disco rigido.

Una volta depositati i file necessari, il rootkit infetta uno dei driver di sistema che gestiscono l’hard disk I/O, filtrando in maniera efficace i pacchetti in transito.

L’infezione è particolare, diversa sia da Rustock.C che Neprodoor. Da questi ultimi due rootkit eredita l’idea di infettare un driver di sistema(ad es. atapi.sys), evitando così di dover nascondere una eventuale nuova chiave di registro di sistema che verrebbe comunque identificata per mezzo di analisi approfondite.

La tecnica però è migliorata: Rustock.C infettava il driver aggiungendo del codice virale in fondo al codice del driver. Infezione individuabile grazie ad una scansione incrociata per verificare eventuali incongruenze sulle dimensioni del file. Neprodoor cripta direttamente tutto il codice del driver e inserisce un proprio loader che si occupa di decodificare il driver del rootkit e il driver originale in memoria. Anche questa tecnica è identificabile per mezzo di una scansione incrociata alla ricerca di incongruenze di dimensioni del file e, in aggiunta, anche una semplicissima analisi incrociata di una piccola porzione del file mostrerebbe delle evidenti incongruenze.

TDL rootkit eredita questa tecnica e la migliora: il malware infetta il driver modificando solo 824 bytes all’interno della sezione del file dedicata alle risorse e reindirizza l’entry point del file in modo che venga eseguito questo loader di pochi bytes. Il loader provvederà poi a caricare il vero driver criptato nei gli ultimi settori del disco rigido e, successivamente, passerà il controllo al driver infettato. Il driver originale non viene alterato in termini di dimensioni e, per scoprire l’infezione, è necessaria un’analisi completa del file. Solo un confronto per mezzo di un hash del file intero mostrerebbe l’incongruenza.

Cosa particolarmente complessa però visto che il rootkit, una volta attivo nel sistema, applica dei filtri a livello di I/O che impediscono a qualsiasi software antivirus di leggere il vero contenuto del disco, nascondendo così il driver infetto e gli ultimi settori del disco. L’utente non vede niente di anormale, il driver infetto viene visto dal sistema come originale, senza alcuna alterazione.

I filtri applicati dal rootkit sono così efficaci che al momento sono state trovate veramente poche soluzioni pubbliche efficaci per aggirare il problema. Inoltre, ogni tentativo rilasciato pubblicamente viene reso inoffensivo nel giro di poche ore, o giorni, dal team alle spalle del rootkit che aggiorna la propria creatura.

La parte del rootkit in kernel mode inietta poi all’interno dei processi – in particolar modo nei processi relativi ai browser – le proprie librerie dll che si occupano di portare avanti il payload dell’infezione.

TDL3 dll files

Il computer, una volta infettato, diventa fondamentalmente uno zombie, capace di ricevere comandi da parte di uno o piu C&C. Tdlcmd.dll e tdlwsp.dll sono le componenti dell’infezione, anch’esse depositate all’interno del file system crittografato creato dal rootkit. Al momento il rootkit è in grado di reindirizzare la navigazione degli utenti e di simulare click – probabilmente per guadagni derivanti dall’online advertising. Ciò non toglie che il rootkit potrebbe essere istruito per fare qualsiasi cosa. Tutte le comunicazioni con i server C&C sono crittografate per mezzo di SSL, rendendo difficile l’analisi del contenuto della connessione.

Come già detto all’inizio dell’articolo, TDL è un’infezione attiva, totalmente invisibile e si sta diffondendo in maniera capillare. L’unica cosa anormale che gli utenti possono riscontrare è la redirezione casuale durante la navigazione web e, in alcuni casi, l’allarme dei software di sicurezza riguardo le due dll riconosciute come infette. Tuttavia, anche riscontrando la presenza dei due file, i software di sicurezza non potrebbero fare niente perché non sanno dove essi siano effettivamente situati, visto che il file system è crittografato.

Il fatto che se ne parli poco, al momento, è solo dovuto al fatto che molte società di sicurezza non hanno le idee chiare su come affrontare la situazione. Il problema è non solo reale, ma effettivamente diffuso.

Riporto qui gli indirizzi IP e i domini al momento utilizzati dal rootkit per comunicare con i C&C:

d45648675.cn
d92378523.cn
a57990057.cn
a58990058.cn
c36996639.cn
c58446658.cn
m2121212.cn
a23423424.cn
a76956922.cn
mfdclk001.org
91.212.226.60
91.212.226.61
212.117.174.176
212.117.174.177
212.117.174.176
188.40.164.210
188.40.164.211
78.47.248.115
188.40.85.251
94.228.209.143
94.228.209.144
188.40.101.169
TDL3 config file

Gli amministratori di rete potrebbero applicare momentaneamente filtri per bloccare le comunicazioni ed arginare in parte l’infezione. Da notare come alcuni indirizzi IP utilizzati dal rootkit siano situati in Europa, dove teoricamente dovrebbe essere piu facile intervenire a livello di legge. In pratica ciò non è così, visto che alcuni di questi indirizzi sono attivi gia da due mesi, liberi di agire.

I clienti Prevx, se dovessero riscontrare reindirizzamenti durante la navigazione web oppure connessioni ad uno dei domini o indirizzi IP sopra riportati, possono contattare l’assistenza Prevx. I nostri tecnici sono in grado di analizzare il sistema da remoto e rimuovere manualmente l’infezione.

-------------

Post correlati:

  1. BSOD dopo MS10-015? TDL3 rootkit si scusa
Advertisement

18 comments

  1. paolo says:

    La sostituzione manuale dell’ MBR seguita da scansioni approfondite del sistema a disco scollegato possono risolvere il problema?

    Eventualmente quale software posso utilizzare per analizzare il disco e cancellare la parte criptografata?

    Ciao e grazie

  2. Marco says:

    Il MBR nel caso in questione non è implicato nell’infezione, ma comunque sì, un controllo incrociato con disco scollegato e analisi effettuata su un PC sano mostrerebbero senza problemi la parte infetta.

    Nel caso di individuazione del file infetto è consigliabile prendere una copia del file originale dal CD/DVD di Windows oppure, in alternativa, effettuare una copia del file infetto da PC infetto attivo. Questo perché quando il PC è infetto ed è funzionante, il rootkit mostrerà il file originale per ingannare software di sicurezza e controlli di Windows. Facendo una copia del file così come mostrato dal rootkit si copierà solo il file originale e non la parte infetta.

    Kaspersky ha messo a disposizione un tool, denominato TDSSkiller (http://support.kaspersky.com/downloads/utils/tdsskiller.zip) che al momento funziona egregiamente.

    Io ho scritto un tool apposito per l’individuazione e rimozione ma è usato internamente al momento, nel reparto assistenza Prevx. Dovremmo implementare il tool comunque in Prevx a breve.

    Ciao,
    Marco

  3. Uhm, da quel che ho capito il rootkit può essere comunque individuato attraverso una scansione con l’AV fatto partire da disco ottico. O sbaglio?

  4. Marco says:

    Ciao,

    si, una scansione effettuata al di fuori del sistema operativo rivelerebbe l’anomalia. Nel caso di software antivirus, rivelerebbero il problema in caso sia presente la signature del file infetto (oppure euristicamente se riscontrano l’entry point del file che è alterato).

    Il problema è che, in generale, non viene mai in mente a nessuno di fare una scansione al di fuori del sistema operativo. Deve essere mirata come cosa, altrimenti è scomoda e non immediata come idea.

  5. Beh, per come la vedo io la scansione a sistema operativo “spento” deve far parte di una buona pratica di sicurezza attiva. E se non è una pratica diffusa la si propaganda per aumentare la consapevolezza della sua necessità :-P

    P.S.Mi sembra di essere tornato ai tempi belli dei boot virus per DOS, che si impossessavano del loader nel bootsector e poi piazzavano codice su altri settori del floppy disk infetto. La differenza è che qui (oltre a trovarsi davanti a dei veri e propri criminali) non si corre il rischio di vedersi l’MFT/FAT corrotta….

  6. Marco says:

    Si, hai ragione. Il problema però è sempre il solito: la sensibilizzazione dell’utenza.

    Anche questo rootkit, se il sistema operativo viene utilizzato correttamente con UAC (o account limitato standard) e non si va in cerca di schifezze (keygen e compagnia bella) si eviterebbe a priori.

    Il problema è che se ad un utente non interessa l’avviso dell’UAC, non interessa tenere un software antivirus aggiornato, non interessa preoccuparsi di cosa si sta scaricando, difficilmente si sensibilizzerà sulla pratica attiva di fare scansioni al di fuori del sistema operativo.

    Il problema non è sensibilizzare sulle pratiche di sicurezza. Mi sto accorgendo sempre piu che prima bisogna sensibilizzare sul problema malware e su quale possano essere le conseguenze di avere un PC infetto, che sono molto di piu del semplice “ruba le mie password?”.

    Gran parte delle persone, al possibile avviso che il proprio PC potrebbe essere infetto, non si preoccupano di cosa fare. Fanno una risata, ti guardano e dicono “si, capirai..lì dentro troppi ce ne saranno di virus…”

    Non è questo l’atteggiamento corretto, purtroppo :(

  7. Giovanni says:

    interessante, sai per caso che sistema usano per cifrare il file system? ciao

  8. Marco says:

    Il file system è criptato con RC4

  9. m4v3rick says:

    mi spiace di dissentire con il tuo pensieri ma alla maggior parte della gente le questioni di sicurezza dovrebbero essere del tutto trasparenti. Il fatto che i pc attuali siano insicuri è colpa dei produttori di HW e dei SO e software vari non dell’utente che li utilizza. Voglio dire, un minimo di accortezza ci deve essere ma è la stessa che si chiede ad uno che guida una macchina. Andare piano, fare la revisione, qualche controllo di routine. Uno mica deve essere un meccanico e un elettrauto. Stessa cosa vale per il pc. E’ incredibile che uno navigando su un sito di news normalissimo si becchi in rootkit che gli ruba i dati della carta di credito. E’ questo forse un comportamento a rischio?

  10. Davide says:

    Ciao Marco, se analizzassi il computer con gParted per esempio noterei una piccola partizione??

  11. Alex says:

    Facendo una scansione con Prevx 3.0 all’interno del sistema operativo,l’infezione viene rilevata ? E rimossa ? Grazie per il chiarimento

  12. Stefano says:

    Ciao a tutti, mi sto informando un po’ sui rootkit.
    A quanto pare facendo una scansione con boot da dvd (o usb) un av dovrebbe rilevare l’infezione.
    Qualche esempio di questi av ? Poi si dice di eseguire una scansione al di fuori dal sistema operativo si i

  13. Bell’articolo. Credo di averci litigato non poco con questo rootkit e di aver scomodato diversi santi del paradiso. Non lo auguro a nessuno.

  14. alvaro says:

    ciao
    se ci hai litigato come l’hai levato? quale disco di boot riesce a vederlo?

  15. alvaro says:

    una domanda semplice..qui c’è scritto che i tecnici prevx entrano da remoto..ma come fanno..è un atto volontario delle due parti oppure il prevx è una backdoor permanente..??? se mi mandano un software che lancio e fa il collegamento ok…ma non vorrei essermi messo un programma di connessione remota in seno senza saperlo e senza controllarlo.

  16. Marco says:

    Ciao Alvaro,

    ovviamente vi mettete d’accordo con i tecnici Prevx e loro ti inviano un software da eseguire per ilcontrollo remoto. Nessuna backdoor ;)

  17. Marco M. says:

    Hitman Pro 3.5 riesce ad eliminare il rootkit. Prima ho provato di tutto ( Spybot, Malvarebites, SuperAntiSpyware ecc.) senza risultato.

Leave a Reply