Cosa bisogna sapere sui rootkit
Un esempio che non vi auguriamo: in questo momento il vostro computer potrebbe essere pieno di virus e malware, o addirittura potrebbe far parte di una botnet impegnata in truffe o attacchi informatici su larga scala. Se fosse davvero il caso, probabilmente non vi accorgereste di niente. Questo perché nella maggior parte dei casi il cosiddetto rootkit inganna l'utente, facendogli credere che sia tutto a posto. In pratica il rootkit funge come una sorta di cappello magico, al di sotto del quale si svolgono segretamente tutte le attività criminali degli hacker. Conoscere i rischi e i meccanismi d’azione è utile per proteggersi meglio. Vediamo quali sono le cose più importanti da sapere sui rootkit.
Che cos’è un rootkit? Una definizione
Un rootkit non è un singolo malware, ma un'intera collezione di software dannosi che si insediano in un computer attraverso una falla di sicurezza e consentono agli aggressori un accesso remoto permanente. La caratteristica principale dei rootkit sta nel fatto che possono nascondere se stessi e altri software dannosi dalle scansioni antivirus e dalle soluzioni di sicurezza, in modo che l'utente non si accorga della loro esistenza.
A seconda del livello di autorizzazione, l’hacker potrebbe addirittura ottenere i permessi completi di amministratore (in questo caso si parla di rootkit in modalità kernel), che gli consentirebbero il controllo illimitato del sistema.
Un rootkit è una collezione di programmi nocivi che possono insediarsi a diversi livelli di accesso di un computer, mascherando le attività di virus e software dannosi, agevolando da quel momento in poi l’accesso al sistema da parte degli aggressori.
I primi rootkit apparvero all'inizio degli anni '90 e miravano esclusivamente a sistemi operativi Unix-like, come Linux. Si trattava per lo più di versioni modificate di programmi standard come “ps” (un comando Unix che produce un elenco di informazioni di tutti i processi presenti nel sistema) e “passwd” (comando per cambiare la password di autenticazione di un utente). Proprio in quel periodo si diffuse il termine rootkit: con “root” in Unix viene denominato l’amministratore; il termine “kit” significa a sua volta “strumenti” o “cassetta degli attrezzi”. La parola composta rootkit designa, quindi, un insieme di strumenti software che consentono a un hacker di ottenere i permessi di root di un computer (rootkit in modalità kernel).
In seguito si sono diffusi rootkit per diversi sistemi operativi. La parola “rootkit" ha un significato anche in ambiente Windows e in altri sistemi operativi: alcuni rootkit invadono il kernel, ovvero il nucleo più interno e, dunque, la “radice” del sistema (in inglese “root”) e da lì agiscono.
Come funzionano i rootkit?
Sebbene esistano diversi tipi di rootkit, la loro funzionalità generale è sempre la stessa. Anche la procedura di infiltrazione in un sistema segue sempre lo stesso schema.
Fase 1: infezione del sistema
Nella maggior parte dei casi, un'infezione da rootkit è preceduta da una qualche forma di social engineering: gli hacker sfruttano la parte più debole di qualsiasi sistema di sicurezza: la componente umana. Influenzando o ingannando deliberatamente le persone, gli hacker riescono a ottenere dati di accesso e password. Grazie a questi dati, effettuano il login a un computer e installano il rootkit.
Tuttavia, è anche possibile contrarre un’infezione da rootkit in altri modi, per esempio con drive-by download da un sito web infetto, scaricando un software da una fonte non sicura o facendo clic su un link o un allegato di un’e-mail di phishing.
Ancora, quando un hacker “dimentica” una chiavetta USB con un rootkit in un luogo pubblico. Chi la trova potrebbe irresponsabilmente portare la chiavetta a casa con sé e, per curiosità, collegarla al proprio computer: l’infiltrazione è riuscita. I cosiddetti "evil maid attacks" (in italiano: “attacchi della cameriera malvagia”) funzionano in modo simile: l'hacker installa personalmente il rootkit su un computer incustodito. Il nome si deve allo scenario immaginario in cui una cameriera potrebbe infettare in questo modo i computer portatili degli ospiti di un hotel.
Fase 2: mascheramento (tecnica stealth)
Una volta introdotto nel sistema, il rootkit maschera la sua presenza. A tal fine, esso comincia a manipolare tutti i processi attraverso i quali i programmi e le funzioni di sistema si scambiano i dati tra loro. In questo modo, un programma antivirus riceve durante una scansione solo informazioni falsificate, dalle quali è stato rimosso qualsiasi riferimento al rootkit. Per questo motivo, anche i software antivirus professionali spesso non sono in grado di rilevare il malware sulla base della sua firma o dell'analisi comportamentale (euristica).
Fase 3: installazione di una backdoor
In seguito, il rootkit installa una cosiddetta “backdoor”, cioè una porta posteriore nel sistema, che l'hacker può utilizzare per effettuare un successivo accesso remoto al computer tramite una password spiata o una shell. Il rootkit ha il compito di nascondere ogni processo di login e ogni attività sospetta.
Questo permette all’aggressore di installare un software aggiuntivo come keylogger, spiare gli input dalla tastiera tramite spyware, rubare dei dati o (a seconda del livello di autorizzazione) cambiare le impostazioni di sistema. Spesso, i computer infettati da un rootkit vengono collegati per formare una botnet e coordinati per attacchi di phishing o DDoS.
Cosa distingue i rootkit dagli altri malware?
I rootkit sono chiamati per ovvie ragioni anche “virus nascosti”, anche se per definizione non possono essere classificati come virus. Ma cosa distingue esattamente i rootkit dagli altri tipi di malware?
- Virus: un virus viene veicolato da un file o da un programma eseguibile (è indispensabile l’estensione .exe). Sebbene si riproduca autonomamente, in genere non può espandersi da solo, ma soltanto con l’intervento umano o di altri programmi.
- Worm: questo termine si riferisce a una speciale sottoclasse di virus informatici che possono diffondersi autonomamente attraverso le funzioni di trasferimento dati di un sistema.
- Trojan: non è un virus, ma un malware, ovvero un programma malevolo camuffato da applicazione utile. Gli hacker usano trojan di questo tipo per aprire una porta posteriore nel sistema.
- Rootkit: il rootkit viene anche definito come una sottospecie di trojan. Molti trojan presentano proprietà di rootkit. La differenza principale è che i rootkit si nascondono concretamente nel sistema e di solito aiutano l'aggressore a ottenere i permessi di amministratore.
Quali tipi di rootkit esistono?
I rootkit si differenziano soprattutto per il metodo con cui riescono a mascherare i processi di malware e le attività degli hacker. Quelli più utilizzati sono i rootkit in modalità kernel e modalità utente. Questi strumenti software pericolosi vengono costantemente migliorati dagli hacker, rendendo sempre più difficile ogni tentativo per contrastarli.
Rootkit in modalità kernel
Quando si parla di rootkit, solitamente ci si riferisce a questa tipologia. I rootkit in modalità kernel si insediano nel kernel di un sistema operativo. Quest'area, chiamata anche “ring-0”, presenta il più alto livello di autorizzazioni del computer, consentendo l'accesso approfondito a tutti i componenti hardware ed eventuali modifiche alle impostazioni di sistema. In altre parole, se un aggressore riesce a mettere un rootkit di questo tipo, ottiene il pieno controllo sull'intero sistema.
Tali rootkit sostituiscono parti del kernel attraverso un proprio codice. Nei sistemi operativi Unix-like, questo avviene per lo più tramite estensioni del kernel; da qui il termine “LKM rootkit" (abbreviazione per: loadable kernel modules). Nei sistemi Windows, invece, il kernel viene solitamente manipolato direttamente, coinvolgendo semplicemente nuovi driver di sistema. Indipendentemente dal meccanismo d’azione, il rootkit in modalità kernel può sfruttare questa posizione di partenza vantaggiosa per inviare false informazioni dal basso verso il sistema di protezione antivirus del computer. I rootkit di questo tipo sono, dunque, particolarmente difficili da individuare e rimuovere. Allo stesso tempo, per la loro complessità, sono relativamente rari.
Inoltre, proprio perché complessi, i rootkit in modalità kernel sono soggetti a bug che in alcuni casi possono destabilizzare un sistema infetto. Talvolta l’utente può accorgersi della presenza di malware nel computer a partire da schermate blu inusuali o crash di sistema.
Rootkit in modalità utente
A differenza dei rootkit in modalità kernel, questa tipologia agisce solo a livello utente di un computer, dove si trovano tutti i programmi eseguibili. Poiché quest'area ha il più basso livello di autorizzazione della CPU (ring-3), i rootkit in modalità utente possono consentire all'aggressore un accesso limitato al computer. Questo li rende anche meno complessi e più usati rispetto ai rootkit in modalità kernel, specialmente nei sistemi Windows.
I rootkit in modalità utente si mascherano intercettando e manipolando il traffico dati tra il sistema operativo e i programmi antivirus e di sicurezza installati. A tal proposito vengono utilizzate le tecniche DLL-Injection e API-Hooking: una libreria di codici fornita appositamente (Dynamic Link Library, in breve DLL) è collegata allo scambio di dati e reindirizza le funzioni di alcune interfacce di programma (Application Programming Interfaces, in breve API) al rootkit. In questo modo, esso può eliminare le sue tracce dalle liste dei processi, come il Task Manager di Windows.
Altri rootkit
Oltre a questi, esistono altri due tipi di rootkit considerati relativamente innocui:
- Application-rootkit: la versione originale e allo stesso tempo più primitiva del rootkit. Sostituisce i programmi di sistema con proprie versioni modificate ed è quindi abbastanza facile da riconoscere. Tuttavia, per questo motivo, non è quasi più utilizzato dagli hacker.
- Rootkit di memoria: tali rootkit possono insediarsi solo nella memoria e quindi scompaiono dal sistema non appena questo viene riavviato.
Evoluzione del rootkit
Come molti altri tipi di malware, i rootkit sono in continua evoluzione. Per esempio, sono stati creati i cosiddetti “bootkit”, una forma di rootkit in modalità kernel specializzata nella sostituzione del boot loader di un computer per disabilitare i meccanismi di sicurezza del sistema operativo. Anche gli smartphone (soprattutto quelli con sistemi operativi Android) sono sempre più soggetti a questi malware, specialmente quando si scaricano applicazioni non sicure. In questo caso si parla di “mobile rootkit”.
Nel 2006, un gruppo di ricercatori dell'Università del Michigan fece parlare di sé quando presentò Project SubVirt: un rootkit basato su una macchina virtuale, chiamato VMBR (virtual machine based rootkit). Tali macchine sono solitamente utilizzate per far funzionare diversi sistemi operativi (come Linux e Windows) sullo stesso computer. Utilizzando questa tecnologia, il VMBR dovrebbe essere in grado di spostare un sistema operativo in un ambiente virtuale e quindi agire in modo nascosto. Solo un anno dopo, i ricercatori dell'Università di Stanford hanno dichiarato di essere in grado di rilevare i VMBR senza problemi.
Da allora pare che non ci siano stati ulteriori sviluppi innovativi del rootkit, ma ciò non significa che i rischi siano diminuiti. Ad esempio, l’exploit kit RIG è stato implementato nel 2018 con un rootkit aggiuntivo chiamato CEIDPageLock. Questo si insinua tramite i driver di sistema nei sistemi operativi Windows e prende il controllo del browser. Lo stesso reindirizza poi l'utente a siti web contraffatti in cui avviene il furto di dati per una serie di scopi criminali. Attualmente sono i computer in Cina a essere i più colpiti (dato relativo al mese di agosto 2018). Gli esperti suppongono, però, che in futuro il malware si propagherà oltre i confini nazionali.
Gli exploit kit sono collezioni di strumenti volti a sfruttare (da qui il termine inglese “exploit”) le falle di sicurezza di software popolari come Adobe Flash, Java e Microsoft Silverlight. Raggiungendo le 27.000 infezioni al giorno, RIG è attualmente considerato l’exploit kit più attivo.
Esempi di rootkit conosciuti
Attualmente esistono rootkit per diversi sistemi operativi. Di seguito sono riportati due esempi di rootkit che minacciano i sistemi Windows:
- TDSS aka Alureon (scoperto nel 2007): anche classificato come trojan, il che dimostra quanto siano labili i confini tra questi due tipi di malware. Il rootkit manipola il registro di sistema di Windows per disattivare, ad esempio, il task manager, la funzione di aggiornamento e gli eventuali programmi antivirus esistenti e per impostare successivamente una botnet.
- ZeroAccess (scoperto nel 2011): un altro trojan con proprietà di rootkit. Questo infetta il Master Boot Record (MBR) e un driver di sistema casuale, per poi disattivare la funzionalità sicurezza di Windows, il Windows Defender e il firewall. A questo punto, il computer viene utilizzato per una botnet impiegata per il Bitcoin Mining e per le truffe.
Ma dietro ai rootkit non si nascondono sempre intenzioni criminali di questo genere. Ad esempio, gli emulatori di CD utilizzano questa tecnologia per superare le misure di protezione contro la copia. Il fatto che ciò sia legale o rilevante dal punto di vista penale dipende spesso dallo scopo e dall’entità dell'uso.
Per quanto riguarda la protezione delle copie, tuttavia, non sono solo i consumatori ad aver oltrepassato il confine della legalità con i rootkit: nell'ottobre 2005, Sony, azienda di elettronica giapponese, suscitò uno scandalo quando si scoprì che la protezione anti-copia XCP (Extended Copy Protection) su vari CD musicali del produttore era stata camuffata con un rootkit. L'azienda aveva voluto impedire in questo modo la realizzazione di copie illegali di dischi. Ma allo stesso tempo il malware aveva trasmesso informazioni sulle abitudini private di ascolto dei suoi clienti, violando così le leggi sulla protezione dei dati. Sony ricevette critiche particolarmente forti perché questo rootkit non veniva riconosciuto dai programmi antivirus e dava così la possibilità agli hacker di sfruttarlo per i propri scopi.
Casi simili, come quello verificatosi nel mondo dell’industria del cinema nel 2006 o del gioco per computer EA “Spore” nel 2008 inducono gli esperti del mondo informatico a temere che in futuro non solo gli hacker, ma anche le grandi aziende utilizzeranno sempre più i rootkit.
Come ci si può proteggere dai rootkit?
Poiché il mascheramento è la specialità di un rootkit, di solito è difficile, se non addirittura impossibile, individuarlo e rimuoverlo. Tuttavia, per difendersi si possono adottare alcune misure:
Prevenire un’infezione
Le misure di sicurezza contro i rootkit sono fondamentalmente le stesse che si applicano ad altri tipi comuni di malware:
- Utilizzare programmi di sicurezza sul computer.
- Aggiornare regolarmente il sistema.
- Conoscere le truffe più diffuse su Internet, per esempio il phishing.
- Usare password complesse.
Di seguito, trovate elencati alcuni consigli più specifici su come prevenire le infezioni da rootkit:
- consigli per i più inesperti: utilizzate l’account di amministratore il più raramente possibile, soprattutto quando siete su Internet. Il numero di meccanismi di protezione è notevolmente inferiore a quello dell'account utente tradizionale. Inoltre, poiché l'account utente ha permessi limitati, il danno in caso di infezione da rootkit è meno grave.
- Consigli per i professionisti: per evitare che un rootkit infetti il BIOS e lo renda virtualmente indelebile, è possibile utilizzare una protezione fisica tipo una sorta di ponte (jumper) sulla scheda madre.
Rilevare un rootkit
La maggior parte dei programmi antivirus utilizza le firme per cercare rootkit noti o valutare eventi insoliti come la cancellazione di file per identificare malware sconosciuti. Tuttavia, a meno che un rootkit in modalità kernel programmato male non riesca a farsi notare con schermate blu permanenti, i rootkit di solito non forniscono il minimo indizio sull’infiltrazione nel sistema.
Inoltre, vengono programmati rootkit sempre più sofisticati, il che rende sempre più difficile individuarli. Allo stesso tempo, però, si sono diffusi degli ausili tecnici appositamente progettati per i rootkit, ad esempio il cosiddetto Rootkit Scan: una funzione che è già inclusa in alcuni software di sicurezza, ma per la quale esistono anche programmi dedicati. Tra questi segnaliamo Sophos Anti Rootkit e il Bitfender Rootkit Remover, entrambi disponibili gratuitamente.
Questa scansione del rootkit può anche essere eseguita utilizzando un CD di avvio. Quest’ultimo avvia il computer ai margini del sistema operativo installato, in modo che il rootkit rimanga in uno stato inattivo e con un po' di fortuna possa essere rilevato da una scansione antivirus sul CD.
Rimuovere un rootkit
Purtroppo, non esiste ancora un metodo sicuro al 100% per rimuovere un rootkit da un computer. Anche il tasso di successo di software di scansione professionale come AntiVir, Kaspersky e Microsoft lascia molto a desiderare, secondo numerosi test. Per questo motivo si consiglia, generalmente, di utilizzare almeno tre di questi programmi combinati.
Tuttavia, poiché alcuni rootkit possono mascherarsi profondamente nel BIOS, anche questo metodo non garantisce una sicurezza assoluta. Spesso rimangono solo la pulizia del supporto dati e la reinstallazione completa del sistema operativo, per eliminare una volta per tutte questo malware ostinato.
Conclusione: il pericolo rimane
I rootkit sono una minaccia particolarmente persistente e possono dare agli hacker il pieno controllo del vostro computer. Ma conoscere il pericolo è il primo passo per proteggersi un po' di più. La misura di protezione più importante è, come sempre, la prevenzione dell'infiltrazione nel sistema, in quanto i rootkit sono difficili da rilevare e ancora più difficili da rimuovere. Spesso l'unica cosa che resta da fare è configurare nuovamente il sistema.
In occasione della conferenza “Black Hat” (gennaio 2006), sono stati tuttavia segnalati i rootkit che possono sopravvivere pur riformattando il disco rigido senza subire danni, per esempio manipolando l'ACPI (Advanced Configuration and Power Interface), che è responsabile della gestione dell'alimentazione di un computer, o stabilendosi nel BIOS. Pertanto, finché non si troverà una valida soluzione al problema, i rootkit, in quanto strumenti altamente complessi utilizzati dagli hacker, continueranno a rappresentare un pericolo.