Il caso Sony-BMG
La parola rootkit sta diventando sempre più popolare in rete anche a causa della vicenda
Sony-BMG.
Alcuni mesi fa il programmatore Mark Russinovich scoprì che alcuni CD della casa
discografica installavano automaticamente una protezione anticopia nel sistema appena caricati
nel lettore.
Il particolare sconcertante è che l'installazione di questa protezione avveniva in maniera del
tutto silenziosa e senza alcuna autorizzazione da parte dell'utente, ma non solo.
Attraverso tecniche di rootkit veniva resa completamente invisibile e impossibile
da rilevare nel computer.
Se da una parte la Sony-BMG tentò di tutelarsi attraverso questa procedura, dall'altra violò in
modo pesante la privacy e la sicurezza degli utilizzatori che si videro installare del software
senza nemmeno essere stati interpellati.
La casa discografica cercò di correre ai ripari fornendo un correttivo che consentisse di rimuovere
la protezione: il solo risultato che ne derivò fu quello di rendere impossibile la lettura dei CD.
E così tuttora sono ancora in corso i risarcimenti per gli utenti.
Proseguendo nell'articolo capiremo cos'è e come funziona un rootkit e perchè la sua presenza
in un computer può essere molto pericolosa.
Come funziona un rootkit
La crescente diffusione dei rootkit ha spinto gli esperti del settore ad utilizzare un nuovo termine
per per identificare i malware facenti uso di tali tecniche: ghostware (da ghost
= fantasma e software = programma).
Questo termine non può essere più azzeccato. Lo scopo dei rootkit è proprio quello di rendere
completamente invisibile qualcosa (files, cartelle, chiavi di registro, porte aperte ecc.)
in un sistema. E per completamente invisibile intendo non solo ad una normale ricerca, ma anche a
scansioni antivirus, antispyware, ecc.. Non ha alcuna importanza che essi siano aggiornati: come si
fa a riconoscere qualcosa che non si riesce a vedere?
Per chiarire il funzionamento di un rootkit partiamo da un concetto base.
Il sistema operativo ed i programmi dialogano tra loro attraverso un insieme di funzioni, dette
API di sistema.
Le funzioni API che riguardano il filesystem hanno il compito di chiedere al sistema e di girare
ad un'applicazione informazioni sui dati registrati nel disco rigido.
Per raggiungere il suo scopo il rootkit agisce proprio su questo 'tramite': intercetta le
risposte che le funzioni API restituiscono alle applicazioni e rimuove da esse qualsiasi riferimento
riguardante l'oggetto che intende occultare.
E' ovvio che le applicazioni non potranno 'vedere' l'oggetto nascosto non avendone ricevuto alcuna
informazione.
Generalmente un rootkit viene lanciato ad ogni avvio del sistema operativo attraverso una chiave
di registro resa anch'essa invisibile mediante la tecnica appena vista. Una volta attivo può
operare in due modi come qualsiasi software: user-mode e kernel-mode.
I programmi che girano in user-mode sono più limitati, nel senso che operano in un'area ristretta
della memoria e non possono in alcun modo accedere ad altre aree della memoria stessa (come ad
esempio un semplice programma).
Il kernel-mode al contrario consente un accesso illimitato: ciò significa che un software in kernel
può anche andare a modificare e sovrascrivere altri programmi (persino il codice del sistema
operativo) presenti in memoria. E' il caso dei device driver, ovvero i driver delle
periferiche. Per girare in kernel-mode un programma deve però essere avviato con i privilegi
di amministratore.
Questa spiegazione per chiarire che i rootkit sono al momento classificati proprio in
user-mode e kernel-mode in base a come agiscono nel sistema.
Rootkit e sicurezza
Ma allora un rootkit è nocivo oppure no?
La risposta è una via di mezzo: dipende. Dipende dall'uso che se ne vuol fare.
Dopo aver letto come funziona avrete sicuramente capito che un rootkit non è un virus, nè un
cavallo di troia, nè un worm. Insomma non è un malware. Il termine rootkit serve solamente
ad identificare le procedure e le tecniche mediante le quali si cerca di occultare qualche
oggetto nel sistema. Bisogna vedere CHE TIPO di oggetto...
Qualche esempio pratico.
Lo sapevate che Norton SystemWorks contiene un rootkit? Vi siete mai chiesti come mai, dopo averlo
installato, il normale Cestino di Windows vi compare come protetto da Norton ed è possibile
ripristinare i files anche una volta cancellati?
Semplice. Perchè i files non vengono rimossi fisicamente dal disco ma solamente occultati con
tecniche di rootkit.
Anche Kaspersky utilizza queste metodologie, ma a fini 'velocistici'. Dopo aver scansionato un
file, l'antivirus 'appende' ad esso un Alternate Data Stream (non mi dilungo sulla spiegazione
del concetto per non uscire dal tema dell'articolo, comunque pensate all'ADS come ad una sorta
di 'commento' o 'post it') in cui sono contenute le 'impronte digitali' dell'oggetto. Durante
un successivo controllo il file viene ignorato se dal confronto con le informazioni dell'ADS non
risultano occorse modifiche.
Kaspersky occulta con un rootkit i propri ADS per proteggerli da occhi e modifiche indiscrete.
Dopo questi esempi di rootkit 'benevoli', le note dolenti. Pensate ad un malware: quanto sarebbe
difficile da scovare e per quanto potrebbe 'lavorare indisturbato' se includesse un rootkit capace
di proteggerlo da antivirus e antispyware? E purtroppo questa è la dura realtà, perchè di malware
simili ne esistono già diversi in circolazione.
Metodi di difesa
Il miglior metodo di difesa resta e resterà sempre la prevenzione.
Un rootkit può essere rilevato e bloccato in due modi prima che si installi nel sistema:
- durante una normale scansione viene individuata la minaccia in un programma di installazione
che la contiene;
- all'atto dell'installazione del rootkit nel sistema viene bloccato il procedimento
'sospetto'. Questo tipo di individuazione potrebbe essere preda di falsi positivi poichè
esistono software benevoli che si comportano in maniera simile (si pensi ad un programma che per
funzionare correttamente necessita di installare un driver di periferica).
Questi due compiti sono svolti da antivirus e antispyware: è come beccare un normale virus.
Se invece vi doveste trovare a combattere con un ghostware già presente nel sistema non tutto è
perduto.
Anche se le scansioni tradizionali non avrebbero alcun effetto, il punto debole esiste. Per quanto
invisibile il rootkit deve per forza essere fisicamente presente nel disco fisso.
Ma come è possibile rilevare la sua presenza? Semplicemente eliminando il collegamento tra
applicazioni e sistema operativo dove il rootkit agisce. In parole povere bypassando le
funzioni API.
I programmi antirootkit scansionano il sistema in due modi: prima viene eseguito un controllo
utilizzando le normali funzioni API e successivamente un'altro usando funzioni a bassissimo
livello in grado di accedere direttamente ai dati contenuti nel disco rigido.
Differenze nelle due scansioni stanno ad indicare che qualche ghostware sta occultando oggetti nel
sistema.
Attualmente BlackLight e RootkitRevealer sono a mio avviso i tools migliori per
l'individuazione dei rootkit.
BlackLight è
sviluppato da F-Secure, ancora in versione beta e utilizzabile fino al 1 maggio 2006.
Il programma è semplice e con una chiara interfaccia grafica, inoltre non richiede installazione.
Dopo aver accettato i termini di licenza sarà possibile effettuare la scansione del sistema alla
ricerca di rootkit. BlackLight consente anche la loro eliminazione: nell'immagine di seguito il
tool sta ripulendo il sistema da Hacker Defender:
Il padre di RootkitRevealer è Mark Russinovich, lo stesso programmatore che ha scoperto il rootkit contenuto nei CD della Sony-BMG.
Anche questo piccolo programmino è stand-alone (utilizzabile senza installazione), molto semplice
e compatto. L'unica pecca è che consente solamente l'individuazione dei rootkit ma non la loro
rimozione.
Nella figura che segue RootkitRevealer ha rilevato nel sistema sempre Hacker Defender.
Manca ancora la sicurezza totale
L'utilizzo degli antirootkit purtroppo non ci da la certezza assoluta che il nostro sistema
sia pulito poichè si basano sulla premessa che nessun ghostware in kernel-mode sia in grado di
intercettare le funzioni a bassissimo livello.
Nel caso del rootkit Hacker Defender versione Brilliant questa premessa viene
purtroppo scardinata.
A tal proposito sembra che l'unico tool in grado di dare certezza definitiva sull'assenza di
qualsiasi rootkit sia un progetto di Microsoft denominato Strider Ghostbuster.
Il programma effettua una scansione normale del sistema (intesa con utilizzo delle API), quindi ne
salva i risultati.
Il computer viene riavviato ed attivato attraverso un CD-ROM pulito attraverso il quale è possibile
leggere in maniera indipendente i dati contenuti nell'hard disk. Eventuali rootkit non possono
sfuggire al controllo perchè l'avvio attraverso il CD ne impedisce l'esecuzione con Windows.
Differenze nelle due scansioni indicheranno la possibile presenza di programmi ghostware.
Purtroppo il progetto Strider Ghostbuster è attualmente solamente interno alla Microsoft e non è
dato sapersi se verrà ufficializzato e distribuito in futuro.
Bene siamo giunti alla fine dell'articolo. Spero di aver trattato il tema in maniera chiara e
comprensibile e di aver fatto luce su questa nuova minaccia informatica senza creare inutili
allarmismi, ma piuttosto invitando a tenere alta l'attenzione.
|