Questo è l’ultimo dei miei articoli del vecchio sito di ISMProfessional che, secondo me, vale la pena rileggere. Fra l’altro, l’estate è quasi andata, come calendario, anche se il caldo rende ancora i miei viaggi da pendolare molto simili ad una deportazione di massa, e le repliche di solito terminano con l’estate.
Questa volta l’argomento è presentato sotto forma di racconto alla CSI, naturalmente del tutto inventato. Come di consueto, ci rileggiamo alla fine per qualche oziosa considerazione.
Malware batte Investigatore 2-0
L’investigatore scende dall’auto, priva di insegne di riconoscimento, scortato da due uomini vestiti di scuro, piuttosto robusti.
La chiamata è giunta in tarda notte, ed ora è quasi mattina: il palazzo in cui stanno per entrare è la sede della più importante azienda di credito del Paese.
Pare che qualcuno sia riuscito ad accedere al database principale delle carte di credito, ed ha cominciato a sfruttare i dati trafugati. Le normali operazioni di gestione delle emergenze non hanno avuto l’effetto sperato, e pare che anche il centro elaborazione dati di riserva, attivato per l’emergenza, sia affetto dallo stesso problema.
Sa che sarà un lavoro delicato e complesso, ma ha con sé la valigetta con tutti i suoi strumenti di lavoro: il fido notebook con dentro tutti i software più sofisticati per l’analisi forense, un duplicatore di dischi e memorie flash ultimo modello e un gioiellino acquistato da qualche tempo: un duplicatore di memoria RAM hardware con interfaccia FireWire, che permette di acquisire il contenuto della memoria del computer mentre è in funzione e senza alterarne l’operatività.
Il direttore operativo della sede è stato molto chiaro: dieci minuti di interruzione di servizio equivalgono ad alcuni milioni di Euro di danni per le mancate transazioni, per cui i server non devono essere spenti per nessun motivo.
Arrivano in sala server principale, e si mette immediatamente al lavoro. Connette il notebook alla rete, sul segmento fra i server e il firewall che li protegge dal brodo primordiale di Internet.
Attiva prima un Intrusion Detection System ed un analizzatore di rete, ma dopo venti minuti di analisi non rilevano nulla di sospetto. Esamina i log del firewall, niente di anormale. Decide di passare al semplice sniffer e guarda il traffico di rete man mano che scorre sul video.
Qualcosa continua a solleticargli nel cervello: il viavai dei pacchetti TCP è normale, per una installazione di questo tipo, ma c’è qualcosa che non torna.
Passa ad esaminare i server. Ovviamente non può installare nulla, per non comprometterne il regolare funzionamento, ma conosce abbastanza il sistema operativo per sapere dove guardare per scovare un intruso.
Non ci sono processi estranei, né servizi sconosciuti. I driver delle principali periferiche sono in ordine. L’elenco delle applicazioni installate corrisponde perfettamente ai file sparsi in giro per il disco di sistema, ed ovviamente alle specifiche di installazione dell’applicazione principale.
Trova finalmente una discrepanza: ci sono installati DUE protocolli TCP/IP. Non se ne era accorto subito, il secondo era in basso, e lo nota dopo aver fatto scorrere in basso l’elenco.
Ricorda di aver letto qualcosa in merito. Sfoglia rapidamente la documentazione sul notebook e trova quello che cercava: una presentazione che parlava di malware invisibili. Ma questo ha lasciato qualche traccia, quindi forse non è del tipo III, non sfrutta la virtualizzazione per nascondersi.
Il problema rimane: non può spegnere il server, e non può installare nulla, per cui non può scoprire dove si è infilato l’intruso.
Sa che è là, da qualche parte nella memoria del computer… Aspetta! La memoria!
Apre la valigetta e prende il gioiellino, il duplicatore di RAM. Ora potrà analizzare con calma tutto il contenuto della memoria, trovare l’intruso ed analizzarne il codice: è questione di ore, e potrà consegnare abbastanza dati al direttore della sede per individuare chi si nasconde dietro l’operazione.
Inserisce il connettore sulla porta FireWire del server, inserisce un pen drive da 16G, su cui il duplicatore scriverà il contenuto della memoria e preme il tasto che avvia la copia. Immediatamente il server si blocca completamente: dopo pochi secondi il sistema di controllo dei servizi di rete lancia l’allarme per la caduta dei servizi. Rivoli di sudore scorrono sul volto dell’investigatore, nonostante la sala sia condizionata e mantenuta a 20 gradi.
Il tecnico responsabile fa iniziare la procedura per instradare tutti i servizi verso il centro di elaborazione di riserva. Il tutto è durato meno di un minuto, ma la telefonata del direttore della sede arriva poco dopo: non saranno ammessi altri errori.
Il server si è bloccato talmente male che riaccendendolo impone un controllo completo di integrità al filesystem. Ma il peggio deve ancora venire: il database si è corrotto, e occorre replicarlo da quello di riserva, ora diventato principale. Ci vorranno ore.
L’investigatore, le mani un po’ tremanti, sfila il pen drive dal duplicatore di memoria e lo inserisce nel notebook: dei quattro gigabyte di RAM del server ha replicato meno di un gigabyte. E dentro non c’è nulla di utilizzabile: la struttura di dati compromessa dal malware punta allo spazio di memoria subito dopo dove si è bloccata la duplicazione.
Non può essere che una maledetta sfortuna. Imprecando fra sé, l’investigatore va a parlare col tecnico responsabile, chiedendogli se può duplicare la memoria dal server del database di riserva. Ovviamente il tecnico rimane dubbioso: e se è stato il gioiellino a bloccare il server?
L’investigatore insiste, e gli propone di provarla su altri server non critici, per dimostrare che è stato solo un caso. Insieme inseriscono il duplicatore su quattro differenti server, e su tutti l’operazione termina senza alcun problema. I server continuano il lavoro come se niente fosse.
Il tecnico si convince, anche se è ancora un po’ titubante. Squilla di nuovo il telefono, sono arrivati altri rapporti di transazioni fraudolente: chi sta trafugando i dati sta ancora operando indisturbato: è la prova che anche il server nel centro di elaborazione di riserva è compromesso. Questo fa decidere il tecnico: però vuole aspettare almeno che finisca la duplicazione dal database di emergenza.
Si spostano nell’edificio adiacente: la sala server è la metà dell’altra, ma è posizionata sotto il livello stradale, con spessi muri di calcestruzzo.
L’investigatore inserisce di nuovo il duplicatore sulla porta FireWire del server, ma questa volta è meno deciso. Non vuole perdere i dati dal pen drive usato in precedenza, per cui usa un altro pen drive, un po’ più vecchio ed un po’ più lento dell’altro.
Preme il tasto di avvio della copia. Passano i secondi, e pare funzionare tutto. Il pen drive è lento, maledettamente lento.
Sullo schermo del server si vede lo screensaver con il logo del sistema operativo che dovrebbe fluttuare, ed invece è inesorabilmente immobile. Anche il server di riserva si è bloccato. E stavolta non ci sono più riserve. Il tecnico freneticamente lo riavvia, ma non c’è nulla da fare: filesystem e database corrotti. Devono fermare il servizio e ripristinare lo stato dei database: per fortuna c’è la copia dei dati, fatta appena prima. Ma nelle due ore che serviranno a ripristinare il database l’azienda di credito perderà milioni di Euro. E l’investigatore non solo quelli…
Stavolta ho cambiato modo di presentare l’argomento. Il racconto è completamente inventato, ma li elementi che fanno fallire il povero investigatore ipertecnologico sono tutti reali. La nostra amica Joanna Rutkowska ha colpito ancora.
Si parla della possibilità di duplicare il contenuto della memoria di un computer mentre è in funzione e senza interferire con la sua operatività: esistono in commercio schede per bus PCI che fanno questo, ed è possibile usare una porta FireWire per fare la stessa cosa, con la differenza che nel caso delle schede PCI occorre inserirle prima di poterle utilizzare, e quindi spegnere il computer, a meno di schede di tipo PCI-Hotplug.
Questo permette di duplicare il contenuto della memoria ed esaminarlo con calma, rilevando tutti i tipi di malware possibili, dato che viene usato un accesso DMA diretto, senza passare per il processore.
Ma, anche se per ora solo su hardware AMD, i malware possono sfruttare un trucco per arrivare a tre differenti comportamenti tesi ad impedire l’acquisizione della zona di memoria dove sono annidati:
- bloccare il computer
- far leggere valori senza senso (tutti 0×00 o 0xff)
- far leggere valori arbitrari a scelta.
Tutti e tre questi comportamenti sono fattibili, e con grado di complessità crescente. I primi due sono stati implementati e dimostrati, il terzo è stato solo ipotizzato, ma già così è sufficiente per rendere inutile l’uso di questi miracolosi marchingegni.
C’è di peggio: l’attuale implementazione lascia fuori tutte le architetture non AMD, dato che sfrutta un comportamento legale ed atteso della tecnologia HyperTransport, ma a partire dal 2008 sia Intel che AMD rilasceranno processori ed architetture che supporteranno una tecnologia analoga per la gestione delle periferiche, e che sarà parte della tecnologia di virtualizzazione. Ingannare i duplicatori di RAM sarà un gioco da ragazzi. Duplicatori che ancora sono praticamente inesistenti in commercio in versione PCI, e del tutto ipotetici in FireWire (esiste un software dimostrativo, vedere nei riferimenti).
Il messaggio finale di Joanna, ed il nostro, vuole essere questo: finché non esisteranno sistemi operativi in grado di autoverificarsi e di segnalare la perdita di integrità, ogni altro strumento, per quanto sofisticato, sarà solo un costoso palliativo dalla durata limitata.
Riferimenti:
- La presentazione di Joanna Rutkowska.
- Un documento sulla fattibilità dei duplicatori di RAM via FireWire
- Altro documento di presentazione di un software dimostrativo per duplicare la memoria via FireWire.
Oggi
Nel racconto ho volutamente esagerato i vincoli posti sull’operato dell’investigatore, per rendergli inevitabile la figuraccia. Inoltre gli ho fatto compiere un errore madornale, ossia operare sul sistema principale, invece che quello di riserva, inattivo. Ma il suo fato di personaggio virtuale era già segnato, quindi anche operando sul sistema di riserva per primo non sarebbe cambiato nulla sul suo destino finale.
Ma veniamo a noi. Joanna Rutkowska, nel frattempo, non è rimasta certo con le mani in mano. Abbiamo malware virtualizzanti in grado di infilarsi dietro l’hypervisor di un sistema di virtualizzazione, ossia capaci di operare una virtualizzazione annidata, mandando all’aria l’assioma che un sistema impiegante la virtualizzazione è sicuro rispetto all’attacco di un malware. Abbiamo malware che riescono, sotto certe condizioni, naturalmente, ad evadere da una macchina virtuale ed attaccare l’hypervisor, demolendo un altro assioma della virtualizzazione.
Insomma, sono tempi duri per chi pensava di mettersi al sicuro usando un sistema di virtualizzazione. Come sempre, non si può contare su strumenti automagici e soluzioni semplicistiche. I malware, espressione (perversa) della creatività e fantasia umane, sono sempre pronti a raccogliere nuove sfide, demolendo miti e soprattutto fedi mal riposte.
Poi, naturalmente, ci sono gli integralisti, come il signore della nota azienda IT americana che ha attaccato e, secondo lui, demolito il lavoro del team di Joanna tramite un articolo su un noto portale IT. Peccato che il signore in questione abbia dimostrato che nella fretta di confutare (o forse per voler avere ragione a tutti i costi) ha letto male e compreso peggio il lavoro presentato al noto Black Hat di quest’anno, riguardante una trilogia per sovvertire il funzionamento di Xen, il sistema di virtualizzazione basato su Linux. Ora, considerando che l’hypervisor di Xen è molto piccolo e compatto, il codice è sottoposto ad una serie impressionante di test e di controlli allo scopo di eliminare, ragionevolmente, ogni possibile bug di sicurezza, gli altri produttori di sistemi di virtualizzazione non hanno di che stare allegri. Nel senso, non pensino di gioire della dimostrazione che Xen non è invulnerabile: il loro hypervisor si basa su codice proprietario chiuso, e quindi senza il possibile contributo di questi geniali ricercatori per scovare falle e buchi.
Molto probabilmente alcuni degli attacchi portati con successo a Xen sono altrettanto efficaci anche con altri prodotti, naturalmente con qualche modifica.
I dettagli della trilogia su Xen, sull’articolo del signore e la relativa risposta di Joanna, si possono trovare leggendo il blog di Joanna Rutkowska, presente da tempo nel mio blogroll e nel mio lettore di feed.

