Elaborato Palmieri Marco Rosario n46000128
Transcript
Elaborato Palmieri Marco Rosario n46000128
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica tesi di laurea triennale Problematiche di Sicurezza di Sistemi Cloud Anno Accademico 2011-2012 Relatore Ch.mo Prof. Antonio Pescapè Candidato Marco Rosario Palmieri matr. N46000128 Dedica. Elenco delle figure 2.1 FISMA Risk Management Framework . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.1 Vulnerabilità per Cloud Pubblico e Privato . . . . . . . . . . . . . . . . . . . . . . 24 3.2 Architettura per Cloud Ibrido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3 National Security Cloud Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.4 Architettura On-Demand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3 Introduzione Visti i passi da gigante che l’informatica ha fatto negli ultimi decenni, non desta quasi più clamore assistere all’ultima rivoluzione messa in campo nel settore, cioè l’introduzione del paradigma Cloud Computing. In effetti, basta considerare la grande capacità di calcolo ottenibile, oppure la possibilità di avere dati e applicazioni sempre disponibili, anche in mobilità ed accedibili da un’eterogeneità di dispositivi, per capire che tale approccio rappresenta un’opportunità imperdibile sia per le aziende che per i privati. Un sistema Cloud può offrire dei servizi per l’archiviazione e per l’elaborazione dei dati, con l’utilizzo di risorse hardware e software virtualizzate e distribuite in rete. L’interrogativo che ci si pone a tal punto è il seguente: come verranno gestiti i propri dati dal fornitore dei servizi? La questione è di estrema importanza, perché i dati sono ciò che ci identificano nel mondo digitale dicendo, a noi e agli altri, chi siamo. Chi metterebbe, infatti, i propri risparmi in una banca se non fosse sicuro che questa è in grado di garantire l’integrità e la confidenzialità delle informazioni sul proprio deposito? Memorizzereste, in un sistema Cloud, tutti i vostri file (senza esclusione alcuna), quali il progetto su cui state lavorando, i dati che compongono agende e appuntamenti, dati fiscali oppure foto o filmati personali? Cosa accadrebbe se poi non riusciste, per qualche motivo, a recuperarli, oppure se venissero resi pubblici? Quale il danno? Vi fidereste se il nostro Governo usasse un sistema per memorizzare i dati (del tipo: fedina penale, pendenze fiscali, situazioni economiche dei singoli cittadini) in un sistema dove non sono ben chiare le politiche di gestione? Proprio a causa di questo - potenzialmente enorme - campo di impiego, per assicurare uno sviluppo meno traumatico ed ottenere la fiducia degli utilizzatori, è importante dare le necessarie rassicurazioni a tutte le entità coinvolte. Lo scopo di questa tesi sarà analizzare le problematiche di sicurezza che si possono avere utilizzando il Cloud Computing, facendo riferimento ai papers sottocitati. In prima battuta vedremo come, in taluni casi, un uso approssimato di questa tecnica è stato nefasto. Così facendo, cercheremo di fare chiarezza sui 4 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud rischi che si corrono se non si pone la giusta attenzione su determinati aspetti. Passeremo, poi, a presentare i maggiori enti che si impegnano a garantire sicurezza e affidabilità, mostrando i loro diversi ruoli e spiegandone la necessità e l’importanza. In ultimo, vedremo come è possibile mettere in sicurezza i propri dati, al fine di evitare che persone non autorizzate possano carpire il contenuto e le modalità per il loro recupero in caso di malfunzionamenti delle differenti componenti del sistema. 5 Capitolo 1 Problematiche del cloud computing 1.1 Attacchi nella storia La sicurezza è un processo iterativo che si basa sulla conoscenza del passato per la protezione contro attacchi futuri. Vediamo, quindi, alcuni problemi di sicurezza che hanno avuto i maggiori fornitori di sistemi Cloud. Nel giugno del 2008, molti utenti hanno ricevuto un’email di spam che invitava gli stessi a scaricare un aggiornamento per i loro sistemi. In realtà, l’ignaro lettore, installava un software che creava una backdoor nel suo computer preparandolo per essere utilizzato dai malintenzionati. L’innovazione di questo attacco è stata la sua attuazione: fino ad allora si usavano servizi di “bulletproof hosting” (fornitori di servizi che hanno una politica di apertura nei confronti di utenti con fini poco legittimi) oppure botnet (rete di computer privati) mentre questa volta il mittente è stata un’organizzazione accreditata quale Amazon Web Services. La tradizionale soluzione che si adotta in casi di spam (collocare gli indirizzi IP mittente in una black-list) è stata ovviamente fallimentare perché Amazon usa un meccanismo di assegnazione degli indirizzi dinamico, quindi non si può tener traccia dei mittenti. Questa misura ha portato a bloccare tutti gli IP della società e quindi sono state cestinate tutte le email, incluse ricevute di acquisto, fatture, campagne di marketing. Ciò si è concretizzato in un vero e proprio Denial Of Services per i clienti lasciando, 6 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud così, l’opportunità agli attacanti di inviare mail e costruire un nuovo botnet. Amazon ha risolto il problema semplicemente vincolando ogni account con un numero massimo di email inviabili, facendo quindi sbloccare gli indirizzi dalla lista nera di Spamhaus e prevenendo rapidamente ad abusi futuri. Può essere necessario, per risolvere problemi inaspettati come questo appena visto, la presenza continua di esperti con permessi particolari in grado di accedere ai dati sensibili degli utilizzatori del Cloud per diagnosticare e risolvere in modo efficace le falle. Questa figura è prevista e regolarizzata nei contratti dei servizi Server, ma la sua assenza nei sistemi Cloud crea seri rischi per la sicurezza. Un problema innescato da una situazione simile si è presentato alla Google dove, un dipendente con accesso a mail, chat e registrazioni telefoniche, ha sfruttato la sua posizione per spiare alcuni utenti. Una volta scoperta la violazione della privacy, il malintenzionato è stato licenziato e sono stati apportati miglioramenti al sistema che controlla gli accessi ai dati e la loro frequenza da parte dei dipendenti. Sicuramente non ha avuto meno scalpore ciò che è successo alla Microsoft con il Business Productivity Online Suite. Per un errore di configurazione, qualsiasi utente poteva scaricare la rubrica di altri ignari utilizzatori. Sebbene sia stato sistemato tutto in un paio d’ore, diversi utenti hanno potuto scaricare dati illegittimi. Caso analogo è successo al famoso sistema di Dropbox che, in seguito ad un update, permetteva a chiunque di loggarsi in tutti gli account senza le password corrette avendo piena gestione dei file privati. [1] 1.2 Rischi per l’utente Quando bisogna scegliere un fornitore di servizi Cloud a cui affidarsi è importante controllare bene le varie proposte perchè ci sono tanti diversi rischi da non sottovalutare. Secondo esperti quali I. Foster, Y. Zhao, I. Raicu e S. Lu, i sette più importanti sono: 1. L’accesso esclusivo degli utenti e privacy: assicurare che i dati sensibili memorizzati nei server siano accessibili e propagati solo agli utenti autorizzati. 2. Conformità alle normative delle infrastrutture, certificazioni di sicurezza e controlli esterni(in genere più affidabili di quelli interni). 7 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud 3. L’ubicazione dei dati: è molto rilevante la posizione geografica dove i dati saranno conservati per sapere a quale giurisdizione saranno affidati, quindi a quali diritti e doveri sono soggetti i propietari. 4. La segregazione dei dati: bisogna garantire che i dati di un utente siano completamente segregati da quelli di un altro utente; 5. Ripristino e recupero: è importante che il cloud provider disponga di un meccanismo di recupero efficace per ripristinare i dati in caso di catastrofi. 6. Il sostegno investigativo: data la complessità ad effettuare indagini su servizi cloud, se l’utente ritiene necessario, bisogna aggiungere una clausola appropriata nel contratto. 7. Disponibilità a lungo termine: i dati devono essere disponibili per il recupero anche nel caso in cui la società proprietaria del provider fallisca o cede i servizi a terzi. Purtroppo, però, questi non sono gli unici rischi che un utilizzatore può incombere usando un sistema Cloud. Ad esempio, ci sono tutti quelli associati alla virtualizzazione dell’ hardware che dipendono in grande misura dal software utilizzato (i più diffusi sono VMWare vSphere, Microsoft Virtual PC, Xen). Inoltre, l’utente deve fare attenzione anche alle politiche del provider in caso di migrazione dei dati e dei programmi verso un altro fornitore di servizi per non rischiare di rimanere bloccati in un sistema che non soddisfa a pieno le sue esigenze. [2, 3] 1.3 Tipologie di attacchi Come avviene nella maggioranza dei sistemi digitali, nel Cloud Computing ogni utente è riconosciuto tramite le sue credenziali. Queste spesso diventano l’obiettivo di attacchi da parte di malintenzionati per ottenere l’accesso alle preziose informazioni personali. Sebbene questo sembra il modo più intuitivo per sottrarre dati da un account, non è l’unico e ne tanto meno il più diffuso. Perciò diventa importante conoscere i quattro diversi tipi di attacchi per proteggere e proteggersi dalle intrusioni. 8 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud Uno dei modi più diffusi per rubare le credenziali degli account è sicuramente il phishing. L’attaccante crea un’interfaccia apparentemente identica a quella del sistema interessato dove il malcapitato sarà invitato ad inserire i propri dati per effettuare il login inconsapevole che questi saranno raccolti e resi disponibili al malintenzionato. Solitamente il phishing è accompagnato da campagne di spam. Queste sono veri bombardamenti di messaggi pubblicitari inviati per lo più attraverso email o chat che invitano il destinatario a visitare le pagine fraudolenti. Gli indirizzi dei riceventi vengono trovati in rete, copiandoli da forum, blog e liste oppure indovinati da sistemi di generazione pseudorandom. Molto diffusi sono anche gli attacchi DoS (Denial of Service). Come suggerisce lo stesso nome, questo attacco porta l’inibizione dei servizi offerti da un sistema rendendolo irraggiungibile e quindi inutilizzabile per le persone autorizzate. Il principio di funzionamento è tanto semplice quanto efficace: portare i servers a saturazione riempendoli di richieste contemporanee. In modo particolare sono sfruttati quei casi dove a richieste di pochi byte il server risponde con una mole molto maggiore di dati, scatenando così un traffico esponenziale. Un particolare tipo di DoS è il DDoS (Distributed DoS) che sfrutta reti di computer (per lo più botnet, insieme di computer infettati da virus che eseguono determinate azioni automaticamente) per rendere l’attacco più performante, più difficile da arrestare e per fare in modo che sia difficile rintracciare i creatori [1]. Man In The Middle attack è un altro tipo di intromissione nel quale l’attaccante si posiziona in mezzo tra un mittente ed un destinatario in modo da poter leggere, inserire o modificare a piacere i messaggi scambiati tra i due, rimanendo ovviamente invisibile agli stessi. Per fare questo il malintenzionato ha bisogno di accedere al flusso di informazioni scambiate tra la sorgente e la destinazione. Un attacco di questo tipo è sicuramente facilitato se sono presenti bug nelle interfacce o nella gestione delle API che, in taluni casi, permettono accessi anonimi, riuso di password e logging. Come è ovvio aspettarsi, tutte queste azioni fraudolenti non fanno altro che rallentare lo sviluppo dei sistemi Cloud perchè vanno contro i suoi principi fondamentali di confidenzialità, integrità e disponibilità dei dati (CIA). Ad esempio, un attacco di phishing combinato ad una campagna di spam potrebbe portare un utente di un servizio di Cloud a svelare le sue credenziali ad un hacker permettendogli così il pieno accesso all’account. Quest’ultimo potrebbe sfruttare i dati in suo possesso per acquisire altre informazioni sensibili del cliente come dati bancari o progetti di lavoro, oppure manomettendo o 9 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud cancellando file a suo piacimento. Con un attacco di tipo DoS (o meglio ancora DDoS) ad un provider di servizi Cloud è possibile rendere inutilizzabile l’intero sistema ai clienti con conseguenti danni produttivi, economici, perdita di affidabilità e di immagine della azienda. Una situazione analoga la si avrebbe di fronte ad un Man In The Middle attack che permetterebbe ad un malintenzionato di sniffare ed eventualmente manomettere i messaggi scambiati da un utente. Si capisce subito l’entità del problema pensando ad una transazione di denaro che potrebbe essere dirottata su un conto diverso da quello desiderato. [3, 4, 5] 1.4 Uso scorretto e leggi sul Cloud Il Cloud Computing, come molte innovazioni, è nato con fini nobili quali aiutare i ricercatori nel loro lavoro. Sebbene l’intenzione iniziale non lo prevedeva, questi sistemi possono essere abusati in modo nefasto diventando una minaccia per l’incolumità dei dati. Un esempio di abuso è l’utilizzo di sistemi Cloud per il salvataggio di informazioni ricavate attraverso operazioni di phishing. Non meno importante il caso in cui all’interno del personale dell’azienda che offre servizi Cloud ci siano uno o più addetti malintenzionati che potrebbero facilmente accedere ai dati dei clienti e modificarli a loro piacimento. Secondo un sondaggio del CERT Insider Threat Center 2010 Cyber Security Watch Survey, più del 67% degli intervistati ha ammesso che gli incidenti interni sono più dannosi di quelli esterni. [7] Quindi, per evitare questa situazione, è buona pratica attivare sistemi di monitoraggio anche all’interno della stessa azienda e distribuire i privilegi sui dati tra i vari dipendenti in modo da evitare accentramenti. E’ necessario essere molto prudenti su queste tematiche di sicurezza ed è importante puntare sulla prevenzione poichè le norme attuali in questo ambito non sono molto chiare e, a volte, sono addirittura discordanti tra diverse nazioni cosa molto influente data la dislocazione dei server. Infatti, alcuni paesi, in maggioranza quelli europei, prevedono l’obbligo di distribuire i server di uno stesso Cloud solo sul territorio sotto la loro giurisdizione impedendone la distribuzione all’estero. Il governo francese ha recentemente introdotto leggi stringenti sulla gestione dei dati, regolamentando anche i casi di trasferimenti da un provider ad un altro attraverso linee guida e standard da seguire. [3, 4, 6] 10 Capitolo 2 Enti per la sicurezza 2.1 Cloud Security Alliance Molti gruppi ed organizzazioni hanno focalizzato la loro attenzione sul Cloud Computing e le sue problematiche, soprattutto per quello che riguarda la Sicurezza. La Cloud Security Alliance è un’organizzazione no-profit che ha promosso l’uso delle migliori pratiche di Sicurezza ed ha permesso la loro diffusione, in modo tale che chiunque potesse esserne a conoscenza e potesse avere delle linee giuda da seguire. Nel Marzo 2010 la CSA ha pubblicato le sue ricerche che avevano lo scopo di identificare i maggiori rischi che si corrono utilizzando i servizi Cloud ed il miglior modo di proteggersi da essi. Ed è proprio grazie a questi studi che la suddetta associazione ha potuto stilare una breve lista dei maggiori pericoli, che viene di seguito riportata: • Abuso ed uso nefasto del Cloud Computing • Interfacce e applicazioni non sicure • Dipendenti malintenzionati • Vulnerabili tecnologie di condivisione • Inconsistenza o perdita di dati • Espropriazione di account e servizi 11 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud • Altri rischi Sulla base del lavoro della CSA, un sistema cloud può essere modellato su sette livelli: Facility A questo livello si parla di controllo di sicurezza effettuato fisicamente, cioè utilizzando mezzi di sorveglianza per controllare il presonale dell’azienda che offre il servizio cloud, l’accesso ai dati e la frequenza delle operazioni mediante, ad esempio, telecamere a circuito chiuso. Inoltre bisognerebbe effettuare una distribuzione dei privilegi, in modo tale da non permettere a tutti l’accesso ai dati archiviati, visto che potrebbero esserci malintenzionati anche all’interno del personale, i quali avrebbero altrimenti un facile accesso alle informazioni e la loro manipolazione diventerebbe un gioco da ragazzi. Inoltre il provider deve tener conto anche degli aspetti logistico-ambientali, che potrebbero sembrare poco importanti; invece bisogna garantire una sicurezza architettonica tale da poter proteggere il centro dati da attacchi fisici data l’importanza dei dati in esso contenuti. È chiaro che la società in questione deve offrire una certa flessibilità, nel senso che deve tener conto che le politiche di sicurezza cambiano col passar del tempo e quindi è necessario tenersi aggiornati e modificare man mano le prevenzioni adottate. [8] Network Una delle caratteristiche principali del cloud computing consiste nell’avere l’accesso ai dati e la possibilità di controllarli tramite la rete Internet. Sappiamo però che Internet è per definizione inaffidabile, quindi necessita di protezioni quali firewall, sistemi di rilevamento di intrusioni o proxy di rete. Ad esempio, un firewall posto al confine del cloud con il compito di bloccare i pacchetti “fastidiosi” può limitare ma non eliminare l’accesso all’interfaccia da parte di entità maligne. Una soluzione utilizzata dal cloud computing è quella di mantenere una “lista nera” - blacklist - di indirizzi IP, soluzione efficace se si considera che l’accesso alla blacklist da parte del provider è rapido e quindi efficiente. L’utilizzo di un proxy, invece, potrebbe non essere efficiente se il volume di traffico che entra ed esce dal centro dati è molto elevato, influendo quindi sulle prestazioni del sistema (anche in termini di velocità). Potrebbe essere una buona idea solo nel caso in cui il provider abbia effettuato una distribuzione dei compiti ed abbia la possibilità di controllare lo stato della rete attraverso un processo di packet capture, che richiederebbe un’indicizzazione di una serie di dati da conservare per 12 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud un lungo periodo di tempo, quindi le prestazioni comunque non sarebbero quelle desiderate, senza contare il fatto che l’utente dovrebbe star lì a controllare continuamente il lavoro del provider. [8] Hardware Il concetto su cui si basa il Cloud Computing è che l’utente che usufruisce del servizio possa interagire soltanto con un ambiente virtualizzato, non fisico. Per questo motivo, la responsabilità del mantenimento e del monitoraggio dell’hardware ricade sul provider. In particolare, questo deve controllare che i mezzi messi a disposizione non abbiano problemi a livello di processore, memoria, memorizzazione su disco, temperatura, tensione o qualsiasi altro tipo di problema che un sistema informatico possa incontrare. Inoltre deve misurare la mole di dati da memorizzare e distribuirla in modo da bilanciare il carico e rendere più efficaci le risorse. Deve poi controllare la presenza di anomalie e garantire che l’hardware non sia stato manomesso, utilizzando adeguati protocolli di sicurezza per evitare comportamenti sospetti o, nel caso in cui questo non sia stato possibile, almeno porvi rimedio immediatamente. [8] OS Qualsiasi sistema operativo in un servizio di Cloud dev’essere estremamente sicuro e controllato. In generale, un minor numero di caratteristiche di un sistema operativo si traduce in un minor numero di punti di errore; poiché un sistema operativo in un ambiente cloud ha bisogno di poche funzionalità, quelle non essenziali devono essere rimosse. Tutto ciò che resta deve essere controllato accuratamente perché non si può accettare alcun tipo di vulnerabilità, visto che altrimenti potrebbero essere compromessi tutti i dati del cliente. Il ruolo del sistema operativo in un cloud è quello di monitorare ed organizzare tutte le chiamate di sistema tra le varie macchine virtuali e l’hardware, in modo che si possa accedere correttamente ai dati. In taluni casi potrebbe essere opportuno che i dati sensibili vengano crittografati prima di essere memorizzati, perché teoricamente in questo modo nessuno potrebbe avere accesso ai dati; in realtà non è proprio così visto che il sistema operativo gestisce tutte le funzioni delle macchine virtuali e quindi potrebbe accedere al testo memorizzato in chiaro, nonché alle chiavi utilizzate dal processore per effettuare la crittografia. Inoltre sarebbe opportuno che il provider utilizzasse un unico sistema operativo virtualizzato in modo da tenere sotto controllo l’immagine ad esso associata e, in caso di modifiche, controllarne l’attendibilità e, se necessario, ripristinare il backup (che comunque dev’essere memorizzato su dispositivi di sola lettura) per ritornare all’ultimo stato valido. Il provider dovrebbe poi indagare ulterior13 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud mente su tutti gli eventi per cercare di identificare la causa iniziale. Questo atteggiamento consentirebbe di individuare la falla della politica di sicurezza attuata e di aggiornarla per adattarsi alla minaccia e prevenire problemi futuri. Questa modalità è stata certificata ed è infatti attualmente utilizzata da alcuni provider.[8] Middleware [9] Parlare di Middleware significa parlare di un sistema che mette in comunicazione le applicazioni con il sistema operativo che coordina le risorse utilizzate per assicurare la fruizione dei servizi Cloud. Alcuni Middleware svolgono anche un’azione di sicurezza, monitorando la comunicazione tra i vari componenti del sistema, che per lo più avviene attraverso dati crittografati. È ovvio che la presenza di questa proprietà fa aumentare le responsabilità a carico del provider, che deve garantire la sua integrità e la sua immutabilità (in particolare deve controllare che i suoi addetti non manipolino in alcun modo il sistema); un danno al Middleware potrebbe risultare più grave rispetto ad un problema al sistema operativo: questo perché il Middleware tende ad avere i diritti per accedere, manipolare e distribuire i dati all’interno del Cloud, oltre a funzioni specializzate come la gestione di controllo degli accessi. La società fornitrice dei servizi deve assicurare principalmente tre cose: 1. L’integrità dell’architettura software, escludendo falle che potrebbero derivare da una configurazione errata delle risorse umane o politiche. Tali difetti possono essere indicati da un abuso di funzioni normali del Middleware, anche se - in generale - non sempre le anomalie si correlano efficientemente a violazioni di sicurezza. Bisognerebbe dunque effettuare un monitoraggio delle funzioni del Middleware, ma ciò risulta abbastanza complicato. 2. La codifica dei dati memorizzati in modo da non renderli vulnerabili. Durante la creazione del software, lo sviluppatore potrebbe testare la vulnerabilità utilizzando strumenti di fuzzing oltre alle normali procedure di collaudo. Ciò significa fornire input errati al programma in un ambiente controllato e documentare eventuali crash ed errori in modo da poter risolvere il problema sin dall’inizio, prima della distribuzione. La documentazione dovrebbe contenere le informazioni riguardanti le falle scoperte ed un piano di gestione per le stesse. 14 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud 3. I servizi di sicurezza, che includono il monitoraggio, il controllo degli accessi, la convalida dei dati, e altre funzioni. Ovviamente il cliente deve fidarsi del software che gestisce la sicurezza, perché non può pensare di osservare da vicino le procedure utilizzate, anche se ha il pieno diritto di essere a conoscenza delle modalità di sicurezza che gli vengono offerte. Le aziende hanno la libertà di utilizzare le modalità che più ritengono opportune e di sviluppare soluzioni proprietarie personalizzate. Qualunque sia la soluzione, il fornitore deve indicare cosa e come si controlla in modo che il cliente possa assumere decisioni consapevoli. Anche se realizzare questo monitoraggio richiede la memorizzazione di un grande volume di dati, è fattibile e, dunque, è consigliabile effettuarlo per la tranquillità del cliente. Application Per applicazione si intende il mezzo attraverso il quale un provider si interfaccia con gli utenti, i quali dovrebbero preferire quelle in cui il codice sorgente e la logica di business sono stati attentamente esaminati da terzi, piuttosto che affidarsi ad un qualsiasi tipo di “security through obscurity”. Il problema principale che incontrano le applicazioni è il fatto che la maggior parte di esse è Web-based, cioè deve operare in un ambiente non sicuro quale il browser. Perciò le applicazioni devono effettuare operazioni di monitoraggio per rilevare comportamenti anomali e violazioni di sicurezza. Inoltre è necessario che i provider si occupino di prendere le pratiche migliori per il web, visto che in questo campo le percentuali di attacco sono superiori alla media. La possibilità di implementare politiche di sicurezza molto più severe è un vantaggio del Cloud Computing. Un modo per prevenire problemi potrebbe essere la distribuzione di certificati digitali SSL (Secure Sockets Layer), un protocollo progettato per consentire alle applicazioni di trasmettere informazioni in modo sicuro e protetto; le applicazioni che utilizzano i certificati SSL sono in grado di gestire l’invio e la ricezione di chiavi di protezione e di criptare e decriptare le informazioni trasmesse utilizzando le stesse chiavi. Un’altra idea potrebbe essere quella di utilizzare DNSSEC (Domain Name System Security Extensions), per dimostrare la legittimità dei domini in modo che il cliente possa autenticare le risorse. SSL e DNSSEC sono esempi di crittografia a chiave pubblica che possono essere utilzzati per verificare i servizi forniti attraverso il Cloud. Le chiavi private associate a quelle pubbliche non dovrebbero mai essere inserite nel Cloud, ma devono rimanere esclusivamente in possesso del cliente. L’attenzione da parte del 15 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud provider a diffondere metodi di sicurezza aiuta a prevenire la manomissione di dati sensibili. [9] User Se il Cloud Computing servisse soltanto per la distribuzione di informazioni pubbliche, quali pagine web o video, l’interesse da parte dell’utente nei confronti della sicurezza avrebbe sicuramente un impatto limitato. Se, invece, i dati memorizzati fossero privati, al cliente interesserebbe molto di più che questi venissero messi al sicuro. In generale, però, le politiche adottate dal provider devono andare al di là dell’interesse del cliente. L’obiettivo principale è quello di informare il cliente dei risultati del monitoraggio effettuato ed eventualmente avvisarlo di comportamenti anomali. Ad esempio, Google Apps monitora gli accessi ai dati (conservando anche l’indirizzo IP dal quale viene effettuato l’accesso) e comunica all’utente ciò che avviene. Data la facilità con cui un utente può rendere instabile un sistema pressocché sicuro con pochi click (ad esempio, utilizzando una password estremamente facile da scoprire), potrebbe essere opportuno educare i clienti meno informati sulle politiche di sicurezza attraverso programmi e servizi appositi, quali PhishGuru, in modo tale da permettergli di avere una giusta consapevolezza sui rischi che si corrono, vista la vulnerabilità dei browser e delle applicazioni che utilizziamo quotidianamente. [9] 2.2 NIST Come avviene per tutte le innovazioni tecnologiche, arriva il momento in cui è necessario regolarne e disciplinarne l’uso. Negli Stati Uniti d’America è nata la US National Institute of Standard and Technology (NIST), un’agenzia del Commerce Department’s Technology Administration, che lavora costantemente per definire standard e linee guida per la gestione della sicurezza nel Cloud Computing ed evidenzia i punti cruciali dove è opportuna l’istituzione di leggi apposite. Proprio da questo gruppo, recentemente, è nato il “Guide to Adopting and Using the Security Content Automation Protocol” che introduce un nuovo protocollo creato sui casi d’uso raccolti dalla comunità che supporta il progetto. La partecipazione della comunità, in queste circostanze, è fondamentale per garantire un lavoro imparziale che tiene conto delle diverse proposte di soluzioni adottate, prevenendo così l’imposizione di comportamenti da seguire che potrebbero favorire lo sviluppo di alcune aziende a scapito di altre. Proprio per garantire una trasparenza del loro lavoro, la NIST 16 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud ha creato il sito scap.nist.gov grazie al quale è possibile rimanere sempre aggiornati sul lavoro svolto e proporre al team le proprie idee e considerazioni. Il National Institute of Standard Technology (NIST) ha definito il Cloud Computing come “a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networsks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.” [10] 2.2.1 SCAP La gestione della sicurezza dei sistemi informativi è un compito costoso ed impegnativo e la maggior parte delle organizzazioni ha un ampio insieme di requisiti di sicurezza da rispettare. Per superare questi limiti e ridurre i costi, il NIST ha sviluppato il Security Content Automation Protocol, usufruendo delle risorse di sicurezza supportate dalla comunità. SCAP è una suite di specifiche che standardizzano il formato e la nomenclatura con la quale i software di sicurezza comunicano informazioni riguardo l’identificazione e i flussi del software e le configurazioni di sicurezza. Questo protocollo multipurpose supporta il controllo automatizzato delle vulnerabilità, il controllo tecnico delle attività e alcune misure di sicurezza. [11] SCAP è stato creato per organizzare ed esprimere informazioni relative alla sicurezza in modalità standard; può inoltre aiutare a mantenere la sicurezza di sistemi aziendali verificando l’installazione delle patches oppure controllando le impostazioni di configurazione del sistema di sicurezza. I provider devono garantire la sicurezza di diversi sistemi, applicazioni e sistemi operativi che hanno modalità di gestione differenti; inoltre devono riconfigurare i software o installare le patches quando vengono scoperte falle o attacchi al sistema. Quando le vulnerabilità non hanno nomi standard, lo staff addetto alla sicurezza potrebbe non sapere se sono state già rilevate e rapportate. Lo scopo della standardizzazione introdotta da SCAP è quindi quello di consentire alle aziende di gestire questi processi di errore e di superare la mancanza di interoperabilità tra diversi sistemi di sicurezza. 17 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud SCAP, comunque, non vuole sostituire gli altri tool di protezione, infatti può essere incorporato un supporto apposito nei software esistenti. Le specifiche tecniche di SCAP possono essere raggruppate in tre categorie: • linguaggi per specificare liste di controllo o “checklists”, generare rapporti sulle liste di controllo e specificare le procedure di testing usate dalle checklists; • enumerazioni, che includono nomenclature e dizionari per la sicurezza e le informazioni relative ai prodotti; • misure di vulnerabilità e sistemi di scoring, che misurano le caratteristiche delle falle e generano valutazioni basate su esse. SCAP usa riferimenti standard ai dati per identificare i difetti del software e le configurazioni di sicurezza. Questo riferimento dei dati è fornito dal National Vulnerability Database (gestito dal NIST e sponsorizzato dal Department of Homeland Security). Vediamo adesso in che modo le aziende possono utilizzare SCAP per usufruire dei suoi benefici. Standardizzare Le Checklists : Una lista di controllo generata che rispetta le norme di SCAP da informazioni riguardo le impostazioni di sicurezza desiderate, le patches installate e altri elementi di sicurezza in un formato standard. Le organizzazioni possono ottenere checklists espresse tramite SCAP grazie al NIST Configuration Checklist Program (disponibile su http://checklists.nist.gov) e personalizzarle per soddisfare specifici requisiti aziendali. Dimostrare La Conformità : Le checklists conformi al protocollo contengono degli identificatori di configurazione che consentono di generare automaticamente una valutazione che verifica la conformità ai requisiti stabiliti dal governo americano. Quest’automazione riduce sensibilmente lo sforzo necessario per ottenere i risultati della valutazione, prevedendo una notevole riduzione dei costi. Usare Le Enumerazioni Standard : Le organizzazioni usano vari tools per la gestione della sicurezza; SCAP consente a queste di standardizzare le enumerazioni quando ci si riferisce a falle di un software, problemi di configurazione di sicurezza e piattaforme. Utilizzare le enumerazioni standard rende più facile l’uso degli strumenti di sicurezza, la condivisione di informazioni e l’istituzione di linee guida per affrontare i problemi che si presentano. 18 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud Misurare La Vulnerabilità : SCAP consente alle aziende di misurare la vulnerabilità di un software attraverso sistemi che usano il Common Vulnerability Scoring System - CVSS - (cfr http://nvd.nist.gov); questo permette di priorizzare il risanamento dei difetti legati alla sicurezza del software. Quando viene scoperta una nuova falla, viene annunciata pubblicamente e il NIST crea una CVE (Common Vulnerabilities and Exposures) apposita, identifica i prodotti interessati con un CPE (Cloud Processing Equipment) e ne effettua una misurazione tramite il CVSS. Tutte queste informazioni vengono poi inserite nel National Vulnerability Database, in modo tale da permettere alle aziende di sfruttarle per risolvere i problemi riscontrati e controllare quelle nuove. Validazione dei Prodotti Conformi a SCAP : Per testare l’attitudine dei prodotti a sfruttare le caratteristiche e le funzionalità messe a disposizione da SCAP è previsto un programma di validazione, che evidenzia l’architettura modulare che permette l’interoperabilità tra i prodotti conformi al protocollo. La validazione viene fatta sulla base di risultati di test effettuati in diversi laboratori; le validazioni vengono poi pubblicate sulla pagina web del NIST SCAP Validated Tool (http://nvd.nist.gov/scapproducts). Integrare SCAP su Prodotti Software : Molti prodotti possono valutare le impostazioni di configurazione del software utilizzando SCAP invece di affidarsi a controlli manuali. Inoltre, i fornitori dei prodotti ed altri sviluppatori di checklist creano le loro liste di controllo utilizzando SCAP ed in questo modo contribuiscono al National Checklist Program per promuovere ed ampliare la disponibilità delle liste di controllo. In definitiva, SCAP sta rendendo possibile l’automazione di un numero sempre maggiore di compiti da svolgere necessariamente per avere un certo grado di sicurezza, riuscendo quindi a risparmiare tempo e denaro che inevitabilmente andavano impegnati quando tutto ciò non era possibile. [11] 2.2.2 FISMA Il E-Government Act fu una proposta di legge accettata dal 107° Congresso e trasformata in legge dal Presidente degli Stati Uniti nel Dicembre del 2002: riconosce l’importanza della sicurezza delle informazioni per gli interessi della sicurezza economica e nazionale degli Stati Uniti. Il III Titolo del E-Government Act, intitolato Federal Information Security Management Act (FISMA), 19 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud richiede alle agenzie federali di sviluppare, documentare ed implementare un programma per provvedere alla sicurezza dei sistemi che supportano le loro operazioni e attività, incluse quelle fornite o gestite da altre sorgenti. [12] FISMA assegna responsabilità specifiche alle agenzie federali, National Institute of Standards and Technology (NIST) e Office of Management and Budget (OMB), per rafforzare la sicurezza dei sistemi informativi. In particolare richiede alle aziende di implementare politiche e procedure di sicurezza che permettano di ridurre il costo ed i rischi ad un livello accettabile. Secondo FISMA, il termine “Information Security” significa “proteggere le informazioni ed i sistemi informativi da accesso, utilizzo, divulgazione, perturbazione o distruzione non autorizzati per fornire integrità, confidenzialità e disponibilità”. [13] In accordo con FISMA, il NIST è responsabile per lo sviluppo di standards, metodi e tecniche per fornire un’adeguata sicurezza delle informazioni per tutte le operazioni delle aziende, escludendo la sicurezza dei sistemi nazionali. NIST lavora a stretto contatto con le agenzie federali per migliorare la loro comprensione e l’attuazione di FISMA, per proteggere le loro informazioni e pubblicare protocolli e linee guida che forniscono la base per i programmi di sicurezza dei dati. NIST sviluppa standards, metriche, tests e programmi di validazione per promuovere, misurare e validare la scurezza nei sistemi e servizi informativi. Per questo motivo nel Gennaio 2003 fu stabilito il FISMA Implementation Project con lo scopo di supportare l’implementazione e la conformità al FISMA. [14] 2.2.2.1 FISMA Implementation Project In risposta al FISMA, NIST ha avviato la Fase I del suo FISMA Implementation Project, che comprende il Risk Management Framework (RMF) in figura 2.1. Mentre la RMF è “system oriented”, concentrata cioè sulla tutela di un sistema informativo e le informazioni ad esso correlate, il progetto FISMA riguarda la gestione dei rischi per l’impresa, che si manifestano mediante violazioni della sicurezza dei propri sistemi informativi e dei dati ad essi associati. 20 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud Figura 2.1 – FISMA Risk Management Framework La RMF comprende anche attività come la valutazione dei rischi, la pianificazione della sicurezza e altre funzioni correlate alla sicurezza che si verificano all’interno del ciclo di vita di un sistema di sviluppo. Per andare incontro ai requisiti del FISMA, il NIST ha deciso di revisionare FIPS 102, la certificazione del suo sistema di sicurezza rilasciato nel 1983. In particolare, il nuovo standard FIPS 199 (Federal Information Processing Standard 199, Standards for Security Categorization of Federal Information and Information Systems) introduce alcuni cambiamenti significativi su come il governo degli Stati Uniti dovrebbe proteggere la sicurezza dei suoi sistemi informativi. Emanato nel Febbraio 2004 ed entrato in vigore il giorno stesso in cui è stato rilasciato, FIPS 199 soddisfa il requisito che FISMA affida a NIST di “sviluppare standard che le agenzie federali possono usare per categorizzare le informazioni ed i sistemi di informazioni basati sull’obiettivo di fornire adeguati livelli di sicurezza delle informazioni in base ad una serie di livelli di rischio.” [15] Questo standard si basa su un concetto semplice e ben consolidato, quello di determinare priorità idonee per i sistemi informativi delle aziende e di conseguenza applicare misure appropriate per proteggere adeguatamente questi sistemi. I controlli di sicurezza applicati su un particolare sistema informativo dovrebbero essere commisurati alla criticità ed alla sensibilità del sistema stesso, calcolate sulla base di una serie di paramentri quali il potenziale impatto su operazioni 21 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud dell’azienda e le sue attività, oppure sulla possibilità che ci possano essere individui che manomettano la sicurezza attraverso la perdita di confidenzialità (una divulgazione non autorizzata), integrità (una modifica non autorizzata) o disponibilità dei dati(denial of service). FIPS 199, insieme al FISMA RMF, può dunque essere usato come una parte del programma di gestione dei rischi di un’azienda per garantire che vengano applicati controlli di sicurezza adeguati ai sistemi informativi. Nella Fase II del progetto di implementazione FISMA, il NIST intende collaborare con organizzazioni professionali ed accademiche per stabilire un programma di accreditamento per le organizzazioni in grado di svolgere i processi di valutazione dei controlli di sicurezza discussi precedentemente. L’obiettivo di questa attività sarebbe quello di creare un gruppo di organismi competenti nella valutazione dei controlli di sicurezza che potrebbero essere assunti dalle agenzie governative per aiutarle con le loro valutazioni. In conclusione il FIPS 199, la FISMA RMF e la suite associata di documenti di orientamento cambieranno significativamente la modalità in cui le agenzie federali categorizzano e danno priorità ai loro sistemi e quelle in cui selezionano, documentano e implementano i controlli di sicurezza del sistema. Inoltre impatteranno sul modo in cui si effettuano certificazioni ed accreditamenti, e su come viene eseguito il monitoraggio dei controlli per garantire che continuino ad operare come previsto con risultati visibili a livello di costi, consistenza, miglioramento di sistemi e riduzione dei rischi. [15] 22 Capitolo 3 Architetture per la sicurezza di sistemi Cloud Le tecniche di sicuezza del Cloud Computing nascono su principi precedentemente sviluppati nell’ambito dei sistemi informatici. E’ risultato molto utile attingere alle basi del sistema operativo Multics (Multiplexed Information and Computing Service), le quali sono diventate elementi essenziali non solo dei sistemi operativi ma anche del Cloud moderno. [16] Ad esempio, Multics implementa meccanismi per la protezione basati su permessi (anzichè su esclusioni) con controllo degli accessi. Inoltre, tali sistemi seguono il famoso principio di Kerckhoffs, trascurando la riservatezza dell’algoritmo di crittografia seppur mantenedo segreta la chiave. Ovviamente le tecniche già sviluppate non potevano essere sufficienti per proteggere un Cloud Computing, per cui sono state affiancate ad altri principi e architetture che variano a seconda della finalità del sistema. [17] 3.1 Architettura basata sul modello proattivo per Cloud ibrido I modelli di distribuzione Cloud vengono classificati dal NIST come: 23 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud Figura 3.1 – Vulnerabilità per Cloud Pubblico e Privato • Private Cloud - Usato in modo privato, tipicamente l’utilizzatore è il proprietario o ha un contratto d’affitto dell’infrastruttura • Community Cloud - Condivisione di infrastrutture tra una o più comunità che condividono gli stessi interessi • Public Cloud - Offerto al pubblico, solitamente si tratta di mega-infrastrutture distribuite su larga scala • Hybrid Cloud - Composizione di due o più Cloud A seconda del sistema utilizzato, si può prevedere una predisposizione ad alcuni rischi ed una maggiore protezione nei confronti di altri. In particolare consideriamo solo i modelli di distribuzione privati e pubblici in quanto gli altri due sono delle combinazioni di questi. Con riferimento al primo capitolo, possiamo vedere la figura 3.1 che ci fornisce una visione rapida delle vulnerabilità dei due sistemi. Possiamo concludere che il Cloud pubblico è più vulnerabile rispetto quello privato, motivo che spinge diverse aziende ad adottare il secondo. Una recente ricerca fatta da Novell mette in evidenza come il mercato sta andando in direzione del Cloud ibrido, che accosta l’agilità, la flessibilità e l’economicità di quello pubblico alla sicurezza e all’affidabilità di quello privato. [18] In una conferenza internazionale dell’IEEE tenuta nel Maggio 2011, è stata presentata una nuova architettura per Cloud ibrido focalizzata sulla sicurezza, la quale utilizza un Private Cloud che offre un controllo attivo del provider. In particolare la soluzione offerta è duplice: 24 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud Figura 3.2 – Architettura per Cloud Ibrido • un aumento delle politiche di sicurezza • un sistema dedicato alla sicurezza, implementato come un sottostrato sull’infrastruttura di Cloud privato che controlla in modo proattivo e segnala eventuali violazioni delle policy. Questa architettura prevede, in cascata, i seguenti passi: • creazione di dettagliate politiche di gestione • identificazione dei Cloud Service Provider compatibili con tali politiche • stesura di un dettagliato Service Level Agreement con le disposizioni per il monitoraggio dei servizi • continuo monitoraggio per scovare eventuali intrusioni • rilascio di feedback per raffinare il modello Ruolo fondamentale ricopre la ricerca delle politiche di gestione, dove [19] devono essere tenute in considerazione le sfide ed il gran numero di minacce alla sicurezza. E’ importante la partecipazione in questa fase di tutti i tipi di figure professionali coinvolte nel sistema, inclusi gli utenti finali e gli amministratori che, per ovvi motivi, hanno un punto di vista completamente differente. Proprio 25 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud per la loro importanza, queste politiche devono chiaramente descrivere gli utenti privilegiati, la locazione dei dati, lo schema di crittografia, il recovery, la modalità di investigazione, la disponibilità a lungo termine, la gestione dei dati, le applicazioni di sicurezza, la sicurezza delle interfacce e delle API ed i meccanismi di cancellazione delle informazioni. Il sottosistema dedicato alla sicurezza provvede a 4 compiti primari: 1. monitorare gli indirizzi IP e le blacklist per prevenire attacchi DoS 2. utilizzare strumenti di scansione automatica delle vulnerabilità del sistema 3. utilizzare strumenti di test di penetrazione, come il Metasploit Framework [20], senza però causare alcuna interruzione del servizio 4. effettuare il logging di sistema per conoscere le modifiche apportate e poterle rapidamente ripristinare 3.1.1 Raccomandazioni e linee guida del NIST per Cloud pubblico Per far crescere la fiducia delle organizzazioni nell’utilizzo del Cloud Computing, il Laboratorio di Information Technology (ITL) del NIST ha recentemente pubblicato SP 800-144, “Guidelines on Security and Privacy in Public Cloud Computing”. L’articolo discute dei vantaggi e degli svantaggi di servizi cloud pubblici e, in funzione di questi, delinea dei punti fondamentali per assicurare un’adeguata protezione puntando sull’istruzione degli utenti finali alle metodologie adottate. Ad esempio, consiglia di pianificare sempre in modo dettagliato il lavoro da svolgere per assicurare la conformità delle policy di sicurezza organizzative, il rispetto della privacy, e che le risorse IT vengano utilizzate saggiamente. Questo approccio dimostra la sua efficacia massima quando un’azienda comincia a trasferire i propri servizi su un’infrastruttura esterna all’organizzazione innescando il meccanismo dell’outsourcing dei dati. Fin da subito bisogna prestare massima attenzione ai problemi e alle procedure di sicurezza perchè, un errore o una mancanza in fase iniziale può provocare un’esposizione del sistema a rischi inutili senza considerare l’aumento esponenziale del costo di riparazione delle falle. Inoltre, prima di scegliere il fornitore Cloud è bene studiare le certificazioni e il carico che può sopportare in modo da poter offrire una buona qualità dei servizi soddisfando le eventuali richieste e vincoli che il progetto impone. 26 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud Assicurarsi che il lato client (con le relative interfacce) rispetta le esigenze organizzative, come la separazione tra gli utenti, e di privacy. Un problema comune è quello innescato dalle interfacce web che, attraverso estensioni e plugin dei browsers, possono permettere la pubblicazione di dati sensibili. La grossa diffusione degli smartphone ha portato la necessità di utilizzare le risorse Cloud in estrema mobilità. Tali dispositivi hanno un hardware più limitato di quello dei personal computer e per questo motivo non implementano tutte le politiche di sicurezza, innescando così un meccanismo a catena che può ledere l’integrità di tutto il sistema condiviso. Come ultimo consiglio, l’ITL propone di monitorare le attività e valutare l’attuazione di politiche, standard, procedure, controlli e linee guida che stabiliscono e proteggono la riservatezza, l’integrità e la disponibilità delle risorse di sistema di informazione. [21] 3.2 National Security Cloud Architecture Per modelli di sicurezza nazionale, il modello ibrido proposto nel paragrafo precedente non è completamente adatto in quanto necessita del contributo del Community Cloud. Tali sistemi sono utilizzati non solo per supporto a missioni di sicurezza, ma sono messi a disposizione anche di comunità di interessi - COI - (da qui l’esigenza del Community Cloud). Il COI è un approccio di cooperazione in un gruppo di utenti che condividono un interesse e un vocabolario comune per lo scambio di informazioni nel perseguimento dei loro obiettivi di missione. Il COI è generalmente a breve termine: deve essere creato in modo rapido e immediatamente risolto una volta che gli obiettivi della missione sono stati raggiunti. Le reti COI, quindi, si distinguono dalle altre per creazioni, gestioni e distruzioni veloci e dinamiche, caratteristiche principali dei sistemi Cloud. Ad ogni modo, spostare i sistemi di sicurezza nazionale in un sistema Cloud non è un compito facile. Diversi papers suggeriscono linee guida per fare queste operazioni [22-27] ma solo in uno si parla di una architettura studiata appositamente [28]. Questa tiene in considerazione le nuove esigenze introdotte dalla presenza dei COI, considerando la possibilità di questi di creare continui rapporti di collaborazione con diverse associazioni esterne che devono avere un accesso limitato al sistema, accostandole al cloud ibrido già implementato. L’architettura proposta è formata da: • Private Cloud per quelle informazioni sensibili la cui condivisione è ristretta a pochi utenti 27 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud Figura 3.3 – National Security Cloud Architecture • Community Clouds per la condivisione di informazioni sia a lungo che a breve termine e per progetti di collaborazione • Public clouds per la raccolta e la diffusione delle informazioni pubbliche • Cloud per la ridondanza dei dati, per il recupero e il ripristino dello stato e dei dati in presenza di malfunzionamenti Requisiti del National Cloud impongono delle restrizioni sulla separazione fisica e logica delle partizioni dell’infrastruttura tra gli utilizzatori. Ad esempio, non è tollerabile l’utilizzo di una stessa Virtual Machine (VM) tra più comunità nè tantomeno l’esecuzione di VM multiple all’interno della stessa partizione. Per ovviare a questo problema, l’architettura proposta prevede la gestione della memoria in robuste partizioni a grana fine. Inoltre, sono implementati anche degli algoritmi per la cancellazione sicura in modo da assicurare che nessuno possa recuperare informazioni dell’utente che ha precedentemente usato la memoria assegnatagli. Oggigiorno sono ancora poche le nazioni che usano queste architetture, ma ovunque sono state adottate hanno avuto un notevole successo, come per esempio nelle forze armate americane con il Rapid Access Computing Environment (RACE) dello U.S. Defense Information Systems Agency 28 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud (DISA) [29], oppure nel sistema sviluppato e gestito dal U.S. General Services Administration storefront accedibile dal sito apps.gov [30] 3.3 Architettura On-Demand Avere una sicurezza forte comporta un importante consumo di risorse IT e aumenta le difficoltà di utilizzo. Per garantire una giusta protezione con una gestione semplice e contrastare lo spreco delle risorse è possibile utilizzare un’architettura on-demand, la quale si propone di garantire una sicurezza differenziata per i vari servizi di cloud computing. L’architettura è diviso in tre strati: 1. input, che si divide a sua volta in • livello di sicurezza • tipo di servizio • rischio di accesso alla rete 2. lo strato delle politiche di gestione che ha tre unità diverse corrispondenti ai tre domini di sicurezza 3. meccanismo di sicurezza Scopo del processo in cascata appena descritto è la produzione di parametri in relazione agli input in ingresso che servono per configurare il tipo di protezione da adottare per uno specifico servizio. Per questo motivo, devono essere settati i tre parametri in modo congruente con la rete e il servizio richiesto, scegliendo valori maggiori rispetto a quelli che l’operatore del Cloud ha impostato come livelli minimi per garantire un funzionamento accettabile. In caso di non configurazione dei parametri di input, il sistema può assegnare un servizio con un livello di sicurezza minimo, che spesso non risulta essere il più adatto. Questo tipo di architettura così studiata è utile quando 29 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud Figura 3.4 – Architettura On-Demand vengono offerti servizi differenti. Ad esempio, uno streaming multimediale ha restrizioni circa il ritardo ed è permissivo rispetto l’integrità mentre un trasferimento dati, solitamente, ha esigenze totalmente opposte. Il parametro di rischio di accesso alla rete dipende da come l’utente si collega all’infrastruttura (ad esempio reti 3G, WiFi pubblici e connessioni via cavo). E’ chiaro che è più pericolo un accesso ad un WiFi pubblico rispetto ad una connessione via cavo privata. Questo comporta un’esigenza di meccanismi di sicurezza più forti che devono rispettare le politiche di gestione. I vantaggi di questa organizzazione possono essere visti come: • sviluppo di tutte le applicazioni con lo stesso processo data la piena flessibilità del modello • scalabilità dell’architettura tra più sistemi con possibilità di distribuirli tra diversi provider • pochi ingressi da gestire in fase di sviluppo • facilità nell’estensione grazie alla sua integrabilità con sistemi preesistenti • possibilità di gestire la sicurezza con meccanismi di feedback per migliorarla durante l’esecuzione 30 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud In conclusione, la politica adottata utilizza i tre principi (il rischio di accesso alla rete, il tipo di servizio e il livello di sicurezza) per produrre i paramentri utilizzati per la configurazione dei diversi servizi di sicurezza. In questo modo vengono soddisfatte le varie esigenze di utenti e provider. 31 Capitolo 4 Conclusioni Data la posta in gioco, sembra inevitabile che la sicurezza diventi un significativo elemento di differenziazione di Cloud Computing business. Anche se questa protezione comporta un aumento del costo del prodotto finale, è facile aspettarsi che il mercato preferisca un sistema così fatto. Infatti, diversamente da altri casi dove si cerca l’economicità a scapito anche della qualità, gran parte del Cloud Computing si rivolge a clienti che lo usano per fini lavorativi e perciò è necessario affidare alla sicurezza una priorità elevata. Una giusta via di mezzo potrebbe però essere quella di offrire uno spettro di primitive di sicurezza selezionabili tramite diversi livelli “plug and play”, lasciando la scelta all’utente, opportunamente istruito. In definitiva, le diverse architetture che gli esperti stanno proponendo hanno lo scopo di raggiungere un giusto compromesso tra sicurezza ed accessibilità, adatti all’ambito in cui il Cloud sarà utilizzato, facilitando e invogliando così la migrazione dai vecchi sistemi. 32 Bibliografia [1] M. J. Schultz, "A Survey of Cloud Security Issues and Offerings", Avaiable: http://www.cse.wustl.edu/~jain/cse571-11/ftp/cloud/index.html [2] I. Foster, Y. Zhao, I. Raicu, S. Lu, "Cloud Computing and Grid Computing 360-Degree Compared" [3] A. Tripathi, A. Mishra, "Cloud Computing Security Considerations" [4] Future Generation Computer Systems, Md. T. Khorshed, A.B.M. S. Ali, S. A. Wasimi "A survey on gaps, threat remediation challenges and some thoughts for proactive attack detection in cloud computing", 2012 [5] L. M. KaufMan, J. Harauz, L. M. Kaufman, B. Potter, "Data Security In The World Of Cloud Computing", July/August 2009 [6] P. Massonet, S. Naqvi, C. Ponsard, J. Latanicki, T. Theresis, B. Rochwerger and M. Villari "A Monitoring and Audit Logging Architecture for Data Location Compliance in Federated Cloud Infrastructures", 2011 [7] CERT Insider Threat Research, 2010 CyberSecurity Watch Survey, http://www.cert.org/archive/pdf/ecrimesummary10.pdf, December 2010 [8] Jonathan Spring Software Engineering Institute, "Monitoring Cloud Computing by Layer, Part 1", March/April 2011 [9] Jonathan Spring Software Engineering Institute, "Monitoring Cloud Computing by Layer, Part 2", May/June 2011 [10] A NIST Definition of Cloud Computing, NIST Special Publication (SP) 800-145 33 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud [11] S. Radack and R. Kuhn, "Managing Security: The Security Content Automation Protocol", National Institute of Standards and Technology, January/February 2011 [12] http://csrc.nist.gov/groups/SMA/fisma/overview.html#background [13] Official FISMA Standard "TITLE III - Information Security" [14] http://csrc.nist.gov/groups/SMA/fisma/index.html [15] R. Ross, S. Katzke, and P. Toth, "The New Fisma Standards And Guidelines. Changing The Dynamic Of Information Security For The Federal Government" [16] Jerome H. Saltzer. Protection and the control of information sharing in multics. Commun. ACM, 17(7):388–402, 1974. [17] Y. Chen, V. Paxson, R. H. Katz, "What’s New About Cloud Computing Security?", January 2010 [18] Novell survey, http://www.informationweek.in/Cloud_Computing/10-10- 05/Novell_survey_reveals_widespread_enterprise_adoption_of_private_clouds.aspx , January2011 [19] Kresimir Popovic and Zeljko Hocenski , “Cloud computing security issues and challenges,” in Proceedings of the 33rd International Convention, MIPRO 2010 [20] Metasploit Framework, http://www.metasploit.com/framework/, December 2010 [21] Shirley Radack Editor, "Guidelines For Improving Security And Privacy In Public Cloud Computing", ITL Bulletin For March 2012 [22] Amazon.com, "Amazon Web Services: Overview of Security Processes," September 2008. [23] M. Armbrust, et al., "Above the Clouds: A Berkeley View of Cloud Computing," UC Berkeley Reliable Adaptive Distributed Systems LaboratoryFebruary 10 2009. [24] Cloud Security Alliance, "Security Guidance for Critical Areas of Focus in Cloud Computing, ver. 2.1," 2009. [25] M. Jensen, et al., "On Technical Security Issues in Cloud Computing," presented at the 2009 IEEE International Conference on Cloud Computing, Bangalore, India 2009. 34 Facoltà di Ingegneria - Corso di Studi in Ingegneria Informatica Problematiche di Sicurezza di Sistemi Cloud [26] P. Mell and T. Grance, "Effectively and Securely Using the Cloud Computing Paradigm," ed: National Institute of Standards and Technology, Information Technology Laboratory, 2009. [27] N. Santos, et al., "Towards Trusted Cloud Computing," in Usenix 09 Hot Cloud Workshop, San Diego, CA, 2009. [28] A. Kim, J. McDermott, and M. Kang, "Security and Architectural Issues for National Security Cloud Computing", International Conference on Distributed Computing Systems Workshops, 2010 [29] E. Chabrow. (2009, May 27) DISA’s Cloud Computing InitiativesGovinfosecurity.com. Available: http://www.govinfosecurity.com/articles.php?art_id=1493 [30] GSA News nistration Release. Launches (2009, GSA December Cloud 5 Storefront 2009). Obama Apps.gov. AdmiAvailable: http://www.gsa.gov/Portal/gsa/ep/contentView.do?contentType=GSA_BASIC&contentId=28477 35