MBR Rootkit: nuovi aggiornamenti

Dall’inizio del nuovo anno una nuova tipologia di rootkit è stata scoperta in the wild. l’MBR Rootkit, il rootkit che infetta il Master Boot Record per nascondersi all’interno di Windows, ha fatto molto parlare di sé e ha fatto sorgere molte discussioni sul futuro dei nuovi malware, a causa del suo nuovo approccio mai utilizzato prima se non per alcuni proof of concepts.

Dopo tre mesi, il team che sta alle spalle di questa infezione ha cambiato codice del malware piu volte, tentanto di nascondere ogni volta in maniera migliore la propria creatura.

Inizialmente è stato introdotto un driver per sovrascrivere il MBR, invece di utilizzare le API del Win32 subsystem. In questo modo, è stato tentato di evadere alcuni semplici controlli HIPS che avrebbero individuato un tentativo di accesso in lettura/scrittura a basso livello.

Ora che le società ed alcuni singoli sviluppatori hanno rilasciato dei tool di rimozione per questa infezione, il team ha tentato di cambiare nuovamente le carte in tavola.

Come spiegato in un articolo precedente, l’MBR rootkit modifica le routine IRP_MJ_READ e IRP_MJ_WRITE del driver disk.sys così da poter offuscare la lettura del contenuto del MBR, mostrando invece una versione pulita del Master Boot Record salvata prima dell’infezione.

Ora il gioco è diventato piu sporco. Il rootkit ora modifica in memoria il driver CLASSPNP.sys, poi modifica piu routine IRP_MJ_* del driver disk.sys e fa lo stesso con il driver cdrom.sys.

Per capire meglio il perche di questo comportamento, scendiamo un po piu in dettaglio.

Le routine IRP_MJ_READ/WRITE del driver Disk.sys puntano - in una macchina non infetta - ad una funzione chiamata ClassReadWrite, che è una funzione fornita dal driver CLASSPNP.sys.

Ora, se il rootkit modifica le routine IRP_MJ_READ/WRITE per nascondere il codice nel Master Boot Record, tutto quello che uno sviluppatore deve fare è ritrovare il puntatore all’indirizzo della funzione CLASSPNP!ClassReadWrite e, di conseguenza, leggere il contenuto del MBR senza alterazioni da parte del rootkit.

Ora però sorge il problema: ClassReadWrite non è una funzione esportata dal driver CLASSPNP.sys, e ci sono alcuni modi per poter ritrovare l’indirizzo di questa funzione.

Il primo modo sarebbe quello di effetuare un’analisi del codice della funzione chiamata ClassInitialize. Questa funzione è esportata dal driver CLASSPNP.sys e contiene l’indirizzo originale della funzione ClassReadWrite.

Ecco la prima contromossa usata dal rootkit: il malware modifica la funzione ClassInitialize, in modo tale che non è piu possibile individuare l’indirizzo originale in memoria della funzione ClassReadWrite.

Un altro modo sarebbe quello di analizzare il driver cdrom.sys. Le routine di dispatch IRP_MJ_READ/WRITE del driver cdrom.sys puntano alla stessa funzione ClassReadWrite. Questo significa che dal driver cdrom.sys sarebbe possibile recuperare l’indirizzo originale della funzione ClassReadWrite.

Seconda contromossa usata dal rootkit: ora, oltre al driver disk.sys, modifica anche cdrom.sys.

Inoltre, il terzo cambio è l’aggiunta di altri hook (inutili dal punto di vista del codice) ad alcune funzioni IRP_MJ_*, hook sembrerebbe aggiunti semplicemente per rendere le cose piu difficili alle società di sicurezza.

Ora le routine di dispatch che il rootkit modifica sono anche:

IRP_MJ_CREATE
IRP_MJ_CLOSE
IRP_MJ_FLUSH_BUFFERS
IRP_MJ_DEVICE_CONTROL
IRP_MJ_INTERNAL_DEVICE_CONTROL
IRP_MJ_SHUTDOWN
IRP_MJ_POWER
IRP_MJ_SYSTEM_CONTROL
IRP_MJ_PNP

La realtà, al momento, è che le società di sicurezza sono indietro rispetto a questa infezione e il team che sta sviluppando il rootkit sta facendo il proprio gioco, vincendo pure. Gran parte dei programmi sviluppati per individuare e rimuovere questa infezione sono stati bypassati da queste ultime release del malware. In aggiunta, il team dietro l’MBR rootkit sembra molto attivo.

La buona notizia, però, è che Prevx CSI riesce ad individuare e rimuovere l’MBR rootkit. Da Gennaio, quando abbiamo aggiunto le routine per l’individuazione e la rimozione di questo rootkit nel nostro engine anti-rootkit, non è stato mai necessario aggiornare o modificare il codice per individuare le nuove varianti della componente rootkit dell’infezione.

Prevx Blog


16 Responses to “MBR Rootkit: nuovi aggiornamenti”

  1. […] Pubblicato da angelique su Marzo 21, 2008 Marco Giuliani, malware analyst dell’azienda di sicurezza PrevX, ha pubblicato sul suo PC al Sicuro e sul blog ufficiale di PrevX, un aggiornamento sulla nuova tipologia di rootkit scoperta “in the wild” ad inizio anno; l’MBR Rootkit, un rootkit che infetta il Master Boot Record per nascondersi all’interno di Windows, sfruttando un approccio “nuovo” mai utilizzato prima se non per alcuni “proof of concept”. […]

  2. ma invece che perdere tempo con inutili suite di sicurezze e inutili programmi antirootkit, è sufficiente usare Windows con un account limitato (oppure Windows Vista che grazie allo UAC, ha di default tutti gli account con privilegi limitati). E dire “tiè!” al 99% del malware in circolazione.

  3. […] Continua qui… […]

  4. grazie dell’articolo…speravo avessi abbandonato il sito!:D

  5. volevo dire “pensavo” non “speravo”

  6. Già, ultimamente ho avuto pochissimo tempo da dedicare alla scrittura di articoli :)

    Comunque, a poco a poco, vediamo di riprendere :D

    Grazie per continuare a leggere questo sito :)

    Marco

  7. […] Rootkit: Nuovi aggiornamenti Condividi Scritto darealtebo. […]

  8. Grazie Marco, sei sempre una fonte inesauribile di preziose informazioni. Spero che tu possa sempre continuare così. :)

  9. che piacere poter leggere le tue news! ben ritornato Marco :-)

    ehm …. anch’io ho molti problemi in questo momento, ridiamoci su ..LOL

  10. ciao marco sono un tuo affezionato lettore ma per chi usa un doppio sistema operativo e cioe’ linux e windows con bootloader GRUB sara’ possibile anche in questo caso che il rootkit sostituira’ L’MBR come hai spiegato nei due tuoi articoli?
    grazie per la collaborazione

  11. Ciao Marco sono un tuo affezionato lettore complimenti per il tuo sito sempre ricco di articoli molto interessanti.
    Per quanto riguarda MBR Rootkit e’ possibile infettare chi usa il doppio sistema operativo Linux e Windows con il bootloader GRUB?
    GRAZIE!

  12. Ciao.
    Scusatemi, ho bisogno di un consiglio urgentemente.
    1 pò di tempo fa ho beccato 1 virus cvg.exe, ke mi ha spento il pc all’improvviso senza poterlo + avviare.
    Ho smontato l’hard disk e rimontatolo sul pc di 1 mio amico, il quale ha rimosso ogni virus, compreso cvg.exe
    Però rimontato l’hard disk sul mio pc, e istallato 1pò di anti rootkit, sono uscite fuori 1 pò di cose sgradevoli, credo siano tracce lasciate..
    In particolare, visto ke di questo si parla in questo tread, Trend Micro Rootkit Buster mi ha rilevato MASTER BOOT RECORD (MBR) SECTOR.
    Posso eliminarlo tranquillamente, oppure eliminandolo elimino anke la scrittura di avvio di windows?’?? Qualcuno sa darmi 1 risposta? Grazie in anticipo. :)

  13. ciao Zack,
    potresti scaricare questo tool gratuito fornito dallo stesso autore di Gmer
    http://www2.gmer.net/mbr/mbr.exe
    quindi segui questa procedura
    # copialo su C:\
    # riavvia in modalita’ provvisoria
    # start - esegui - C:\mbr.exe -f
    # in C:\ si creerà un file .log dove dovrebbe apparire che ha rimosso il rootkit.
    Come spiega Marco nel suo pregevole articolo, questa nuova rookit va a toccare proprio il Master Boot Record.
    Poi riavvia normalmente e lancia il tool PREVX CSI..
    Non dovrebbe più segnalare quanto meno il tipo di minaccia che hai contratto.
    P.S chiedo scusa al proprietario del blog se mi sono permesso di intervenire

  14. Leofelix, sei il benvenuto :)

  15. Ciao Marco! Che fortuna aver trovato questo sito!
    Premetto che di pc non è che ne capisca così tanto……
    Sto avendo problemi da alcuni giorni problemi con un rootkit, come da te suggerito ho lanciato gmer, ed ho trovato una voce rossa asc3550p, l’ho eliminata e sono riuscito ad usare internet tranquillamente. Il problema è che ogni volta che riavvio questo asc3550p si ripresenta e puntualmente con gmer lo cancello ( ho provato a cancellarlo sia dai processi che dai servizi).
    Come potrei fare per eliminarlo definitivamente?
    Ti prego Marco rispondimi, perchè non so più come fare.
    Ciao a presto.

  16. […] MBR Rootkit: Nuovi aggiornamenti […]

Lascia un commento