13 dicembre 2007

C'è un intruso per ogni computer......


Nell'era della comunicazione i computer rivestono un ruolo chiave. I dati che essi elaborano e la traccia dell'uso che ne viene fatto possono rappresentare una risorsa di estrema importanza per microspie specializzate, sia "reali" che "virtuali".


Introduzione

Il fatto che il computer, in senso lato, sia uno strumento di comunicazione valido e flessibile è ormai evidente a tutti.
Se ci si ferma a riflettere sulla quantità di dati quotidianamente elaborati e trasmessi da un qualunque sistema informativo risulta chiaro come l'infrastruttura informatica sia diventata indispensabile: le informazioni memorizzate nei sistemi, la connettività tra questi e la continuità del servizio sono diventate preziose e irrinunciabili.
Il valore dell'informazione di cui parliamo è quasi sempre legato alla riservatezza e all'integrità dei dati, problemi di sicurezza che accomunano i "dati sensibili" e che sono stati finalmente recepiti in ambiente tecnico e legale.
Il dato informatico, per la sua natura "non fisica", oltre a godere di innumerevoli vantaggi in termini di gestione è soggetto ad una serie di rischi elevati, ad esempio la sua sottrazione (copia) non lascia alcuna traccia. Inoltre esiste sempre la possibilità che un dato residente su un sistema interconnesso ad altri sia osservato attraverso mezzi puramente logici non tracciabili.
Al di là della possibilità di trafugare documenti o dati strutturati da sistemi preposti unicamente al relativo trattamento, esiste anche la possibilità del controllo remoto di singole postazioni di lavoro. Con l'evoluzione dell'hardware e del software, infatti, i terminali sono stati sostituiti da personal computer con intelligenza e memorie di massa autonome. Questi sono impiegati dagli utenti per compiere una vasta gamma di operazioni che risultano essere in una mole di informazioni di grande valore per un eventuale malintenzionato.
Il tracciamento delle operazioni compiute su un personal computer è il tema che intendiamo trattare.

Intercettazione dei dati in transito sulla rete

La più semplice minaccia alla privacy delle attività compiute su un personal computer collegato ad Internet è la possibilità di analizzare il traffico generato da questo in rete.
Per poter intercettare i dati scambiati da un PC in rete è sufficiente:
- Controllare, potendo manipolare fisicamente, la connessione del PC ad Internet (es. connessioni telefoniche PSTN (1) e ISDN (2) o connessioni a banda larga come ADSL (3) , etc.);
- Controllare a livello logico un nodo di routing impiegato nella comunicazione del PC con internet (es. il RAS (4) o un router (5) dell'ISP (6) , il firewall (7) della struttura entro la quale è collegato il PC, etc.);
- Controllare, a livello logico, un dispositivo in grado di catturare "passivamente" il traffico di rete del PC che possa operare come "sniffer" (8) (es. un PC connesso in LAN (9) "non-switched" con il PC che si intende intercettare).
Con uno qualunque dei sistemi esposti è possibile memorizzare tutti i pacchetti inviati e ricevuti sulla rete da una determinata postazione. Tutto quanto transita su Internet, per ovvie ragioni di interoperabilità, è strutturato in base a protocolli standard e di norma pubblici e ben conosciuti. Chi intenda quindi decodificare le comunicazioni dovrà:
- Catalogare i pacchetti catturati secondo i criteri dello Stack ISO/OSI (10)
- Raccogliere i pacchetti deframmentandoli e ricomponendo le sessioni TCP/IP (11)
- Attivare un parser specifico per ciascuna sessione TCP/IP ricomposta. Molti dei protocolli più diffusi utilizzano un set di comandi e stringhe di controllo ASCII (12) assolutamente human-friendly (intelligibile senza una ulteriore decodifica), ad esempio i protocolli SMTP (13) , POP3 (14) e IMAP (15) della posta elettronica e HTTP della navigazione su WEB (16) .
Superati alcuni aspetti tecnici di minore importanza è pertanto semplice, per un "ascoltatore passivo" esterno al personal computer, ricostruire quanto questo comunichi in rete.
Tutto ciò che non ricade sotto il nostro diretto controllo fisico e logico deve, pertanto, essere ritenuto untrusted (non-fidato) e trattato come tale.
Per bloccare questo tipo di minaccia non esistono stratagemmi o accortezze realmente efficaci: l'unico sistema che può proteggere le comunicazioni è l'impiego di crittografia end-to-end, che, quindi, preveda che i dati (messaggi completi o singoli pacchetti) siano cifrati dal mittente dell'informazione e decifrati direttamente e soltanto dal legittimo destinatario.
Per assolvere a questo compito esistono numerosissimi software:
- Applicativi in grado di cifrare file e messaggi, basati sia su crittografia asimmetrica (17) (adatta al modello di comunicazione della posta elettronica), sia su crittografia simmetrica (18) (per conservazione di dati personali, anche in file-system completamente cifrati);
- Moduli software che permettono di realizzare connessioni cifrate in tempo reale, sia di singole sessioni TCP/IP (SSL (19) o equivalenti), sia dell'intero stack IP (tecnologie VPN (20) , IPSEC (21) o equivalenti).

Sorveglianza attraverso sistemi "Hardware"

È semplice intuire come un PC, "predisposto" ad hoc da un punto di vista hardware, possa consentire un totale controllo su quanto vi venga elaborato e trasmesso.
Allestire un PC inserendovi dei "moduli di raccolta dati" che catturino le informazioni elaborate in maniera completa e intellegibile per chi poi ne fruirà non risulta un compito banale.
La varietà degli applicativi software utilizzabili dall'utente e delle periferiche, che questo potrebbe impiegare, potrebbero vanificare un modulo di raccolta dati.
Ad esempio:

Tecnica di sorveglianza adottata

Problemi connessi

Se si impiega un "keylogger (22) " hardware,in grado di memorizzare i messaggi inviati dalla tastiera all'unità centrale ( gli scancode (23) )...

...l'utente può utilizzare una tastiera "virtuale" (sul display del pc, controllata via mouse, inclusa di serie nel sistema operativo) o un altro dispositivo di input, vanificando completamente il modulo di raccolta dati.

Se si intende registrare tutti i dati inviati e ricevuti dalla rete utilizzando una scheda di rete progettata ad hoc...

si dovrà tenere presente che la quantità di "rumore di fondo", rispetto alle comunicazioni davvero interessanti da parte dell'utente, è enorme. Si richiederà, pertanto, una grande capacità di memoria non volatile (difficilmente occultabile) per memorizzare tutto il traffico e successivamente si dovrà impiegare un analizzatore di traffico per decodificare quanto registrato. Si consideri anche che le comunicazioni cifrate non potranno essere decodificate.

Se si intende catturare quanto viene visualizzato sul display del PC...

... si dovrà considerare che la memorizzazione in qualunque formato digitale di qualità adeguata richiederà una enorme capacità di memoria non volatile da integrare nel display o un canale di trasmissione remoto ad alte prestazioni (presumibilmentewireless) verso un sistema ricevente.

Se si intendono catturare i dati memorizzati sulle unità di memoria di massa del PC...

... si deve considerare che una unità di memoria è un dispositivo in continua trasformazione. Pertanto si dovrà effettuare la registrazione di tutte le modifiche ai file-system (24) completa delle informazioni temporali per ricostruire lo stato del file-system stesso in un determinato momento, altrimenti i dati catturati potrebbero risultare corrotti. La registrazione richiederà in ogni caso una enorme quantità di memoria non volatile da occultare, sufficiente a dare un quadro completo delle attività svolte.

Sorvegliare un PC con moduli di raccolta dati implementati in hardware è quindi un'attività costosa, sia per l'hardware impiegato sia per i costi di gestione dell'attività di sorveglianza, che si configura come un compito ben diverso dal semplice impiego di una generica "microspia ambientale".
Ipotizzando che i moduli di raccolta dati siano stati realizzati in maniera impeccabile, in modo da non alterare minimamente le funzionalità e le prestazioni del PC, l'unico modo che ha l'utente per difendersi da questa minaccia è l'analisi minuziosa del proprio PC; ad esempio operando periodicamente un confronto di verifica tra macrofotografie scattate alle parti e alle schede interne del PC al momento del suo acquisto o in una situazione considerata trusted (di totale fiducia) e quanto effettivamente si trova all'interno del PC con il passar del tempo.
Sebbene da un punto di vista teorico sia possibile clonare l'aspetto di una motherboard o di altre schede del PC alterandone le funzionalità, ben difficilmente sarà possibile occultare la quantità di memoria non volatile richiesta per la registrazione dei dati (es. memoria flash per un minimo di svariati gigabyte) e la sua logica di controllo con le interfacce per i vari moduli di raccolta dati in modo che il tutto risulti completamente invisibile ad una analisi attenta.

Sorveglianza attraverso sistemi Software

La sorveglianza di un PC basata sul software è un'attività salita di recente agli onori della cronaca per la sempre maggiore diffusione di programmi denominati "Spyware". Esistono numerosissimi "Spyware" e moltissimi sono distribuiti dai propri autori ad un gran numero di utenti casuali tramite spam (25) , worm (26) , trojan horse (27) , exploit (28) di vulnerabilità dei browser (29) , o altre tecniche. Questi Spyware sono di solito molto grezzi e il loro fine è di raccogliere informazioni presenti sul sistema "infetto" che siano facilmente sfruttabili a fini di lucro, ad esempio numeri di carte di credito. Per il loro vettore di infezione e per i loro meccanismi di comunicazione, questi Spyware sono accomunabili a:
- software differenti. I software detti "ad-ware" che hanno lo scopo di raccogliere informazioni sui sistemi infetti a fini pubblicitari e/o di infastidire l'utente visualizzando, frequentemente, messaggi pubblicitari con l'intento di disorientarlo, forzandolo a visitare determinati siti web;
- software detti "dialer" che hanno lo scopo di configurare il PC infetto in modo che questo si colleghi ad internet automaticamente utilizzando un RAS con tariffa speciale (es. numeri internazionali, o nel caso dell'Italia, i cosiddetti "servizi in decade" 144, 166, etc.) truffando l'utente con l'addebito in bolletta di un servizio che egli non ha richiesto volontariamente. Quasi tutti i software di queste categorie, per quanto estremamente fastidiosi, sono identificati, disattivati e rimossi, al pari dei virus, da appositi software di sicurezza specializzati. Inoltre, essi non adottano tecniche evolute di raccolta dati o di comunicazione, dato che sono destinati ad aver vita breve, e non rappresentano una vera minaccia per gli utenti.

Alcuni Spyware sono prodotti "commerciali", sviluppati, pubblicizzati e commercializzati dalle ditte produttrici come software per il controllo "legittimo" di proprie postazioni di lavoro, con il pretesto di sorvegliare l'operato dei familiari sul PC o tracciare le attività compiute da colleghi sul PC che si usa al lavoro.
Anche alcuni software di amministrazione remota possono essere considerati Spyware, per quanto solitamente si tratti di software che rendono ben manifesta la propria presenza nel sistema controllato e non impiegano alcun offuscamento delle proprie attività, pertanto dovrebbero risultare piuttosto evidenti all'utente del sistema.
Alcuni Spyware sono prodotti più o meno "artigianali", opera di specialisti di sicurezza informatica (o di hacker), nati con l'obiettivo di controllare un ristretto numero di obiettivi ritenuti di alto valore strategico.
Molti di questi Spyware non vengono analizzati pubblicamente poiché vengono scoperti e rimossi a mano o disattivati remotamente quando cessano di essere utili.
Da sempre questa "utenza" impiega backdoor (30) di vario tipo per continuare ad accedere illegittimamente ad un sistema server dopo averlo violato. I principali requisiti per una backdoor sono principalmente la sua "introvabilità" e la sua affidabilità: analoghe qualità saranno caratteristiche di questi Spyware.

Gli Spyware di questa ultima categoria rappresentano sicuramente la minaccia più sofisticata per la sicurezza di un PC. Il controllo locale a livello logico del sistema consente ad uno Spyware di:
- Registrare tutti i dati inseriti con qualunque dispositivo di input utente, come tastiera, mouse e altri dispositivi, connessi con qualunque interfaccia o anche virtuali.
- Registrare tutto quello che viene visualizzato sullo schermo del PC, catturando le chiamate alle API (31) del sottosistema grafico oppure la memoria della scheda video.
- Registrare tutti i suoni riprodotti o registrati dalla scheda audio del PC, eventualmente attivando un microfono o una webcam qualora questi fossero disponibili.
- Registrare tutto quanto viene elaborato dai vari applicativi, sia che questo venga salvato su disco, sia che venga trasmesso sulla rete. Operando in modalità "event driven" o con "polling", catturare aree di memoria contenenti dati volatili in uso da applicativi di qualunque natura (ad esempio buffer di memoria utilizzati da applicativi che si avvalgono di crittografia, prima che i dati in essi contenuti vengano cifrati).
- Memorizzare localmente tutto quanto viene registrato, eventualmente rendendo invisibili i file utilizzati.
- Inviare remotamente i dati acquisiti, disabilitando tutti i meccanismi di sicurezza eventualmente presenti nel sistema (firewall, policy di logging, etc.) in modo da non essere rilevato.
- Controllare attivamente il sistema, ad esempio prendendo il controllo di mouse e tastiera, eseguendo processi o manipolando file e chiavi di registro senza che l'utente possa intervenire.

Per difendersi da Spyware di questo tipo, gli utenti dovrebbero utilizzare sistemi operativi intrinsecamente sicuri oppure rinforzati con apposite procedure e strumenti di terze parti, in particolare dotati di:
- controlli di integrità su tutti i file di sistema e i file di configurazione;
- un sistema antivirus e antispyware, costantemente aggiornato;
- capacità di definire utenti con un profilo di accesso alle risorse limitato (naturalmente l'utente dovrà sempre utilizzare un profilo ristretto, quando possibile,per compiere le sue attività ordinarie);
- un sistema di aggiornamento automatico del sistema operativo stesso;
- un personal firewall e un personal IDS (32) , costantemente aggiornati.
Tuttavia, nel caso di Spyware particolarmente sofisticati le generiche raccomandazioni di sicurezza potrebbero non essere sufficienti: in questa "guerra virtuale" è avvantaggiato colui il quale conosce il maggior numero di informazioni sul nemico e, dato che gli strumenti di difesa sono pubblicamente noti, chi scrive un nuovo Spyware può concepirlo in modo che non sia rilevato automaticamente.
Uno Spyware, infatti, può impiegare una tecnica chiamata "hooking" per intercettare le API ritenute interessanti al fine della registrazione dei dati, catturando un buffer di informazioni mentre passa ad esempio da un applicativo a una funzione di sistema.
Questa stessa tecnica consente allo spyware di alterare "al volo" il buffer di informazioni intercettato, il che permette in alcuni casi di occultare l'esistenza dello spyware stesso.
Ad esempio, ammesso che l'API intercettata sia"findfirst - findnext" del sistema operativo Microsoft Windows o "opendir – scandir" di BSD, che permettono entrambe di effettuare la scansione di una directory al fine di enumerare i file che vi sono presenti, tramite la manipolazione dei valori di ritorno sarà possibile far "saltare" la visualizzazione di uno o più file che si intendono nascondere, indipendentemente da quale sia l'applicativo che sta effettuando la scansione.


foto ansa

La "tecnica dell'hooking", come molte altre utilizzate dagli Spyware, non può essere disabilitata a livello di sistema operativo perché è indispensabile per il corretto funzionamento di molti driver e alcuni applicativi legittimi (in primis gli stessi software di sicurezza, in particolare gli antivirus).
In alcuni casi è estremamente difficile trovare uno Spyware evoluto in un sistema "vivo".
Se questo prevede comunicazione verso l'esterno per l'esportazione dei dati raccolti nel sistema infetto, il momento della comunicazione è anche il suo punto debole: uno sniffer sarà in grado di registrare i dati trasmessi evidenziando la presenza di un software anomalo nel sistema, ma la ricerca dei file che lo costituiscono e lo studio dei suoi meccanismi interni di funzionamento dovrà essere effettuato manualmente.
Se lo Spyware si rivelasse particolarmente resistente ai tentativi di identificazione e rimozione, potrebbe essere necessario analizzare i filesystem del sistema infetto su un PC differente, non avviando quindi il sistema operativo contaminato dallo Spyware, bensì un esemplare certamente "pulito". In questa condizione nessuno Spyware è in grado di attivarsi e nascondersi.
Da questa breve panoramica emerge come esistano differenti tecniche di controllo di un PC, nessuna delle quali è in grado di garantire la raccolta di dati completi e coerenti e allo stesso tempo risulti impossibile da scoprire.
Allo stesso modo, non esiste uno strumento di difesa che metta completamente al riparo dalla minaccia.

Nessun commento: