Analisi del MBR Rootkit

E’ di questi giorni la notizia che alcuni ricercatori hanno identificato in Internet un rootkit MBR per Windows.
Negli anni ’80, e comunque prima dell’inizio dell’era Windows NT, non era raro incontrare virus MBR. L’MBR ovvero Master Boot Record, è una zona dell’hard-disk che contiene un elemento chiave della procedura di boot (inizializzazione) del sistema operativo.
Riuscire a nascondere un rootkit (o un virus o un malware qualsiasi) nel MBR significa avere uno strumento potentissimo difficilissimo da rilevare.

Un rootkit MBR ha infatti i seguenti punti forti:

  • Ottiene il controllo nella fase di boot prima che il SO sia caricato
  • Non necessita di file: il codice si nasconde in alcuni settori del disco e non può essere eliminato come un file normale
  • Non necessita di modifiche al registro o altre alterazioni per ottenere l’auto-start: diventa parte integrante del processo di boot
  • Si può’ nascondere controllando solo pochi blocchi del disco

La Minaccia

Questi punti mettono in evidenza la minaccia rappresentata da questo tipo di malware.

Come dicevo prima, questo tipo di virus era abbastanza normale ai tempi del DOS, ma era svanito dall’orizzonte della sicurezza informatica con l’arrivo di Windows.
Infatti Windows NT a differenza di MS-DOS e dei Windows non NT (95,98,Me) non permette l’accesso diretto all’hardware ma solo tramite driver. Questo significa che per poter poter sfruttare un malware MBR bisogna essere in grado in sovvertire il kernel.

I primi che presentarono una tecnica per la realizzazione di un rootkit MBR su Windows furono i ricercatori dell eEye con il progetto BootRoot diedero nel 2005 nuova linfa vitale ai malware MBR, ma l’accelerazione avviene due anni dopo:

  • Il 3 Agosto 2007 durante il convegno Black Hat, i ricercatori indiani di vblabs presentarono un rootkit MBR per Vista: Vbootkit.
  • Il 12 Dicembre 2007, circa 1800 utenti vennero infettati dalla prima ondata di malware basati su rootkit MBR.
  • Il 19 Dicembre 2007 altri 300 utenti sperimentarono a proprie spese il rootkit MBR
  • Il 22 Dicembre 2007 i membri di Malware Research Form scoprono il rootkit.

Il 7 Gennaio 2008 i produttori di anti-virus iniziano a distribuire gli antidoti a questa nuova minaccia.

L’Analisi

Il rootkit MBR si compone di 6 elementi:

  1. Installer
  2. MBR Loader
  3. Kernel patcher
  4. Kernel driver loader
  5. Sectors hider/protector
  6. Kernel driver

1. Installer

L’installer scrive il malware kernel driver negli ultimi settori del disco, quindi modifica i settori 0,61,62:

0 MBR loader
61 Kernel loader
62 Copia del MBR originale

2. MBR Loader

Il loader viene messo nel settore 0 (MBR) dopo che l’MBR originale è stato copiato nel settore 62 (verrà utile più avanti). Questo codice si basa sul BootRoot di eEye modificato per poter patchare il kernel.

3. Kernel patcher

A questo punto il rootkit MBR crea un hook sulla funzione INT 0x13 per poter controllare i settori caricati da NTLDR. Vengono così modificate due aree del kernel:
la prima contiene la chiamata alla funzione nt!IoInitSystem, la seconda è l’ultima parte dell’immagine del kernel.
A questo punto il rootkit esegue la funzione nt!IoInitSystem originale e poi carica il rootkit driver.

4. Kernel Driver Loader

Il rootkit apre “\\??\\PhysicalDrive0\” e legge dal disco i dati relativi al rootkit driver da installare. Una volta caricato il driver in memoria il driver chiama l’entry point del driver stesso.

5. Sectors hider/protector

Il rootkit non sarebbe un rootkit se non avesse la capacità di nascondersi agli anti-virus. Per fare questo mette in pratica alcune tattiche diversive:

  • Modifica (Hook) “\\Driver\\Disk” IRP_MJ_READ: quando qualche programma (probabilmente un anti-virus) tenta di leggere il MBR la funzione modificata dal rootkit restituisce il MBR originale precedentemente memorizzato nel settore 62
  • Modifica (Hook) anche la funzione in scrittura (IRP_MJ_WRITE) per impedire che MBR venga cancellato o sovrascritto

6. Kernal Driver

Infine il rootkit driver è attivo e si occupa delle gestione delle operazioni di networking e della protezione delle zone da nascondere.

In questo articolo ho parlato del MBR rootkit che sta girando in rete da alcune settimane.

Questo genere di minaccia che sembrava ormai caduta nell’oblio è stata riesumata da alcune brillanti intuizioni di abili ricercatori che sono riusciti a individuare e a portare sotto la luce dei riflettori alcune debolezze nella procedura di boot di Windows.

Anche Vista che pure prevede una procedura modificata rispetto alle precedenti versioni di Windows (NT,2000,Xp,2003) non è invulnerabile a questo genere di attacco.