giovedì 8 dicembre 2011

ZeroAccess: pericoloso rootkit inganna gli antivirus, tool di rimozione


Tra le infezioni più diffuse sotto Windows, le più pericolose tipologie di malware sono i rootkit. Si tratta di codici malevoli in grado di modificare il funzionamento del sistema operativo al fine di evitare l'individuazione da parte dei software di sicurezza, rimanendo nascosti al sistema operativo e agli utenti. Uno degli ultimi pericolosi rootkit scoperti in Rete si chiama ZeroAccess, malware che conquista il podio nella classifica delle minacce più avanzate degli ultimi anni, insieme ai famosi TDL, Rustock e Mebroot. 

Molto diffuso nei canali illegali preposti alla diffusione di crack e programmi pirata, nonchè sui siti vietati ai minori, Zero Access, una volta eseguito bypassa i controlli dell'User Account Control (UAC) dei sistemi operativi Windows Vista e Seven e guadagna i privilegi di amministrazione, così da poter installare i propri driver direttamente nel kernel di Windows. Il trojan infetta casualmente uno dei driver del sistema operativo, sovrascrivendolo col proprio codice, in maniera da essere eseguito all'avvio di Windows senza aggiungere alcuna chiave specifica al registro di sistema. Memorizza poi i suoi dati in % SystemRoot% \ system32 \ config \ con un nome casuale.

Una volta che si avvia l'infezione, ZeroAccess crea un proprio spazio all'interno dell'hard disk, in cui il rootkit salva ulteriori componenti dell'infezione e una copia dei driver di sistema che è stato sovrascritto. Questa sorta di partizione viene crittografata in  modo tale che un eventuale accesso in lettura dei dati da parte del software di sicurezza non possa fornire alcun risultato utile all'individuazione. I dati vengono dunque codificati e decodificati in tempo reale dal rootkit, così da avere accesso esclusivo alla partizione. Una delle caratteristiche di Zero Access è la singolare capacità di bloccare qualsiasi software antivirus che tenti l'analisi del sistema infetto. 

Il rootkit crea infatti un falso file eseguibile che viene eseguito ed appena l'antivirus lo individua e tenta di bloccarlo viene a sua volta bloccato. La tecnica del rootkit è molto aggressiva ed è in grado di rendere inefficaci il 90% dei software di sicurezza. Per aver successo, l'attacco si svolge su due fronti: il primo avviene iniettando del codice nocivo all'interno del processo dell'antivirus, distruggendo il processo antivirus al suo interno. Il secondo attacco avviene modificando le regole ACL (Access Control Lists) di esecuzione del file relativo all'antivirus, bloccandone le successive esecuzioni.


Per evadere il controllo del firewall installato sul PC della vittima, ZeroAccess implementa la comunicazione con i propri server totalmente in kernel mode, comunicando quindi a bassissimo livello con i driver di Windows preposti al controllo del traffico Web. L'intera comunicazione è criptata con algoritmo RC4 che utilizza un sistema di generazione della password per scaricare eventuali aggiornamenti o ulteriori componenti del proprio codice, molto simile a quello utilizzato dai sistemi bancari per garantire le transazioni online. 

La password viene generata in tempo reale basandosi sulla data e l'ora. Questo sistema rende difficile l'analisi delle società antivirus che tentino di analizzare cosa viene trasmesso tra rootkit e server remoto. Inoltre, l'ultima versione del rootkit individuata da Webroot, modifica la crittografia in modo che, mentre viene ancora utilizzato l'algoritmo RC4 come base, implementa la crittografia in modo diverso. Il rootkit genera ancora un RC4 S-Box con la chiave di crittografia recuperata dal sistema infetto, anche se genera poi un altro S-Box, i cui dati sono quelli del primo S-Box, ma invertiti.



ZeroAccess utilizzerà queste due keystream per crittografare e decrittografare i file di permutazione dei bytes. La cartella in cui il rootkit archivia i propri file si trova nel percorso: C: \ WINDOWS \ $ $ NtUninstallKBxxxxx, dove Xs rappresenta un numero univoco generato dalle caratteristiche del sistema infetto. Questo sistema è molto familiare, perché Windows disinstalla gli aggiornamenti per creare cartelle con questa stessa denominazione in ogni computer quando installa le patch

Ogni volta che il rootkit deve leggere o scrivere all'interno di questa cartella, il disco I / O deve passare attraverso il dispositivo rootkit (con il nome di ACPI # PNP0303 # 2 & da1a3ff & 0), in modo che il driver in modalità kernel è in grado al volo di cifrare e decifrare. Tuttavia, nonostante tutti gli aggiornamenti, la logica di infezione rimane la stessa, il codice è stato modificato per aumentare il livello di complessità. Il driver del rootkit kernel mode aggancia l'oggetto Disk.sys DriverExtension in modo che dirotti LowerDeviceObject, consentendo di intercettare ogni pacchetto inviato dal driver di sistema Disk.sys ai dispositivi più bassi nello stack. Il rootkit utilizza questo filtro per nascondere il driver infetto.


Quando un software di sicurezza effettua una scansione del sistema, e cerca di aprire un handle per il falso processo, l'auto-difesa driver del rootkit ucciderà il programma di sicurezza, iniettando il payload con un codice che richiama l'ExitProcess () chiamata API. Poi, il rootkit rompe le impostazioni ACL del file in modo che il file non può essere più eseguito a meno che le impostazioni di default ACL vengano ripristinate. Nel precedente aggiornamento, ZeroAccess ha esteso questa efficace routine di difesa per monitorare l'accesso al suo dispositivo ACPI # PNP0303 # 2 & 0 & da1a3ff. 

Se qualsiasi software tenta di aprire un handle per il dispositivo, senza specificare il percorso completo del contenuto (ad esempio, "ACPI # PNP0303 # 2 & da1a3ff & 0 \ L \ xxxxxxx"), il rootkit lo interpreta come un tentativo di analizzare il suo dispositivo e utilizzando lo stesso processo uccide il file. Questo nuovo approccio permette la diffusione del rootkit che è in grado di aggirare in modo efficace e disabilitare la maggior parte delle soluzioni di sicurezza.

ZeroAccess è sicuramente una delle più avanzate modalità kernel rootkit disponibile oggi. E' un'infezione particolarmente complessa anche perchè il team di sviluppo è sempre attivo ed è in grado di modificare il codice malware in tempi rapidissimi. Da inizio dell'anno è stato possibile verificare almeno 5 cambiamenti radicali nel codice del rootkit. Per difendersi dall'infezione ZeroAccess evitare di navigare in siti Web poco raccomandabili. Inoltre, nell'uso quotidiano del PC si consiglia l'utilizzo del sistema operativo tramite account limitato. 

Infine, utilizzare un sistema antivirus che sia costantemente aggiornato. Qualora l'infezione di ZeroAccess fosse già attiva, si possono utilizzare degli strumenti anti-rootkit specializzati per rilevare e rimuovere ZeroAccess come, ad esempio, lo strumento messo a disposizione da Bitdefender. Occorre precisare che il programma funziona esclusiva,mente nei sistemi Windows a 32 bit, questo perchè l'infezione ZeroAccess colpisce esclusivamente i sistemi a 32 bit e non quelli a 64 bit. Dopo aver scaricato ed eseguito lo strumento, bisogna riavviate il PC per completare la procedura di disinfezione.

5 commenti: