Dobbiamo fare qualche passo indietro, sfogliare le pagine della nostra memoria per ricordarsi di Brain, il primo virus per IBM-PC documentato. Brain era un boot sector virus con tecnologia stealth, capace di nascondersi prendendo il controllo dell’INT 13h, un interrupt utilizzato per il controllo diretto dell’accesso ai dischi. Ogni qualvolta si tentava di leggere il settore di boot del disco infetto, Brain mostrava la copia originale del boot sector.

Brain Int 13h hook

Da Brain in poi sono stati migliaia i virus che hanno utilizzato la stessa tecnologia (o più avanzate) per rimanere invisibili agli occhi dell’utente e degli scanner antivirus, alterando le funzioni basilari e compromettendo così il funzionamento del sistema operativo.

Era il tempo di Brain, Stoned, Tequila e tanti altri famigerati nomi. Questa tipologia di infezione con il passare degli anni scomparse, lasciando il posto ad altri tipi di malware.

Oggi la tipologia di infezione più complessa è senza ombra di dubbio il rootkit. Techicamente parlando, le modalità con cui un rootkit compromette a basso livello il sistema operativo è allo stesso tempo affascinante e pericoloso.

Abbiamo avuto modo di vedere differenti tecniche di attacco utilizzate per compromettere il sistema operativo e nascondere le componenti dell’infezione all’interno del pc. Ogni volta, tuttavia, la guerra è stata combattuta dall’interno del sistema operativo, una continua guerra tra i ricercatori delle società antivirus e malware writer per riuscire a garantirsi il controllo del pc. Solo ultimamente abbiamo visto alcuni proof of concept di rootkit che possono compromettere la macchina fuori da Windows – vedi SubVirt di Microoft o la Bluepill di Joanna Rutkowska. Entrambi i progetti molto molto interessanti ma, fortunatamente, restano al momento solo proof of concepts – ciò significa che il malware in the wild dovrebbe avere la priorità.

Qualcosa però sta cambiando. Nel 2005 alcuni ricercatori della eEye Digital Security pubblicarono un nuovo progetto, chiamato BootRoot. Il progetto era essenzialmente un nuovo tipo di rootkit che tentava di compromettere Windows dall’esterno, sovrascrivendo il Master Boot Record con del codice che aveva la capacità di modificare il driver di Windows ndis.sys sin dall’avvio.

Qualche giorno fa GMER, l’autore di uno dei più noti tool antirootkit gratuiti, ha pubblicato un’interessante e dettagliata analisi di ciò che potrebbe diventare il nuovo trend delle infezioni: sfortunatamente, quel proof of concept chiamato BootRoot è ora in the wild.

Posso confermare la diffusione in the wild di questa infezione perché abbiamo ricevuto delle segnalazioni durante lo stesso periodo segnalato da GMER nella propria analisi. GMER riporta inoltre che la scoperta è stata effettuata da due membri del MR Team, Tammy e MJ.

L’infezione si diffonde attraverso alcuni siti web che ospitano exploit studiati per infettare pc con software e/o sistema operativo non aggiornati. Questa tipologia di infezione è stata vista spesso in azione durante il 2006 e 2007 – Gromozon è solo uno dei vari esempi.

Gran parte dei siti web monitorati che vengono utilizzati per diffondere questa infezione sono iniettati in iframe nascosti all’interno di pagine web compromesse – una tattica molto diffusa negli ultimi periodi.

Abbiamo visto che uno dei paesi più esposti all’attacco è l’Italia, poiché i siti web ospitanti il malware sono stati più volte utilizzati in vari attacchi locali durante i quali sono stati compromessi siti web.

Iframe drops MBR rootkit

Una volta che il dropper viene eseguito, sovrascrive il master boot record con il proprio codice e memorizza una copia del mbr originale al settore 62 del disco, appendendo il vecchio mbr a del codice proprio. Codice del malware viene aggiunto anche nei settori 60 e 61. Il driver del rootkit viene poi scritto in uno spazio libero e inutilizzato dell’hard disk, solitamente gli ultimi settori del disco. Il codice scritto nel MBR sarà responsabile del caricamento del driver vero e proprio nel sistema.

Al successivo riavvio del sistema (il malware può programmare un reboot automaticamente) il codice scritto nel master boot record prende il controllo dell’Int 13h in modo tale da poter controllare qualunque cosa venga caricata dal sistema operativo. Questa posizione gli permette di poter modificare il kernel on-the-fly non appena viene letto dall’hard disk.

MBR Rootkit code

Il codice modifica il kernel in modo tale che il driver del rootkit sia caricato nel sistema. Nessuna chiave di registro è necessaria, nessun file è presente.

Per nascondersi all’interno di Windows, il rootkit modifica le routine IRP_MJ_READ e IRP_MJ_WRITE del driver disk.sys, responsabile in Windows dell’accesso ai dischi. Quando si tenta di leggere il Master Boot Record, il rootkit mostrerà come risposta il codice memorizzato al settore 62, cioè il codice originale. In aggiunta, il driver è responsabile di alcune connessioni verso host remoti. La maggior parte del codice del MBR utilizzata dal malware è stata spudoratamente copiata dal progetto BootRoot.

In alcuni test preliminari Windows Vista è risultato solo parzialmente vulnerabile: se l’UAC è disabilitato, il rootkit può sovrascrivere il Master Boot Record ma, se l’UAC è abilitato, il tentativo viene bloccato. Inoltre, anche se il codice viene scritto nel MBR, il rootkit non riesce a prendere il controllo del sistema a causa del processo di boot differente da Windows XP a Windows Vista. Il malware, che riconosce il giusto codice da modificare nel kernel attraverso una signature, non riesce nell’intento poiché la signature non è valida per Windows Vista.

Tecniche da vecchia scuola? La tipologia di attacco è molto simile a Brain e ad altri vecchi virus, tuttavia il concetto in sé di rootkit è vecchio.

Ora che questa tipologia di rootkit è in the wild dovremo aspettarci una nuova ondata di attacchi simili, soprattutto perché gran parte delle attuali tecnologie antirootkit sono inefficaci contro questa minaccia.

In aggiunta a tutto ciò gran parte delle soluzioni antirootkit falliscono tutt’ora ad individuare correttamente alcuni rootkit che agiscono dall’interno di Windows, anche perché i malware writer possono utilizzare diversi trucchi e tecniche molto difficili da individuare.

Ora la battaglia sta lasciando il campo del sistema operativo e si sta spostando all’esterno.

(Prevx blog)