Si è diffusa nei giorni scorsi la notizia di un sistema di
DRM usato da Sony, che si installa nel PC all’insaputa dell’utente e si
nasconde molto bene, tanto che occorre una non comune competenza tecnica per
smascherarlo e rimuoverlo senza danni. Non basta: per le sue caratteristiche
può costituire una grave minaccia di per la sicurezza del sistema stesso. Come
funziona?
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
tuta 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 (vedi l'ultima parte dell'articolo La "bozza Corasaniti" è solo un piccolo passo
di Manlio Cammarata)
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…
|