
» continua
» continua
Si può dire che oggi uno dei più complessi e più letali codici maligni sia il “rootkit”. Come lascia intendere il suo nome, questo tipo di malware può guadagnare l'accesso alla “root”, il più alto livello di privilegio nei sistemi Unix, e anche effettuate il deployment del suo “kit” di piccoli, e spesso dannosi, pacchetti eseguibili. Questo codice può fornire un accesso continuativo e non identificabile a una qualsiasi macchina.
La potenza degli odierni rootkit sta nel fatto che possono accedere al kernel del sistema operativo. Questi roootkit “modalità kernel” girano allo stesso basso livello di tutti i processi sicuri del sistema, garantendo così il controllo del sistema ma anche disponendo di un efficace metodo per rimanere nascosti.
La capacità dei rootkit di consentire l'accesso al sistema senza essere identificati ha posto una nuova sfida alla comunità di sicurezza. Per impedire la modalità kernel del malware e le violazioni del digital right management (DRM), Microsoft ha imposto una policy nel suo sistema operativo Vista, che richiede le firme digitali per tutti i driver dei dispositivi. Questo meccanismo di sicurezza, tuttavia, è stato aspramente criticato perché impedisce alle terze parti di sviluppare driver legittimi. E anche se la policy è stata pure ritenuta parzialmente responsabile dell'incompatibilità di Vista con parecchie periferiche, va sottolineato che ha impedito la creazione di una variante dei rootkit, una reminescenza dei virus del boot sector.
Il bootkit
Prima dell'avvento dell'interconnettività e del
Web, il codice maligno viaggiava su media di storage portatili, come CD-ROM o
floppy disk. Il malware, solitamente un virus nascosto nel boot sector di un
disco, agiva da parassita digitale, infettando il Pc una volta introdotto nel
processo di boot. L'infezione avrebbe compromesso la macchina alterando il Master
Boot Record dell'hard disk, ovvero il codice del boot sector di ogni disco, o la
tabella di partizione. Oggi, di virus del boot sector se ne vedono raramente, ma
ritornano alla mente quando si discute della nuova tecnologia dei rootkit che
può eludere l'obbligo della firma per ogni driver imposto da Vista.
Un "bootkit" ottiene l'accesso al kernel e un "nascondiglio" sicuro manipolando il processo di boot. Dal punto di vista funzionale, i bootkit sono differenti dai rootkit. Anzitutto seguono una diversa via per l'accesso. Il tradizionale uso dei rootkit ha elevato i privilegi durante il funzionamento del sistema operativo. I bootkit sono installati dal boot sector di un dispositivo esterno e rimangono nella memoria durante il processo di boot del sistema.
Questo concetto è stato introdotto per la prima volta nel 2005, quando i ricercatori di sicurezza di eEye Digital Security hanno messo a punto un metodo che permette l'exploit del BIOS durante la fase di startup. Il loro progetto “BootRoot” ha introdotto il codice di boot sector personalizzato, permettendo un accesso real mode “eversivo” e persistente al kernel di Windows NT.
Il VBootkit
Alcuni ricercatori hanno introdotto il "VBootkit", che permette di destabilizzare il kernel anche attraverso un codice di boot personalizzato. Malgrado alcune controverse somiglianze fra i due, il più recente VBootkit integra alcune istruzioni modificate nel codice che gli consentono di funzionare con lo startup aggiornato di Vista, che dispone di un'architettura di boot modificata. Indipendentemente dalla piattaforma di boot usata, tuttavia, ci sono parecchie tecniche di bootkit che sfruttano questo processo di startup.
Il codice personalizzato del bootkit "attacca" la procedura di startup dopo che è stato eseguito il codice presente nel ROM BIOS, ma prima che sia caricato il reale Master Boot Record (MBR). Una volta in memoria, il codice esegue un'istruzione di interrupt software, conosciuta anche come “hooking”. In questo modo, si aggancia all'INT 13, un'istruzione che permette la lettura sequenziale dei settori. Fatto ciò, il bootkit utilizza alcune sequenze di patching durante il processo di boot per cambiare la sua struttura e alterare il flusso logico.
Nelle varie fasi sono impiegati diversi metodi di modifica del codice per eludere le firme digitali e i checksum, i bit usati per verificare l'integrità dei file. Affinché il codice del bootkit non possa essere identificato, vengono utilizzate parecchie vie alternative per la sua riallocazione in memoria. I rootkit possono anche ricalcolare e sostituire i checksum.
Una volta residente e non identificabile all'interno dello spazio del kernel, un rootkit può eseguire payload supplementari. Come minimo, viene aperta una porta, che fornisce all'hacker “maligno” l'accesso senza restrizioni alla macchina della vittima. I payload supplementari dei rootkit possono includere metodi per venire in possesso di username e password, disabilitare determinate applicazioni (spesso suite di sicurezza), utilizzare la macchina come proxy per gli attacchi o ancora per diffondere il proprio rootkit.
Qualche consiglio per
difendersi
Questi metodi di codice macchina usati per alterare le istruzioni nel kernel dimostrano la pericolosità di tale sottoclasse di malware. Mentre esiste un software per l'individuazione e la rimozione dei rootkit, il bootkit sottolinea invece l'importanza di un discorso di prevenzione, a livello di policy di accesso all'interno di una strategia generale di sicurezza.
Proteggere dalla tecnologia del bookit significa proteggere il processo di boot della macchina. Il BIOS del sistema può essere configurato per disabilitare tutti i dispositivi di caricamento del sistema tranne il disco fisso. Di nuovo, per impedire tutti le modifiche non autorizzate, il BIOS del sistema può essere protetto tramite password.
Si può bloccare fisicamente il case del computer limitando l'accesso alla motherboard che contiene il chip del BIOS e la batteria del CMOS, i quali potrebbero essere entrambi utilizzati per cancellare la password del BIOS. Per i sistemi situati nelle aree pubbliche, considerate la potenziale rimozione dei media esterni, quali drive per floppy e CD/DVD. Potrebbe essere utile anche disabilitare le porte USB/FireWire.
Indipendentemente dal modo in cui entrano nello spazio del kernel del computer, i rootkit sono una minaccia reale. Seppure rappresentino una piccola frazione del malware odierno, la maggior parte del software di sicurezza è “un passo indietro” e non può rilevare la loro presenza. La protezione a livello di perimetro e l'uso di account utente standard (non amministratori), uniti con uno stretto controllo dei servizi attivi, costituiranno una forte difesa della rete contro la penetrazione dei rootkit. È importante che i responsabili della sicurezza IT siano aggiornati sui trend della tecnologia del rootkit oltre che sullo sviluppo delle tecniche di difesa da parte degli sviluppatori.
