INFORMATICA - CLOUD FORENSICS

...i dati utili sono nella "nuvola", basta ritrovarli...

Luglio 2010 (Revisionato Marzo 2012)

La terziarizzazione delle attività e dei servizi insieme alla necessità di risparmiare risorse (economiche e tecnologiche) caratterizza massicciamente il periodo che stiamo vivendo. Il cloud computing sembra essere la naturale risposta della tecnologia delle reti di computer a questo fenomeno e come tale dominerà la IT di questi e dei prossimi anni.

Premessa

Scopo della presente pagina è:

(1) presentare in linea di massima il cloud computing al fine di stimolare nel visitatore la voglia di approfondire e studiare il settore;

(2) capire come applicare il digital forensics su sistemi e servizi di cloud computing;

(3) comprendere come il cloud computing possa realizzare servizi di digital forensics esso stesso aprendo nuove frontiere al settore delle indagini tecniche informatiche e telematiche.

La definizione

L'idea alla base del cloud computing è quella di un Full Internet Based Computing, ossia del realizzare elaborazione, memorizzazione e più in generale gestione di dati mediante il più grande sistema di elaborazione che oggi l'essere umano abbia a disposizione: Internet.

Tale idea si è e si sta concretizzando in diversi modi che forse non rispettano globalmente tale approccio ma ciò che è seriamente rimasto, in ogni soluzione trovata, è la realizzazione di sistemi altamente distribuiti che stanno cambiando i concetti stessi di elaborazione e memorizzazione a cui siamo da tempo abituati.

Il modello client/server, ci ha abituati al termine servizio per cui è noto che un client può richiedere ed usufruire di servizi posti in essere da uno o più server. In ciò l'alta dinamicità dello schema e la possibilità per sistemi e software di essere contemporaneamente client e server. In tutto questo il dato gode di identità separata ed il servizio opera nella maggioranza dei casi su dati che fluiscono poi in una struttura (si pensi ad una rete).

Nel cloud computing il concetto di servizio viene stressato al punto di poter rappresentare risorse di natura: (a) dati; (b) software e (c) hardware.

Questo non è tutto, un altro concetto molto importante per i sistemi distribuiti, quello di comunicazione tende a divenire secondario o meglio trasparente in quanto la rete diviene strumento di base di un sistema più complesso.

Il cloud computing è un paradigma distribuito che virtualizza dati, software, hardware e comunicazione dati in servizi.

Quanta parte ha la virtualizzazione...

Il paradigma del cloud computing non poteva assolutamente reggere senza la massiccia introduzione della virtualizzazione al suo interno.

Negli anni passati la "virtualizzazione del dato" è stata un qualcosa cui ci siamo velocemente abituati. Basti pensare alla disponibilità di partizioni logiche cripto che potevano essere tranquillamente impiegate dall'utente in maniera perfettamente trasparente rispetto alla reale metodologia di memorizzazione dei dati e della loro effettiva posizione fisica.

Da questo alla virtualizzazione di interi sistemi software (sistemi operativi, file system, data base,...) il passo non è stato brevissimo ed ha richiesto un incremento notevole delle prestazioni degli elaboratori ma ci si è arrivati quasi naturalmente. E' quindi ormai semplice crearsi un ambiente totalmente virtuale, anche su un PC, e gestirvi all'interno un sistema operativo e dei software ivi installati (non per niente è uno dei migliori approcci all'anti-forensics).

Le prestazioni dei canali di trasmissione e l'idea che tutto questo possa essere fatto anche in remoto su una rete o meglio ancora su Internet ha fatto il resto costruendo l'"autostrada" verso il cloud computing.

Il passo finale è stato considerare che si poteva virtualizzare anche l'hardware creando, ad esempio, interi server virtuali che, sempre da remoto, potessero fornire la possibilità di ospitare diverse istanze di sistemi operativi e di conseguenza una enorme quantità di ambienti di lavoro. Da questo punto si può andare oltre: perchè non virtualizzare anche intere LAN o WAN?

Vantaggi

Bisogna partire dai vantaggi di questo approccio per capire meglio cosa sia il cloud computing. Qualsiasi sistema informatico occorra, qualsiasi software, qualsiasi sistema di gestione e smistamento dei dati, basta ridurre tutte le proprie esigenze ad una precisa lista di servizi. Un cloud (sistema di cloud computing) potrà quindi realizzare quanto richiesto mediante:

(a) la realizzazione virtualizzata di tali servizi;

(b) la messa a disposizione dei servizi al richiedente;

(c) il pagamento da parte del richiedente del servizio ma solo nei termini in cui lo sfrutta.

Il punto (b) si ottiene ovviamente mediante la connessione ad alta velocità (elemento chiave) alla rete che sostiene il cloud. Il punto (c) è alla base del successo della terziarizzazione che il cloud produce: si paga solo quello che si usa. Il richiedente non acquista proprietà ma servizi, non ha necessità di installare software ma solo li impiega, non ha necessità di aggiornarli in quanto l'aggiornamento è a carico del cloud (qualità dei servizi)...

Le web-based application verso le quali tutte le grandi organizzazioni aziendali e governative hanno dovuto obbligatoriamente procedere negli ultimi 10 anni (ed alcune stanno ancora transitando...) sono un elemento fondamentale dell'approccio al cloud computing ma restano un aspetto circoscritto del fenomeno. Esse ne sono elettivamente l'interfaccia verso l'utente.

Scalabilità

La distribuzione totale alla base del paradigma ha insito il concetto di scalabilità. Numero di server ma più in generale numero di risorse e servizi non sono definiti a priori e possono essere dinamicamente reimpostati.

Fault tolerance

La distribuzione prescinde anche da quali sistemi “reali” concorrano effettivamente al “cloud” per cui la sostituzione "a caldo" è insita nel paradigma e con essa una robusta resistenza ai guasti (si dovrebbe dire resistenza alle cadute di servizio dato che il concetto di guasto è difficile da inquadrare...)

Virtualizzazione e qualità del servizio

Come il servizio sia realizzato o fornito è completamente trasparente all’utente. Quello che l'utente percepisce è la qualità del servizio e quindi si introducono delle metriche per il livello di pagamento.

Flessibilità

Gli strumenti che realizzano i servizi possono essere cambiati a runtime senza che l’utente avverta cadute di disponibilità e soprattutto possono essere cambiati a seconda del cambio di esigenza del cliente (portata del servizio).

Virtualizzazione delle reti

Una LAN o WAN può essere vista come un servizio per una comunità di utenti e quindi il cloud può realizzarne una (o diverse) con specifici ambienti, aree di sharing o storing, ecc. Tutto quello che occorre è un robusto e veloce collegamento ad Internet.

Pay per use

Tutti i servizi sono frutto di una qualche virtualizzazione per cui il loro impiego da parte dell'utente può essere monitorato e misurato, da cui pagato specificamente. Sparisce la necessità, per gli utenti, di “possedere”, lasciando spazio alle possibilità di sfruttare i servizi solo quando indispensabile.

Sicurezza

Punto controverso (infatti lo si troverà anche negli svantaggi). Il “cloud” è complesso e quindi averne il controllo completo o anche solo averne il controllo dei dati (es. dove si trovano ed in quale forma) risulta difficile (ad avviso dello scrivente anche da parte di chi lo gestisce). Contemporaneamente però è un sistema praticamente indistruttibile e per determinati servizi può assicurare un anonimato senza precedenti.

Performance

Da sistema altamente distribuito può conseguire risultati di performance inimmaginabili rispetto ai sistemi classici. L'esempio nel digital forensics è il password cracking, servizio la cui performance anche solo teorica subisce una drastica riduzione in un cloud rendendo risolvibili problemi di cracking in precedenza neanche approcciabili.

Chi si è diretto verso il cloud?

Non si può parlare di cloud computing senza citare i "giganti" informatici che ne fanno largo uso e che, anzi, hanno introdotto il paradigma realmente sul mercato affindandogli il proprio business:

Amazon.com: Gli Amazon Web Services (AWS) sono forniti su Internet, mediante piattaforma cloud, da Amazon.com. Sono stati attivati ufficialmente nel luglio 2002 e sono indirizzati prevalentemente a sviluppatori web (maggiore fetta di mercato) anche se possono anche essere impiegati da utenti comuni tramite specifiche applicazioni client.

Google: si è inserita da tempo nel mercato dei servizi web tramite cloud soprattutto attraverso il servizio di ricerca ed annessi ed il servizio di e-mailing. Sono in crescita i servizi di storing, sharing, ecc. Nel 2008 è stata rilasciata la Google App Engine, una piattaforma per lo sviluppo, gestione e sostegno di applicazioni web su Google-managed data center. Essa permette di virtualizzare applicazioni che agiscono su più server e data-center.

Microsoft: ha realizzato fondamentalmente una PaaS (vedere di seguito in questa pagina) alla cui base vi è un sistema operativo specializzate denominato Windows Azure. Lo scopo di Azure Services Platform (disponibile da febbraio 2010, anche se esistono modelli preliminari) è quello di fornire un cloud sulla base dell’”astrazione” di un non precisato numero di Windows Server Machine (datacenter) non necessariamente di Microsoft.

IBM: Da diversi anni IBM si è gettata nel cloud computing fornendo servizi di svariati tipi. Fornisce il supporto per costruire private cloud (vedere di seguito in questa pagina), puo' rendere operativa in tempi brevissimi la IBM cloud o creare una hybrid cloud che le include entrambe per quegli utenti che vogliano avanzare gradualmente verso questo nuovo approccio.

HP: da alcuni anni propone una piattaforma cloud per i service provider e per il social computing.

Verizon: nel 2009 ha annunciato il rilascio dei suoi servizi cloud realizzando una CaaS (vedere di seguito in questa pagina) il cui scopo è permettere ai suoi clienti di impiegare le risorse dei suoi data center al fine di realizzare infrastrutture di comunicazione (virtualizzate) su larga scala pagando solo su impiego.

British Telecom: dal 2009 la British telecom offre, solo a clienti corporate, server virtualizzati, storage, e soluzioni di sicurezza come servizi cloud.

RackSpace: offre servizi di cloud hosting & storage su larga scala.

Salesforce.com: PaaS (vedere di seguito in questa pagina) e consiglio di vedere il video semplice e diretto che introduce al cloud computing a questo link...

e molti altri come: Dell, Sun, Microsystems, Yahoo, ecc.

Struttura di un sistema cloud

E' bene individuare le seguenti componenti di un sistema cloud al fine di comprenderne meglio il funzionamento e potersi poi riferire al digital forensics.

(a) Cloud Client

Sistema hardware/software impiegato dall’utente per usufruire di servizi “cloud”: può includere PC, Smartphone, Embedded Systems, sistemi operativi, browser, …

(b) Cloud Application (SaaS)

Software as a Service: set di software disponibili “in impiego” da remoto, sul cloud, senza la necessità di installazione, aggiornamento ed amministrazione (se non diversamente specificato dal pagante…).

(c) Cloud Platform (PaaS)

Platform as a Service: set di piattaforme di elaborazione virtualizzate e rese disponibili al richiedente, spesso dotate di SaaS (es. un server per pesanti elaborazioni numeriche).

(d) Cloud Infrastructure (IaaS)

Infrastructure as a Service: set di servers, software, data center space, network equipment,… virtualizzati e rese disponibili al richiedente, spesso dotate di PaaS e SaaS (es. una Intranet aziendale!).

(e) Cloud Communication (CaaS)

Communication as a Service: modello on-demand per la gestione e l'impiego di servizi inerenti le comunicazioni digitali (VoIP, telefonia, canali di trasmissione, sicurezza nelle comunicazioni, VPN, ecc.) all'interno di SaaS, PaaS e IaaS.

(e) Server

Server: Server e Data center reali specificamente progettati ed operanti in ambiente distruibuito (spesso su Internet) al fine di realizzare servizi “cloud”.

 

Bisogna ricordare che non tutte le ditte che offrono servizi cloud implementano completamente questi strati, ciò in quanto, ad esempio, una IaaS o un CaaS richiedono una disponibilità di risorse economiche e tecniche notevoli.

A questo va aggiunto che spesso il cloud è esso stesso terziarizzabile, ossia è possibile che una ditta abbia così tante risorse da fornire ad altre la possibilità di realizzare e vendere anch'essa servizi di cloud sfruttando il cloud primario.

Digital Forensics su un cloud

Sfruttando la struttura per strati sopra evidenziata è possibile fare le seguenti considerazioni:

Il digital forensics sui cloud client(s) avrà scopi e possibilità limitate in quanto il client tende a non conservare dati rilevanti circa SaaS, PaaS ed IaaS/CaaS, semmai questi diverranno l’obiettivo fondamentale delle intercettazioni digitali (ambientali) che assumeranno una sempre maggiore importanza (il servizio viene formato nel cloud ma si manifesta nel client…).

La live forensic analysis è per i client predominante sotto ogni punto di vista rispetto alla dead forensics. Non è difficile da considerare dato che la maggioranza dei cloud client sono particolari browser o applicazioni da "montare" sui normali Internet browser.

Il digital forensics su SaaS, PaaS e IaaS non è nemmeno concepibile se non come SaaS ossia dovrà divenire esso stesso un servizio “cloud”. Il perchè risiede nel fatto che la forte distribuzione dei carichi (il load balancing è uno dei punti chiave per determinare l'efficienza del cloud per cui i server che operano si cambiano le attività con alta dinamicità e frequenza), il continuo movimento dei dati, la loro codificazione (cripto/compressione/distribuzione) e la loro delocalizzazione rendono recupero ed analisi di dati pregressi su memorie di massa pressoché impossibili.

Il digital forensics su CaaS è praticamente digital investigation e quindi in primis intercettazione digitale ma questo su un sistema di connessioni a molti livelli e con svariate codifiche per cui, come e forese più di prima, non è concepibile recupero ed analisi se non attraverso specifici servizi cloud già previsti (non esterni al cloud).

Il digital forensics sui server che realizzano la base del “cloud” è quello classico. Il problema però è di interpretazione e non di applicazione, ossia l’indagine sui server non è interessata ai dati del server ma a quelli che il “cloud”, come sistema, astrae all’utente.

Di seguito alcuni limiti del recupero e ricerca dati su tali server:

(a) Se dei dati sono cancellati su un “cloud” non è detto che lo siano veramente sui server che supportano il servizio di accesso/impiego a tali dati;

(b) All’inverso, se dei dati appaiono su un “cloud” (e quindi sono disponibili come servizio) non è detto che risiedano parimenti su un particolare server ma potrebbero essere semplicemente l’”effetto” di un’elaborazione distribuita (vedasi gmail…).

(c) alcuni dati del cloud esistono solo per un tempo limitato dato che rappresentano astrazioni di comunicazioni (vedasi CaaS).

Svantaggi di un cloud

Prima di procedere nello studio di come il digital forensics in generale potrebbe beneficiare del cloud come strumento di lavoro è bene considerare alcuni dei suoi svantaggi:

(a) la criticità delle interruzioni di servizio: sebbene si sia sottolineato che il cloud è di principio robusto, a seconda della ditta che lo supporta e delle metodologie che lo implementano potrebbero risultare delle interruzioni di servizio che vanno gestite con estrema cura. Qualora ci fossero, infatti, l'utente perderebbe completamente visibilità delle sue applicazione e dei suoi dati e nel peggiore dei casi anche dell'infrastruttura su cui si basa.

(b) la sicurezza che, da sicurezza interna su CED, archivi, ecc., passa a sicurezza delle comunicazioni, delle reti e dei sistemi che supportano il cloud, elementi questi assolutamente fuori dalla portata e dalle possibili influenze dell'utente.

(c) la qualità dei servizio, che taluno chiama anche livello del servizio, potrebbe essere inferiore a quanto richiesto nell'accordo commerciale. Da qui la necessità di metriche precise e di valori calcolati sui reali fabbisogni dell'utente.

(d) i dati sono in possesso dell'utente si o no? virtualmente si ma praticamente sono su server esterni all'azienda. Se si pensa, ad esempio, ai dati relativi ad un'indagine di polizia giudiziaria, la loro localizzazione (oltre alla loro riservatezza) è molto importante perchè parte della riservatezza del fascicolo. Se si pensa ai dati aziendali di forte natura commerciale la loro riservatezza e' il punto chiave per evitare perdite economiche. Ecc.

(e) la competizione tra cloud provider è ottima ai fini economici ma il fallimento di uno di essi potrebbe mettere in ginocchio per mesi tutti gli utenti abbonati al servizio.

Il rischio nell'impiego di un cloud va contestualizzato come qualsiasi altro rischio per ottenere dei valori sensati ma, in generale, i vantaggi non sono mai trascurabili e spesso la direzione della terziarizzazione è obbligata dai venti del mercato.

Alcune classi di cloud

I cloud system possono essere classificati almeno come segue:

- Public cloud: disponibile su Internet prettamente attraverso servizi web-based e web-oriented;

- Community cloud: l'infrastruttura che supporta il cloud è condivisa da diverse organizzazioni ed opera per una comunità selezionata di utenti i quali condividono obiettivi comuni (es. mission, sicurezza, requisiti funzionali, ecc.). Può essere gestita da una terza parte o dalla comunità di utenti direttamente.

- Hybrid cloud: il cloud è parzialmente pubblico e parzialmente privato (vedere di seguito), quindi l'utente può beneficiare contemporaneamente di diversi vantaggi di entrambi (ovviamente aumentando le spese rispetto ad un public cloud).

- Private cloud: il sistema di cloud computing è costruito su una infrastruttura reale e privata (si sfrutta solo l'impostazione del cloud computing ma l'utente è l'unico reale possessore di dati, strutture ed applicazioni). E' la tipica soluzione cui fanno ricorso organizzazioni e ditte di notevoli dimensioni che non ripongono fiducia nel fatto di dover terziarizzare i propri dati all'esterno.

"Fare" Digital Forensics mediante cloud

L’incremento significativo dell’ammontare medio di dati che una persona indagata può trattare e la loro eterogeneità ha reso, negli ultimi anni, progressivamente sempre più difficile applicare le metodologie di digital forensics ai reperti di una indagine giudiziaria.

La situazione sta velocemente volgendo al peggio e “per nascondere i dati basta spesso lasciarli dove sono” in quanto repertamento ed analisi iniziano a durare mesi ed anni.

Un hybrid/community cloud rappresenta la naturale soluzione al problema, esso infatti può integrare:

- Grandi potenze di calcolo ed elaborazione

- Potenti funzioni di ricerca (anche semantiche)

- Basso costo dell’implementazione

- Grandi spazi di memoria

- L’impiego di più software forensi sullo stesso caso e reperto

- Il mantenimento dei dati investigativi in aree localizzate e private (interne all'organizzazione che sviluppa le indagini tecniche, secondo le disposizioni della magistratura).

inoltre il community cloud permette, per sua natura:

- Collaborazione (a distanza) tra magistrati, investigatori classici e consulenti specializzati

- La ripianificazione in tempo reale dell’indagine

- La possibilità di correlare dati diversi anche per via semantica ed anche su molteplici data base forensi o meno

- La possibilità di correlare dati dal punto di vista storico su casi similari e quindi ottenere un digital profiling consistente.

- Una gestione mirata ed efficace degli accessi investigativi ai dati del caso (logging, segnalazioni, ecc.).

In [64] si introduce il MPI MapReduce, un modello concettuale ripreso dal motore di ricerca Google per “ridurre” il processo di analisi forense (nel solo caso di forensic computing) ad una serie distribuita di servizi da inserire in un cloud.

I risultati dei benchmark su semplici servizi (ricerche, conteggi) sono stati notevoli e si parla di incremento lineare delle prestazioni al numero di CPU (ed alle loro prestazioni).

In [65] si introduce del grande passo cui il cloud computing costringerà il mondo dei data base forzando la transizione da DBMS relazionali a DBMS nativamente distribuiti (bisogna ricordare che il modello relazionale supporta la distribuzione non in via nativa ma a seguito di diversi aggiustamenti, soprattutto di natura non modellistica ma procedurale e software, lasciando al SQL - ed alle sue varianti anche non standard - nonchè a linguaggi ospiti del DBMS, di gestire le difficoltà che la concorrennza degli accessi propone).

I nuovi modelli impiegati dai DBMS di Amazon e Azure sono esempi di questa rivoluzione. Modelli come questi, con molta probabilità, daranno origine ai nuovi motori di DB alla base dei rinnovati prodotti per l'attività forense basati su cloud. Essi consentiranno di trattare in simultaneo e con terribile efficienza terabyte e terabyte di dati repertati nelle indagini. Dato il trend del mercato non è difficile ipotizzare che EnCase ed FTK potrebbero essere tra i primi a beneficiare del cloud computing e dei nuovi modelli.

Problemi da risolvere per il Digital Forensics mediante cloud

Fermo restando il punto di vista che il public cloud è la prima forza del cloud, affinchè un modello di questo tipo possa essere impiegato nel digital forensics è necessario innanzitutto incentivarne sicurezza, standard e controllo sui dati.

In primo luogo, quindi, il canale di comunicazione su cui è costruito il cloud deve appoggiarsi su protocolli di crittazione forti e standard nonchè molto efficienti. Poi, dato che le informazioni fluiscono con una dinamicità tale che identificarne la posizione è quasi impossibile, sorge la necessità del tagging dei dati, almeno per gli aspetti posizione e tempo ma non sarebbe male anche: possessore, tipologia, privilegi, ecc.

In questo modo potrebbe essere possibile, ad esempio, stabilire a quali leggi i dati devono rispondere. Il cloud, infatti, sposta il problema delll'applicabilità delle leggi ai sistemi hardware verso l'applicabilità delle leggi nazionali alle informazioni. Si pensi che uno stesso cloud, formato da server dislocati in Giappone e Corea, potrebbe contenere informazioni soggette alle leggi italiane ed altre a quelle americane...

Un altro elemento fondamentale per l'uso nelle indagini di PG dei public cloud è il data retention. Ogni informazione (set di dati) di cui l'utente chiede la cancellazione (logica) dovrebbe essere caratterizzato da una sorta di expiration time stabilito sempre dall'utente, oltre il quale il cloud deve automaticamente cancellarla in maniera forense. Questo tenendo conto del fatto che la cancellazione in un cloud è un processo di difficile comprensione che spesso si risolve in una sorta di garbage collection la quale, invece di cancellare definitivamente i dati li cataloga ed impiega a livello statistico al fine di venderne le conseguenti informazioni commerciali elaborate.

Conclusioni

Comunque la si possa pensare sul cloud computing è necessario averci a che fare per cui è bene sfruttarne al massimo le caratteristiche positive e prepararsi ai suoi problemi.

Il digital forensics per sua natura opera spesso con e sulle novità tecnologiche ed il cloud lo attira ampiamente, soprattutto per le smisurate possibilità di anonimato che lo caratterizza.

Qualcuno, a livello accademico ed industriale, nel 2009 ha già parlato di Intercloud, una sorta di "cloud of clouds" che andrebbe a sostituire il concetto stesso di Internet. Dal mio punto di vista è bene che non siano ripetuti gli errori! Alla nascita di Internet il concetto di indagine online e quello di sicurezza delle reti erano evanescenti, oggi sono una realtà che ha grandi problemi a causa innazitutto delle intrinseche debolezze del protocollo su cui Internet opera.

Per Intercloud le idee di indagine e sicurezza devono essere almeno due dei pilastri su cui questa infrastruttura di potenzialità veramente spaventosa deve poggarsi: ne dovrà venir fuori un protocollo valido!