I saggi su InterLex

Attenti all’hacker, si chiama Sony/BMG…

InterLex n° 334, 3 novembre 2005

Immaginate di voler installare nel computer di qualcuno un software di vostra creazione senza che lui se ne accorga. Non solo non si deve accorgere dell'installazione, ma non deve neanche accorgersi in un qualsiasi momento successivo che il suo computer ospita il vostro software. Insomma, egli non deve avere il benché minimo sospetto che sulla sua macchina vi sia in azione qualcosa di estraneo. E naturalmente il vostro programmino deve essere sempre in azione, ossia deve attivarsi automaticamente alla partenza del computer… e sempre senza dare nell'occhio, né lasciare tracce attive o passive che possano insospettire la vostra vittima.

Si tratta di un problema intrigante, molto interessante dal punto di vista tecnico e niente affatto facile da risolvere. Parliamone un attimo, supponendo per semplicità che la vostra vittima usi un sistema Windows e soprattutto tralasciando, almeno per il momento, un punto fondamentale del discorso: ossia perché potreste voler fare tutto ciò…

Iniziamo dall'installazione, che tutto sommato è la parte più facile. Se non potete mettere fisicamente le mani sulla macchina della vostra vittima, in modo da installare il vostro software a sua insaputa, non avete altra scelta che… fare in modo che sia lui stesso ad installarlo! Ciò si può ottenere attirandolo la vostra vittima in un tranello, portandolo cioè a cliccare in buona fede su un qualcosa di apparentemente innocuo che però, in realtà, effettua nascostamente l'installazione del vostro software. Oppure, mutuando una delle tecniche di diffusione dei virus e dei worm, potete utilizzare uno dei tanti automatismi previsti nei moderni sistemi operativi "amichevoli" (Windows ne è pieno…) per lanciare l'installazione del vostro software come effetto collaterale di un'altra azione svolta dall'ignaro utente: ad esempio la lettura di una e-mail contenente un allegato o l'inserimento di un CD nel drive.

Una volta che il vostro software è felicemente giunto a destinazione, ossia si è installato nel computer della vostra vittima, il primo passo è compiuto ma il percorso non è ancora concluso. Ora dovete fare in modo che esso rimanga sempre attivo, ossia che venga automaticamente eseguito ad ogni successivo avvio del sistema. Anche in questo caso la soluzione risiede negli appositi meccanismi automatici messi gentilmente a disposizione dal sistema operativo: basta ad esempio che il vostro programma sia scritto come servizio di Windows, e registrato come tale, perché il sistema lo avvii automaticamente ad ogni ripartenza del computer. (I "servizi" sono appunto dei "programmi di servizio", generalmente componenti del sistema operativo, che vengono fatti partire automaticamente ad ogni avvio del computer e agiscono in background, ossia "dietro le quinte", anche quando nessun utente locale è collegato al sistema). Meglio ancora, il vostro programma potrebbe essere scritto ed installato come device driver, ossia come componente addizionale del sistema operativo; anche in questo caso esso verrebbe fatto partire automaticamente all'avvio della macchina senza interagire con l'utente, ma con l'ulteriore vantaggio di poter essere avviato prima ancora che Windows stesso completi la sua partenza. (I "device driver" sono quei particolari programmi esterni che si occupano di aggiungere a Windows funzionalità speciali, di solito legati al controllo "a basso livello" di periferiche quali dischi, schermi, dispositivi di ingresso/uscita, e così via). Nel caso più semplice potreste scriverlo come normale "programma utente" e fare in modo che esso venga comunque eseguito automaticamente da Windows alla partenza mediante uno dei tanti automatismi all'uopo predisposti; questa soluzione è la meno elegante ma ha il vantaggio di non richiedere i privilegi di amministratore per essere attuata: ossia può essere compiuta, consapevolmente o no, da qualsiasi utente "normale" di Windows e non necessariamente dal profilo di amministratore del sistema. (Ciò naturalmente è anche uno svantaggio: in questo modo infatti il vostro programma non potrà svolgere molti dei compiti "privilegiati" che sono invece alla portata dei "servizi" e dei "device driver"; ma non si può sempre avere tutto dalla vita!).

A questo punto avete ottenuto già un bel risultato: la macchina della vostra vittima è infatti, a sua totale insaputa, "posseduta" dal vostro software; e questo verrà inoltre attivato automaticamente ad ogni avvio del computer, con maggiori o minori capacità di azione a seconda del modo in cui è stato scritto ed installato. Dovete però risolvere il problema più arduo: come evitare di far scoprire tutto ciò alla vostra vittima, ossia come far passare totalmente inosservata la presenza del vostro software ad una ricerca, intenzionale o casuale, e più o meno approfondita, fatta dal proprietario del computer. È chiaro infatti che se egli trovasse in giro per l'hard disk dei file eseguibili dai nomi nuovi e sconosciuti potrebbe insospettirsi; e analogamente se scoprisse, ad esempio utilizzando il normale "Task Manager", la presenza in esecuzione di processi diversi da quelli solitamente presenti sul sistema.

Per risolvere questo problema la tecnica informatica trascende nel sublime, diventando esoterica e sofisticatissima arte dell'inganno. Occorre infatti fare in modo che il sistema operativo stesso perda cognizione della presenza del nuovo "ospite" indesiderato, in modo che non possa tradirne l'esistenza neppure ad una ricerca mirata. È questo il livello più elevato di perversione al quale si può piegare un sistema operativo: di fatto lo si lobotomizza con precisione chirurgica, costringendolo a dimenticare parte della propria struttura e della propria stessa esistenza!

Ad esempio si può cominciare col modificare il comando che mostra l'elenco dei file contenuti in una cartella, facendo sì che esso ignori un determinato tipo di file: diciamo tutti quelli che cominciano con un carattere predefinito, quale il simbolo di dollaro. Se questa modifica viene fatta dal vostro programma ad ogni partenza del sistema, ed il vostro programma ha proprio un nome che comincia col simbolo di dollaro, il risultato netto è che esso risulterà invisibile ad ogni ricerca: esso infatti non comparirà più in alcun elenco di file presenti sul sistema, a prescindere dallo strumento utilizzato per ottenere e visualizzare tale elenco. In effetti è come se il sistema operativo ne dimenticasse la presenza, in seguito ad una obliterazione programmata della sua capacità di analizzare sé stesso.

Naturalmente però ciò non è sufficiente: affinché risulti completa l'azione di cloaking, ossia di ottenimento dell'invisibilità totale, occorre anche modificare allo stesso modo molti altri comandi e funzioni del sistema operativo. Ad esempio il comando che mostra l'elenco dei processi attivi, grazie al quale altrimenti si potrebbe rilevare l'esecuzione in corso del programma incriminato; ma anche il comando che mostra l'elenco dei device driver da eseguirsi automaticamente alla partenza del sistema, o quello che mostra l'elenco dei servizi da attivare in automatico, e così via. Insomma, per ottenere l'invisibilità assoluta del vostro programma occorre essere dei veri e propri neurochirurghi di Windows, e sapere con precisione dove e come agire di bisturi per provocare solo le amnesie desiderate senza nel contempo produrre indesiderati effetti collaterali. E questo non è affatto facile da fare.

Siete demoralizzati? Pensate che non riuscirete mai a portare a termine il vostro programmino diabolico? Niente paura: la… "buona notizia" è che esistono degli strumenti già belli e pronti per fare ciò che con le vostre terrene conoscenze non sapete fare. Questi strumenti si chiamano "rootkit" (ma qualcuno continua a chiamarli "root kit" con lo spazio, come si faceva ai tempi dei venerabili sistemi Unix per i quali nacquero), e sono appunto degli "attrezzi di lavoro" che consentono di rendere invisibili le tracce della presenza di un determinato software, che altrimenti verrebbero lasciate un po' ovunque dal software stesso e dal sistema operativo. Bello, vero? Sfruttando un rootkit potete quindi coronare infine il vostro progetto: installare nel computer di qualcuno un software di vostra produzione il quale risulti sempre attivo, di fatto prendendo il controllo della macchina, e per di più risulti completamente invisibile ad ogni ricerca, anche quella effettuata dal più scaltro antivirus o dal più agguerrito antispyware.

Bene. Credo che a questo punto avrete già maturato da soli la risposta alla domanda iniziale. A chi serve un rootkit? Ovviamente a chi ha qualcosa da nascondere! O, più precisamente: a chi vuole nascondere ad un legittimo utente il fatto di aver installato, a sua insaputa, un software sul suo sistema. E il fatto di volerne nascondere a tutti i costi l'esistenza già la dice lunga sia sulla legittimità dell'installazione che sulla liceità delle funzioni svolte dal software surrettiziamente installato! Di solito infatti i rootkit vengono usati dagli hacker dopo un'intrusione avvenuta con successo, e servono ad installare sulla macchina violata un cavallo di Troia nascondendone completamente l'esistenza al legittimo utente. In questo modo l'intruso si assicura la possibilità di riguadagnare l'accesso al computer compromesso tutte le volte che vuole, e la sua vittima non si accorgerà mai di nulla. Sono anche noti casi di keylogger o spyware dotati di funzionalità di cloaking tipiche di un rootkit: si tratta di strumenti di spionaggio micidiali, assolutamente invisibili anche agli scanner più evoluti; e non a caso risultano utilizzati da varie agenzie governative o forze dell'ordine istituzionalmente dedicate a sofisticate attività di indagine, quando non decisamente allo spionaggio o al controspionaggio.

Perché questa lunga ed apparentemente divagante premessa? Perché solo adesso il lettore non tecnico può valutare appieno la gravità della scoperta effettuata proprio l'altro ieri da Mark Russinovich, notissimo guru americano di Windows, e rapidamente rimbalzata di blog in blog per tutta la Rete: la Sony impiega da anni su tutti i suoi CD musicali un sistema di Digital Rights Management che è in realtà un vero e proprio rootkit!

In pratica i CD audio prodotti e commercializzati da Sony/BMG non contengono solo musica: essi sono in realtà CD ibridi, e dispongono anche di una parte dati leggibile dai computer la quale contiene un software per la prevenzione della copia denominato XCP e sviluppato dalla compagnia inglese "First 4 Internet". Quando inserite un CD musicale Sony/BMG nel drive del vostro computer per ascoltarlo, la funzione di autoplay di Windows manda automaticamente in esecuzione l'installazione di questo software, che viene presentato all'utente semplicemente come "un player necessario per utilizzare il disco". In realtà questo "semplice player" fa qualcosa di molto più profondo al sistema su cui viene installato: esso infatti si sostituisce ai normali device driver di gestione del CD per poter attuare le limitazioni alla copia ed imporre le altre funzioni di "prevenzione degli illeciti". Dopodiché, per evitare che l'utente possa tentare di inibire o disinstallare tali funzioni di limitazione, il programma di installazione provvede a rendere invisibili i device driver appena installati utilizzando le tecniche di cloaking tipiche dei rootkit. Naturalmente all'utente finale non viene detto nulla di tutto ciò, né oltre tutto si fa menzione del fatto che tale installazione è irreversibile!

Questo fatto è già grave di per sé: installare qualcosa "a tradimento" è certamente una scorrettezza nei confronti dell'utente, e può diventare un vero e proprio illecito se il programma installato altera sostanzialmente e profondamente la possibilità di utilizzo del sistema senza avvertire preventivamente l'utente, senza chiedergli esplicita autorizzazione a fronte di una descrizione dettagliata dello stato delle cose, e senza dargli la possibilità di tornare indietro.

Ma nel caso specifico l'utilizzo della tecnica del rootkit aggiunge ulteriori profili di rischio che rendono tutta la vicenda assolutamente inaccettabile. Ad esempio, l'analisi condotta da Russinovich ha dimostrato che il rootkit Sony rende completamente invisibili, e dunque inaccessibili a qualsiasi strumento di analisi, tutti i file, le chiavi di registro ed i processi il cui nome inizi con la stringa "$sys$"; orbene, questa caratteristica può essere sfruttata da elementi ostili per favorire una diffusione senza precedenti di virus e cavalli di Troia! Infatti su un sistema nel quale è stato installato il sistema XCP basta assegnare ad un qualsiasi programma un nome che inizi per "$sys$" per farlo letteralmente scomparire dalla conoscenza del sistema operativo, e dunque renderlo non più rintracciabile ai normali antivirus! Considerando che i computer "infettati" dal sistema XCP possono essere centinaia di migliaia se non addirittura milioni (basta che almeno una volta negli ultimi anni il proprietario vi abbia ascoltato un CD Sony/BMG per trovarselo installato…) ci si rende conto facilmente dell'estesissima gravità sociale di questo tipo di azione da parte di Sony. E basta fare una ricerca su Amazon con chiavi "Sony" e "Copy protected" per accorgersi che i titoli musicali dotati di protezione XCP sono diverse migliaia, praticamente tutta la produzione Sony/BMG di questi ultimi anni.

Non parliamo poi dei possibili conflitti con altri driver, o con altre protezioni contro la copia, che possono portare il sistema a non funzionare più correttamente. Ciò è perfettamente possibile, anzi diventa addirittura probabile nel momento in cui i componenti del sistema operativo vengono modificati così in profondità. E ancora una volta, la cosa più irritante è che di tutto ciò non viene fatta menzione né nella licenza d'uso del CD né nelle istruzioni di utilizzo del software "player" con esso fornito.

In tutto ciò è interessante notare come la reazione di Sony alla bagarre infernale che si è scatenata su tutta la Rete non si è fatta attendere: dopo solo due giorni dall'annuncio di Russinovich, infatti, la Sony ha reso disponibile la procedura di disinstallazione del sistema XCP, che fino ad ora non era prevista. Tuttavia per ottenerla è necessario contattare il customer service Sony tramite un'apposita form Web nella quale vanno obbligatoriamente indicati, oltre al nome del disco e dell'artista, anche il nome del negozio nel quale il CD è stato acquistato ed il proprio indirizzo di e-mail! E naturalmente Sony ci tiene a specificare che, una volta disinstallato il "player", non sarà più possibile ascoltare il CD sul proprio computer…

E ancora, nella tarda serata del 2 novembre sul sito Sony è apparsa magicamente una pagina di "aggiornamento" del software XCP ad una nuova versione che, guarda caso, rimuove il cloaking dei driver incriminati, rendendoli quantomeno visibili ai normali strumenti messi a disposizione dal sistema operativo. Peccato che il link per il download imponga all'utente l'installazione di un componente ActiveX, che oltre ad avere una funzione ignota esclude di fatto dall'aggiornamento tutti coloro che utilizzano un browser differente da Microsoft Internet Explorer! Insomma, il lupo perde il pelo ma non il vizio…

Saggio pubblicato su InterLex n° 334 del 3 novembre 2005 (Anno IX)
Copyright © 2005, Corrado Giustozzi. Tutti i diritti riservati.

Ultima modifica: 31 maggio 2009
Visitatori dal 6 maggio 2003: 115,594

Torna alla Pagina dei saggi pubblicati su InterLex
Vai alla Pagina dei Commenti

Copyright © 1995-2012 Corrado Giustozzi