Elaborato Porcellana Raffaele n4600198
Transcript
Elaborato Porcellana Raffaele n4600198
Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Calcolatori Elettronici I Aspetti di sicurezza nel Cloud Computing Relatore: Valentina Casola Anno Accademico 2015/2016 Candidato: Raffaele Porcellana N46/001928 Indice AspettidisicurezzanelCloudComputing......................................................................................I Indice..................................................................................................................................................III Introduzione........................................................................................................................................4 Capitolo1:Ilcloudcomputing..............................................................................................................8 1.1Caratteristicheessenziali....................................................................................................................9 1.2Imodellidiservizio...........................................................................................................................10 1.2.1SaaS:SoftwareasaService.......................................................................................................................12 1.2.2PaaS:PlatformasaService.......................................................................................................................13 1.2.3IaaS:InfrastructureasaService................................................................................................................13 1.3Imodellididistribuzione..................................................................................................................14 1.3.1Cloudpubblico..........................................................................................................................................14 1.3.2Cloudprivato.............................................................................................................................................15 1.3.3Cloudcommunity......................................................................................................................................15 1.3.4CloudIbrido...............................................................................................................................................15 1.4Tecnologiedibasedell’architetturadicloud....................................................................................16 1.5Architetturadelcloudcomputing.....................................................................................................17 Capitolo2:Lasicurezzanelcloudcomputing.......................................................................................19 2.1Obbiettividisicurezzanelcloud.......................................................................................................21 2.2Lasicurezzanell’architetturaCloud..................................................................................................23 2.2.1Dominio7:TraditionalSecurity,BusinessContinuityandRisasterRecovery............................................25 2.2.2Dominio8:Encryptionandkeymanagement...........................................................................................26 2.2.3Dominio12:IdentityandAccessManagement........................................................................................29 2.2.4Dominio13:Virtualizzation.......................................................................................................................31 2.3Lasicurezzaoltrel’architettura........................................................................................................34 2.3.1Dominio3:LegalandElectronicDiscovery...............................................................................................35 2.3.2Dominio4:CompilanceandAudit.............................................................................................................36 2.3.3Dominio6:InformationLifecycleManagement........................................................................................37 2.3.4Dominio6:PortabilityandInteroperability..............................................................................................38 2.3.5Dominio7:TraditionalSecurity,BusinessContinuityeDisasterRecovery................................................39 2.4Attacchisullarete.............................................................................................................................40 2.4.1Intercettazione..........................................................................................................................................40 2.4.2Intrusione..................................................................................................................................................41 2.4.3DoS:DenialofService...............................................................................................................................42 Conclusioni..........................................................................................................................................44 Bibliografia..........................................................................................................................................46 Introduzione Il termine cloud che in inglese significa letteralmente “nuvola” in termini informatici è utilizzato per riferirsi ad Internet che d’altronde costituisce le fondamenta per il cloud computing. Con il termine cloud possiamo riferirci ad infrastrutture software o hardware, i cui dati e servizi sono messi a disposizione di più utenti connessi alla rete. Il cloud rappresenta una rivoluzione in corso nel mondo dell’Information Technology, permettendo l’erogazione di servizi e programmi tramite la rete che, altrimenti richiederebbero risorse considerevoli per il loro funzionamento. In particolare, il termine cloud computing denota un paradigma di erogazione, archiviazione ed elaborazione di dati mediante l’utilizzo di risorse hardware e software distribuite su rete. Tutt’oggi lo studio e lo sviluppo del cloud computing sono in una fase evolutiva e negli ultimi anni l’interesse in tale campo non ha fatto altro che crescere a dismisura. Che sia utilizzato per l’esecuzione di applicazioni, per la condivisione di foto tra milioni di utenti o per il supporto di operazioni aziendali, i vantaggi potenzialmente 4 conseguibili mediante il cloud computing sono rilevanti nello scenario dell’Information Technology, rappresentando in senso lato un modo per avere maggiore flessibilità e disponibilità ad ottenere risorse di calcolo a costi inferiori. Le risorse messe a disposizione sono condivise tra più utenti, ognuno dei quali può richiederne l’utilizzo ottenendo il rilascio attraverso procedure automatizzate. Ad ogni utente è lasciato l’onere di configurare la risorsa richiesta fornita dal provider, che al rilascio sarà restituita al fornitore allo stato iniziale in maniera rapida e con costi ridotti. La possibilità di accedere in tempi brevi ad una vasta gamma di servizi applicativi su rete mediante un semplice web broswer, la maggiore affidabilità e capacità di memorizzazione e di elaborazione, la versatilità nell’utilizzo delle risorse ed i minimi costi di gestione, hanno fatto si che il paradigma di Cloud Computing abbia aperto a nuovi orizzonti nel campo dell’Information Technology, candidandosi come sostituto degli attuali modelli infrastrutturali. L’architettura di sistemi di Cloud Computing prevede il coinvolgimento di tre attori principali: • Cloud Provider: Offre servizi come server virtuali, storage, applicazioni complete solitamente con un modello "pay-per-use". • Client amministratore: Sceglie e configura i servizi offerti dal fornitore per il l’utente finale. • Client finale: Utilizza i servizi configurati dal cliente amministratore. Vi sono essenzialmente tre settori di sviluppo: “applicazioni”, “connettività” e “storage” orientati sia all’utilizzo da parte di singoli utenti, sia da parte di aziende ed avente come scopo comune quello di mettere a disposizione servizi in rete come se fossero su dispositivi locali permettendo d’ignorare i dettagli d’implementazione. Per capire i vantaggi reali che si possono detrarre, consideriamo il caso di un’azienda che ha bisogno di un determinato software; mentre in passato si sarebbe dovuta 5 acquistare una licenza per l’utilizzo del software e dedicare risorse economiche per configurare, testare, eseguire, proteggere e aggiornare il programma una volta acquistato, oggi, grazie al cloud computing un’azienda potrà focalizzarsi esclusivamente sul proprio business, disinteressandosi del lato tecnico, “fittando” il servizio via cloud e pagando esclusivamente il consumo e le funzionalità necessarie, risparmiando nei costi amministrativi e di gestione delle infrastrutture. D’altro canto è possibile fare molti esempi d’utilizzo quotidiano del cloud orientato all’utilizzo dei singoli utenti, la cui maggioranza non ne ha consapevolezza. Tra gli utilizzi più frequenti troviamo quello dei social network, che permettono di condividere le proprie informazioni con altri utenti; l’utilizzo di servizi di Webmailing come G-mail, Yahoo, che permettono di gestire la propria posta elettronica attraverso un semplice web broswer; servizi di condivisione dei documenti come Google Docs, e di backup come Dropbox che rappresentano solo una minima parte di un insieme più vasto di applicazioni. Ma se da un lato questo nuovo approccio suscita entusiasmo per le sue potenzialità, vi è anche un certo scetticismo dovuto ad aspetti legati alla sicurezza dei dati. Dunque, nella scelta di un provider di cloud computing, risulta essenziale tenere conto dei protocolli di sicurezza dei dati. Una differenza sostanziale con i datacenter tradizionali consiste nell’impossibilità di conoscere la locazione fisica dei server a cui vengono ceduti tali informazioni, inoltre altri fattori indipendenti al client possono danneggiare i dati. È possibile ad esempio che il fornitore di servizi fallisca o che i server dove risiedono i dati vengano sequestrati, oppure che le misure di sicurezza adottate dal fornitore di servizi siano inadeguate; risulta quindi di grande importanza la scelta del cloud provider a cui affidare il proprio business. Utilizzare tali servizi per memorizzare dati sensibili, per singoli utenti aumenterebbe il rischio di poter subire violazione di privacy, mentre per le aziende aumenterebbe il rischio di poter subire casi di spionaggio industriale. Vi sono anche altri problemi di tipo politico, non vi è nulla che non garantisca che i dati siano salvati su server situati in paesi differenti da quello del client, dove è possibile che siano adottate differenti normative di protezione. La mancata standardizzazione e l’assenza di norme di sicurezza ufficiali 6 permettono ai fornitori massima libertà circa le politiche di sicurezza, che talvolta possono risultare inadeguate per le esigenze dei differenti client. La rapidità di crescita nell’utilizzo del cloud computing ha portato alla nascita di organizzazioni come il Cloud Security Alliance (CSA) istituita per promuovere una maggiore chiarezza tra client e provider. In un mercato sempre più competitivo risulta determinante la trasparenza sui servizi messi a disposizione e sulle politiche di sicurezza adottate. A tale proposito vengono in aiuto strumenti come i service level agreement (SLA) attraverso i quali, client e provider possono stipulare un accordo sul livello di qualità del servizio utilizzato assicurando pagamento di penalità in caso di mancato raggiungimento di tale livello. Nonostante questi sforzi, risulta ancora lunga la strada per poter raggiungere uno standard che regoli tale architettura e la sua sicurezza. Lo scopo di tale elaborato è quello di descrivere gli aspetti caratterizzanti del cloud computing, procedendo in maniera gerarchica. Nella prima parte sarà fornita una descrizione dell’architettura ed i diversi modelli di distribuzione del Cloud Computing; successivamente l’attenzione si sposterà sulle principali criticità di tali architetture andando ad analizzare le problematiche di sicurezza, mostrando nei dettagli le soluzioni adottate per quelle di maggior interesse. 7 Capitolo 1: Il cloud computing Essendo un paradigma in continua evoluzione, non vi è ancora uno standard per il cloud computing ma solo una serie di definizioni. La definizione fornita dal National Institute of Standards and Technology (NIST) è la seguente: “Il cloud computing è un modello per abilitare, tramite la rete, l’accesso diffuso, agevole e su richiesta, ad un insieme condiviso e configurabile di risorse di elaborazione (ad esempio reti, server, memoria, applicazioni e servizi) che possono essere acquisite e rilasciate rapidamente e con minimo sforzo di gestione o di interazione con il fornitore di servizi. Questo modello cloud è composto da cinque caratteristiche essenziali, tre modalità di servizio e quattro modelli di distribuzione”. Tale definizione contraddistingue i principali aspetti del cloud computing e fornisce una base dalla quale partire per discutere di ciò che si rappresenta col termine cloud computing, fornendo un mezzo per la comparazione e lo sviluppo dei servizi offerti dalle architetture del cloud computer, fornendo inoltre un mezzo valutare il miglior modo d’utilizzo di tali architetture. 8 1.1 Caratteristiche essenziali Le cinque caratteristiche essenziali a cui fa riferimento la definizione del NIST sono: • On-Demand Self Service: permette agli utenti di utilizzare i servizi forniti dal cloud computing di cui si ha bisogno in maniera automatica senza che vi sia interazione umana col fornitore di servizi. • Broad Network Access: i servizi offerti sono disponibili sulla rete e l’accesso alle risorse avviene mediante meccanismi standard che promuovono l’uso da parte del client di piattaforme eterogenee (ad esempio: telefoni cellulari, tablet, computer portatili e workstation) in ogni dove. 9 • Resource Pooling: Le risorse di calcolo del fornitore sono messe a disposizione per più client, mediante un modello multi-tenant (la risorsa viene caricata su un server e messa a disposizione per più client) e vengono assegnate e riassegnate dinamicamente ai clienti che ne fanno richiesta. C’è un senso di indipendenza dal luogo in cui sono presenti le risorse, infatti il cliente non ha alcun controllo o conoscenza sulla posizione esatta delle risorse assegnate ma può essere in grado di specificare la posizione ad un livello più elevato di astrazione. • Rapid Elasticity: le risorse vengono acquisite e rilasciate in maniera elastica, talvolta automatica, rendendo il cloud flessibile e scalabile. Al consumatore, quindi, le risorse sembrano illimitate e sempre disponibili. • Measured Service: I sistemi cloud sono service-oriented, per questo motivo le risorse fornite sono controllate e monitorate automaticamente, in base al consumo stimato, fornendo trasparenza sia lato fornitore che consumatore. 1.2 I modelli di servizio Aldilà delle caratteristiche sopracitate, ciò che caratterizza il modello di cloud computing è la sua dipendenza dalla connessione alla rete. Nonostante si utilizzi anche per altri modelli dell’IT, la connessione alla rete rappresenta un punto cardine 10 per il funzionamento del cloud. Inoltre con l’avanzare dell’adozione di tale modello, molte funzioni critiche vengono riformulate come servizi cloud, rendendo cosi la connessione alla rete e la larghezza di banda il vero collo di bottiglia per lo sviluppo di tale architettura. Col termine Software-Platform-Infrastructure (SPI)-model, si fa riferimento ai tre principali servizi erogati attraverso il cloud: Software as a Service (SaaS), Platform as a Service (PaaS) e Infrastructure as a Service (IaaS). È possibile rappresentare tali modelli attraverso uno stack alla cui base si trova lo IaaS e alla cui cima si trova il SaaS, quindi, secondo questa rappresentazione su più livelli richiedere un servizio SaaS corrisponde a richiedere un servizio anche alle componenti del PaaS e dello IaaS. Tuttavia questa non è l’unica rappresentazione possibile, per alcuni cloud provider i modelli di distribuzione non sono rappresentati gerarchicamente ma in maniera indipendente tra loro, mantenendo comunque caratteristiche molto simili; ciascuna classe offre un contenitore con specifiche interfacce e determinate funzionalità. Sebbene molte infrastrutture di cloud computing sono basate su tecnologie esistenti ci sono differenze nette tra il modello SPI e il tradizionale modello IT. Lo sviluppo di applicazioni secondo il modello tradizionale, dà una maggiore personalizzazione ma spesso implica un alto costo in risorse come ad esempio nuovo hardware (server, workstation, sistemi di backup), licenze e costi di supporto. Inoltre la sicurezza è totalmente sotto al controllo dell’organizzazione ed è garantita grazie ad apposite infrastrutture di sicurezza (firewall, rilevamento intrusi, monitoraggio web ecc.), che però richiedono notevoli risorse di manodopera. Le organizzazioni che fanno uso del modello SPI non hanno proprie infrastrutture per ospitare l’applicazione software, ma possiedono una licenza d’uso dell’applicazione del cloud provider. Questo meccanismo permette alle compagnie di pagare solo per le risorse di cui si ha bisogno riducendo notevolmente i costi dovuti alle infrastrutture. D’altro canto il cloud provider può condividere la propria infrastruttura con client, riducendo drasticamente il numero di server utilizzati fornendo cosi soluzioni organizzative da cui trarne vantaggi competitivi. Di seguito sarà effettuata un’analisi dettagliata di ciascun livello dello SPI, procedendo dall’alto verso il basso. 11 1.2.1 SaaS: Software as a Service Questo modello di servizio da al consumatore la possibilità di utilizzare applicazioni che risiedono su un’infrastruttura Cloud, tramite un’interfaccia autorizzata come ad esempio il web browser (ad esempio una web-mail). Il consumatore non gestisce né controlla l’infrastruttura sottostante il cloud (i server, il sistema operativo e l’unità di Storage), l’unica possibile eccezione è quella di poter gestire in maniera limitata alcune impostazioni utente. Anche se a prima vista il modello SaaS può sembrare molto simile all’Application Service Provider (ASP), in realtà vi sono una serie di differenze sostanziali. Innanzitutto a differenza del tradizionale metodo di acquisto ed installazione del software, il cliente SaaS può utilizzare delle licenze on-demand, fatturate in base al tipo e al tempo di utilizzo, inoltre, mentre nel modello ASP i servizi sono offerti in infrastrutture dedicate per cui ogni organizzazione ha le sue istanze dedicate di software secondo il paradigma single-tenant, i fornitori di SaaS offrono l’applicazione su infrastrutture condivise di tipo multi-tenant. Infine lo stesso sviluppo delle applicazioni risulta differente, nel modello ASP queste sono sviluppate secondo il paradigma client-server e utilizzano opportune interfacce HTML per l’accesso remoto, mentre nel modello SaaS risultano ottimizzate per internet, migliorando la propria esecuzione e riducendo i tempi di risposta. Esempi di SaaS sono Gmail, Google Docs, Groupon, ecc. 12 1.2.2 PaaS: Platform as a Service I benefici del SaaS vengono estesi nel campo dello sviluppo software quando si parla del PaaS. Mentre il SaaS fornisce una piattaforma per utilizzare un software via web, il PaaS fornisce un ambiente per lo sviluppo del software ed uno spazio cloud per la sua esecuzione, accessibili mediante Web Browser. Pertanto il cloud provider fornisce agli utenti i linguaggi, le librerie ed i tools per lo sviluppo di applicazioni, utilizzando un’architettura multi-tenant, favorendo cosi lo sviluppo in cooperazione e fornendo strumenti per l’organizzazione di team di sviluppo. Al client non è data la possibilità di gestire l’infrastruttura hardware e il sistema operativo sottostanti il cloud, ma viene data la piena gestione dell’applicazione sviluppata e della sua configurazione. I fornitori PaaS offrono piattaforme che permettono di sostenere l’intero ciclo di vita di sviluppo del software, fornendo strumenti necessari per lo sviluppo, test e manutenzione delle applicazioni, favorendo le start-up di piccole dimensioni che non possono affrontare costi elevati per tali infrastrutture. Il modello di distrubizione PaaS risulta quindi utile nel momento in cui più sviluppatori collaborano per un progetto, mentre tale modello di distribuzione risulta inefficiente nel caso in cui la prestazione dell’applicazione è influenzata dall’hardware e dal software sottostante. Esempi di PaaS sono Microsoft Azure Services, Google App Engine ecc. 1.2.3 IaaS: Infrastructure as a Service L’IaaS permette al consumatore di ottenere capacità computazionale. Il cliente può ottenere su richiesta infrastrutture quali server, sistemi di storage, sistemi di rete, sistemi operativi e altre risorse computazionali a seconda delle proprie esigenze. L’hardware virtualizzato che viene richiesto, la cui manutenzione è affidata al cloud provider, permette di creare soluzioni IT convenienti e scalabili la cui capacità di memorizzazione varia a seconda delle necessità del cliente. La scelta di affidarsi a 13 tale servizio viene presa in considerazione da aziende che non hanno il capitale necessario per investire in proprie infrastrutture oppure da aziende con una rapida crescità per le quali lo scaling hardware risulterebbe complicato. Esempi di IaaS sono Amazon EC2, Dropbox ecc. 1.3 I modelli di distribuzione Indipendentemente dai modelli di servizio che le caratterizzano, le architetture cloud non sono tutte uguali, è infatti possibile avere diversi modelli di distribuzione (delivery models), tra cui scegliere prima di sviluppare una soluzione cloud ed implementarla. Si identificano quattro diversi modelli di distribuzione del Cloud Computing: cloud pubblico, cloud privato, cloud community, cloud ibrido. Nonostante le differenze che caratterizzano tali modelli, vi sono diversi fattori comuni che essi devono condividere, infatti ogni modello si avvale di dispositivi connessi a Internet, prevede il ridimensionamento dinamico delle risorse virtuali e non permette all’utente il controllo sulla tecnologia utilizzata. 1.3.1 Cloud pubblico L’infrastruttura è gestita di organizzazioni che vendono i propri servizi di cloud a singoli utenti o a gruppi industriali. Tale modello rappresenta il modello standard del cloud; il fornitore di servizi mette a disposizione l’infrastruttura e il client paga in 14 base all’utilizzo delle risorse, pertanto tutti i costi relativi alla gestione e alla manutenzione vengono annullati, garantendo cosi elevate prestazioni e scalabilità a prezzi competitivi. Tra i tipi di cloud pubblici troviamo ad esempio le Google App. 1.3.2 Cloud privato Si identifica come un modello in cui l’ambiente di cloud è privato all’azienda stessa ed è realizzato all’interno del proprio data center. L’utilizzo di queste infrastrutture private è permesso ai membri dell’azienda stessa e ai partner designati. A differenza del cloud pubblico, questo tipo di soluzione permette di risolvere tutti i problemi legati alla sicurezza e alla privacy dei dati sensibili, in quanto questi risultano sotto il controllo della propria struttura. Attualmente i principali provider che offrono soluzioni di cloud privato sono Microsoft, Dell ecc. 1.3.3 Cloud community In tale modello l’infrastruttura è condivisa e gestita da più organizzazioni che hanno obbiettivi e scopi comuni. La gestione può essere affidata ad una o più organizzazioni appartenenti alla community, può essere gestita da un provider esterno oppure può essere adottata una soluzione ibrida, per questo motivo le difficoltà di tale modello sono dovute all’assegnazione delle responsabilità tra e la gestione della sicurezza. A causa degli elevati costi dovuti all’infrastruttura privata, questa soluzione è utilizzata principalmente da grandi aziende e per le agenzie governative 1.3.4 Cloud Ibrido Tale modello è dato una combinazione dei tre precedenti modelli di distribuzione cosi da poter sfruttare i vantaggi derivanti da ogni modello. L’infrastruttura utilizzata è composta da più infrastrutture cloud distinte, le entità coinvolte mantengono la 15 propria identità ma sono legate dal provider mediante tecnologie standardizzate che consentono cosi la portabilità dei dati. Tra i rischi più grossi di questa scelta vi è quello dell’inconsistenza operativa pertanto l’azienda deve garantire l’interoperabilità dei propri servizi nel cloud. Questo tipo di soluzione è ideale per aziende che vogliono delegare la gestione di una parte delle informazioni all’esterno mantenendo quelle più sensibili nella propria infrastruttura privata o per aziende che già dispongono di un’infrastruttura IT consolidata. 1.4 Tecnologie di base dell’architettura di cloud La possibilità di offrire servizi su richiesta in maniera flessibile, eliminando i costi di gestione delle infrastrutture rappresenta il punto di forza del cloud computing. Prima dell’avvento del cloud computing le soluzioni tradizionali dell’IT permettevano alle aziende di acquisire ed elaborare le informazioni sui clienti, custodendole su database privati, comprensivi di hardware ed infrastrutture di rete. Tuttavia nell’ultimo decennio, l’utilizzo del cloud computing, complice anche la diffusione globale dell’utilizzo di internet, ha radicalmente cambiato il mondo dell’IT. Di seguito faremo elenco delle tecnologie di base essenziali più diffuse in sistemi di cloud computing. • Infrastruttura: l’infrastruttura del cloud computing è un insieme di server, unità di Storage e componenti di rete. La scelta di tali componenti dipende dalla loro supporto ai requisiti di scalabilità, efficienza, sicurezza e altre caratteristiche che permettano di soddisfare, ciò che viene stipulato all’interno dei service level agreements (SLAs). • Rete Internet: l’accesso ad internet risulta è il requisito fondamentale per il cloud computing, la rete è il mezzo che permette agli utenti di connettersi al cloud e 16 per interconnettere il cloud interno. Idealmente per l’utilizzo ideale del cloud computing si dovrebbero realizzare infrastrutture che garantiscano reti a banda larga e ad alta velocità a tutti gli utenti connessi. Un altro importante obiettivo che bisogna garantire è la neutralità della rete, cioè una situazione in cui tutti il traffico di rete sia trattato allo stesso modo. Lo sviluppo e del miglioramento delle infrastrutture di rete risulta di vitale importanza per il cloud computing, tant’è vero che nel 2009 negli Stati Uniti è stato e manato un disegno di legge affinché fossero migliorate tutte le infrastrutture per garantire una connessioni alta velocità. • Virtualizzazione: è uno dei principi cardine su cui si fonda il Cloud Computing, essa è una tecnologia utilizzata per partizione un singolo server fisico in più macchine virtuali oppure una singola risorsa fisica (es. unità di Storage) in più risorse virtuali. La virtualizzazione permette di conferire ai server notevole flessibilità nell’utilizzo, riduzione degli spazi, dei consumi, e dei costi di gestione oltre a diminuire i tempi di provisioning di nuove risorse ai clienti. 1.5 Architettura del cloud computing Dopo aver descritto i modelli e le caratteristiche delle architetture di cloud computing, il capitolo si conclude con una descrizione dell’architettura. Come già accennato nei precedenti capitoli, il modello di cloud computing permette l’utilizzo di risorse ed applicazioni presenti su server connessi alla rete accessibili agli utenti mediante dispositivi mobili e desktop. L’architettura di un cloud computing è costituita da svariati elementi che possono essere raggruppati principalmente in due gruppi: back-end e front-end connessi tramite un network che generalmente è internet. 17 Il front-end comprende le interfacce visibili agli utenti abilitati all’utilizzo del servizio offerto dal provider, dunque per essere visualizzato, deve essere necessario accedere al cloud. Diversi sistemi di Cloud Computing hanno diverse interfacce utente e molto spesso, come nel caso delle web-mail, sono gli stessi web browser che forniscono il supporto per accedere al servizio. Il back-end rappresenta il cloud vero e proprio e comprende tutti i dispositivi di supporto ai servizi offerti come computer, server, dispositivi di storage e macchine virtuali. Il back-end è la parte più delicata nel sistema di cloud, infatti, deve garantire anche meccanismi di sicurezza, controllo degli accessi ed il rispetto dei protocolli. La gestione e il funzionamento del sistema sono affidate ad un server centrale che ha il compito di monitorare il traffico e le richieste dei consumatori. A tal proposito, l’utilizzo della virtualizzazione da parte di tali architetture che permettono ad un server fisico di emulare istanze virtuali di macchine e sistemi operativi risulta una componente fondamentale del back-end. Tale tecnologia viene realizzata mediante l’uso dell’hypervisor (Virtual Machine Manager, VMM) che permette a più macchine virtuali di condividere l’hardware del server ospitante, permettendo di avere un insieme di applicazioni su un singolo server. Oltre alla gestione delle macchine virtuali, l’hypervisor svolge attività di controllo al di sopra di tutti i sistemi operativi eseguendo anche attività di debugging affinché possano essere rilevati e corretti malfunzionamenti e attività pericolose. 18 Capitolo 2: La sicurezza nel cloud computing La sicurezza informatica ha come obbiettivo quello di analizzare minacce e vulnerabilità per garantire una protezione da possibili attacchi interni ed esterni che possano provocare danni di una certa rilevanza (es. economica, reputazione ecc.). Tali obbiettivi sono raggiunti attraverso misure di carattere tecnico organizzativo identificate con il nome di triade CIA: confidentiality, integrity, avaiability (riservatezza, integrità, disponibilità): • Confidentiality: indica la capacità di un sistema di evitare la divulgazione non intenzionale dei dati, garantendo agli utenti che le informazioni siano accessibili solo a persone o sistemi autorizzati. La riservatezza è messa a rischio nei sistemi basato su network pubbliche in quanto potrebbero capitare attacchi per il furto di dati sensibili. Le principali strategie per garantire riservatezza sono l’isolamento fisico e la crittografia. l’isolamento fisico si traduce nel Cloud Computing in isolamento fisico virtuale tramite l’utilizzo di Virtual Local Area Networks e middlebox. 19 • Integrity: garantisce che i dati custoditi non siano alterati, e che essi siano protetti a fronte di modifiche involontarie o intenzionali. Assosciata al concetto di integrità vi è la possibilità di verificare con assoluta certezza se un dato o una informazione siano rimasti integri durante la loro trasmissione e la loro memorizzazione. La difficoltà maggiore nel garantire integrità è dovuta alla continua crescita dei supporti fisici destinati alla memorizzazione, al fine di poter soddisfare la domanda degli utenti. Tale situazione può portare a perdite di dati ed un notevole abbassamento delle prestazioni. Per garantire integrità dei dati, ad ogni blocco di dati fisicamente immagazzinato viene associata una firma digitale, che permette di verificarne eventuali corruzioni. • Avaiability: questo attributo fa riferimento all’affidabilità e la stabilità in rete dei sistemi, assicurando ai clienti di poter usufruire del servizio offerto in qualsiasi momento ed in qualsiasi luogo. Tra le tecniche per aumentare la disponibilità si trova la ridondanza dei sottosistemi che compongono il cloud, in questo modo il guasto di un componente non inibisce il funzionamento dell’intero sistema. Oltre a queste proprietà, vi sono altri concetti applicabili nella progettazione dei sistemi di cloud per garantire un’elevata sicurezza: • Auditability (verificabilità): è un tipo che controllo che coinvolge sia il cloud service provide che i client. permettendo di effettuare una valutazione tecnica della struttura operativa del sistema di cloud computing. I revisori possono essere sia interni che esterni. I revisori interni lavorano per l’organizzazione ed effettuano controlli di conformità agli standard, mentre quelli esterni sono solitamente commercialisti assunti per brevi periodi e che eseguono i bilanci dell’azienda. I risultati dei controlli sono registrati in appositi audit log, un insieme di record che forniscono una prova documentale del processo di verificabilità tenendo traccia di tutte le operazioni effettuate. 20 • Access Control: è un attributo user-oriented associato ai problemi di identificazione, autenticazione ed autorizzazione. Al cliente deve essere garantito che i propri dati personali vengano preservati da qualunque attacco o accesso non autorizzato e che non vengano trattati da terze parti senza autorizzazione, nel rispetto della privacy. • Privacy: il livello di confidenzialità e la protezione della privacy spesso rappresentano un importante componente per la sicurezza. Poiché garantisce il principio fondamentale della riservatezza. Infine per maggiore una maggiore chiarezza di ciò che sarà discusso in questo capitolo è necessario dare una definizione dei seguenti termini: • Minaccia: è definita come un evento che può causare danni al sistema, minando alle proprietà di riservatezza, integrità e disponibilità. Le minacce possono essere malevoli se lo scopo di manipolare il sistema risulta intenzionale, altrimenti si parla di minacce accidentali che possono avvenire per errori durante una transazione o per cancellazioni accidentali di informazioni. • Vulnerabilità: rappresenta una debolezza in un sistema che può essere sfruttata da una minaccia. 2.1 Obbiettivi di sicurezza nel cloud L’utilizzo del cloud computing da parte delle imprese sta assumendo sempre una maggior diffusione. Grazie all’utilizzo di questo nuovo paradigma di erogazione di risorse le imprese riescono ad ottenere importanti guadagni in termini di business 21 trasferendo il loro ambiente IT in un’infrastruttura cloud. Tuttavia se da un lato, l’impiego del cloud computing porta numerosi vantaggi, dall’altro, l’idea che informazioni e dati sensibili di proprietà delle aziende siano dislocate e si trovino in un ambiente esterno all’azienda stessa rappresenta ancora un grosso ostacolo. Per questi motivi uno degli aspetti rilevanti e di maggior interesse nell’ambito del cloud computing è la sicurezza. I problemi di sicurezza del cloud per certi versi non si discostano da quelli dell’IT tradizionale, tuttavia il calcolo in outsourcing, la condivisione delle risorse e la natura distribuita del cloud computing, possono essere causa di rischi differenti rispetto a quelli delle tradizionali soluzioni IT, rappresentando un grattacapo per la loro risoluzione e creando nuove sfide per gli sviluppatori che lavorano per identificare tali minacce cercando di fornire le giuste contromisure alle vulnerabilità individuate. I controlli di sicurezza utilizzati sono implementati su più livelli e comprendono gli impianti (sicurezza fisica), l’infrastruttura di rete (sicurezza di rete), i sistemi informatici (sistemi di sicurezza) e le applicazioni (sicurezza delle applicazioni). Nel documento “Security Guidance for Crical Areas of Focus in Cloud Computing”, pubblicato dalla Cloud Security Aliance (CSA) sono definiti 13 domini di studio per la sicurezza del cloud, con lo scopo di rendere più semplice ed organizzato un ambito piuttosto complesso e ricco di informazioni incomplete. A parte il primo dominio che rappresenta una descrizione dell’architettura del cloud computing, gli altri dodici rappresentano un focus sulle aree critiche di sicurezza che possono essere applicati ad ogni combinazione di servizio di cloud e modello di implementazione. I domini sono divisi in due grandi categorie: governance e operatività. Il primo gruppo tratta problematiche di livello politico e legislativo mentre il secondo gruppo da maggior rilevanza ad argomenti di sicurezza tattica e alla loro implementazione nell’architettura. Nei prossimi capitoli sarà stilato l’elenco dei 12 domini presenti nel documento, e poi saranno analizzate le due macrosezioni focalizzando l’attenzione sui i domini più interessanti. 22 2.2 La sicurezza nell’architettura Cloud Come è stato già accennato, i criteri di sicurezza del cloud non si discostano molto dai classici problemi che caratterizzano le architetture IT tradizionale. Tuttavia oltre ad i classici problemi, vi è una vasta gamma di problematiche di sicurezza dovuti all’architettura stessa del cloud computing. La vastità di problemi che colpisce il cloud computing da vita ad un ambiente complesso e disorganizzato. Al fine di gestire tali problematiche nel suo documento la CSA definisce 7 domini relativi a problemi di sicurezza tattica e la loro implementazione nell’architettura del cloud computing. In tale sezione saranno analizzati i domini operativi di maggior interesse pratico definiti dalla CSA, per un’analisi dal punto di vista organizzativo e gestionale. Dominio Traditional Security, Tale dominio si concentra sulla Business Continuity and descrizione delle attività di Business Disaster Recovery Continuity e Disaster Recovery In questo dominio sono descritte le caratteristiche comuni che devono possedere i data center per garantire Data Center Operations una stabilità a lungo termine. 23 Questa sezione tenta la trattazione dei Incident Response, Notification and dispositivi che dovrebbero essere Remediation messi in atto sia presso il fornitore che presso l'utente per rendere possibile una corretta gestione degli incidenti. In tale sezione è argomentata la messa in sicurezza del software applicativo presente o sviluppato nel cloud, include argomenti quali l'opportunità Application Security della migrazione o del progetto di una applicazione da eseguire nel Cloud, e in caso ciò avvenisse, che tipo di piattaforma Cloud (SaaS, PaaS, or IaaS) sia la più adeguata. Encryption and Key In questo dominio vi è una descrizione Management della crittografia delle informazioni, e un focus sulle tecniche di crittografia Fornisce informazioni su come valutare la disponibilità di un ente ad adottare la gestione dell'identità e degli Identity and Access Management accessi (IAM) basato sul Cloud. Questo dominio tratta argomenti quali i rischi connessi con la multi-tenancy, Virtualization l'isolamento delle VM, la co-residenza 24 delle VM, le vulnerabilità degli hypervisor, ecc. 2.2.1 Dominio 7: Traditional Security, Business Continuity and Risaster Recovery I termini business continuity e disaster recovery fanno riferimento all’insieme delle misure di sicurezza informatica che permettono all’azienda di affrontare eventi dannosi al proprio business. La pianificazione della continuità operativa (business continuity planing, BCP) è un processo designato ad identificare e ridurre i rischi di perdite finanziare e a rendere tempestivo il recupero di una società dopo un evento dannoso all’azienda stessa La sfera d’interesse della continuità operativa, non considera solo l’aspetto informatico, ma s’interessa dell’intera organizzazione e riguarda anche gli aspetti fisici ed organizzativi essenziali al funzionamento dell’attività di business. Un elemento chiave dal BCP è il BIA (Business Impact Asseesment), il cui scopo è quello di creare un documento che descrive gli effetti di un evento dannoso sul business aziendale. In questo processo risulta fondamentale la valutazione delle vulnerabilità che si concentra nell’analizzare gli impatti finanziali (quantitativi) e operativi (qualificativi) delle perdite di un’azienda. Il disaster recovery invece è l’insieme delle tecniche logistico/organizzative che permettono di ripristinare sistemi, dati ed infrastrutture a fronti di gravi danni entro un lasso di tempo che riduce al minimo le perdite ed implementando processi critici su un sito alternativo prima del ripristino di sistema. Il piano di disaster recovery (DRP) è un documento che esplicita tali misure e fa parte del BCP. Si stima che le imprese spendano tra il 2% e il 4% del loro budget in tali meccanismi, ciò fa capire l’importanza delle strategie di recupero e la gravità dei disastri 25 informatici che nella maggioranza dei casi è responsabile del fallimento di un’impresa. Anche per infrastrutture di cloud sussistono le stesse considerazioni dell’IT tradizionale, prima di stipulare un contratto però è raccomandabile che il client sia ben informato dei piani di BCP e DRP dei fornitori di cloud, assicurandosi che vi siano obblighi contrattuali legati a sicurezza ripristino e a accesso dei dati. Dal punto di vista operativo l’utilizzo di una strategia cloud per BCP/DRP deve soddisfare i seguenti requisiti: • Accesso sicuro da postazioni remote: rendendo possibile ai client un accesso sicuro da ogni parte del globo, e massimizzando la velocità di accesso indirizzando il traffico verso i data center più vicini. • Architettura distribuita senza alcun single point of failure. • Ridondanza integrale delle applicazioni e delle informazioni: è realizzata totalmente dal provider, eliminando i costi per il client dell’acquisto di hardware e software per fornire ridondanza. Nel caso di utilizzo di cloud ibrido il cliente ha la possibilità di controllare i processi di backup. • Dispersione geografica: grazie all’utilizzo di backup e l’isolamento geografico garantiscono al cliente di poter riprendere ad usufruire dei servizi del provider più rapidamente possibile, senza grandi quantità di attività di trasferimento. 2.2.2 Dominio 8: Encryption and key management La crittografia è un argomento fortemente correllato alla protezione dei dati. Nonostante essa non ne prevenga la perdita, gli statuti e le leggi sulla sicurezza considerano la perdita di dati cifrati come se non fosse avvenuta. La crittografia e le chiavi di crittografia garantiscono protezione e accesso protetto alle risorse. In un algoritmo di crittografia un testo in chiaro è cifrato mediante una chiave di crittografia e al suo utilizzo il testo cifrato verrà decriptato mediante una chiave di decrittazione. 26 Ci sono due opzioni per la gestione delle chiavi di crittografia: • Gestione locale delle chiavi: la gestione avviene presso l’utente all’esterno dell’architettura • cloud Gestione nel cloud: In questo caso la crittografia è eseguita all’interno dell’architettura cloud stessa, e quindi il provider deve garantire un alto livello di sicurezza e protezione durante la trasmissione e la memorizzazione dei dati. Mediante quest’approccio risulta più semplice l’interoperabilità tra le macchine virtuali del provider, e la condivisione dei dati. Indipendentemente dal tipo di gestione delle chiavi utilizzato, il luogo in cui sono memorizzate le chiavi per la crittografia rappresentano un obiettivo principale per un attacco. Abbiamo due possibilità di crittografia: • Crittografia simmetrica: In questo caso i due comunicatori devono condividere una chiave segreta unica e ciò suppone che le due parti comunicanti siano già in possesso delle chiavi. Anche se l’algoritmo risulta molto per formante e semplice, la sua implementazione è molto lunga e complessa poiché si ha bisogno di un canale di comunicazione sicuro per scambiare chiavi segrete ed uniche • Crittografia asimmetrica (a chiave pubblica): in questo caso la chiave di cifratura è diversa da quella di decrittazione. Questo approccio è molto più semplice da gestire e le chiavi pubbliche possono essere scambiate su un canale non sicuro. In questo scenario ogni utente ha due chiavi una privata ed una pubblica e l’accesso delle informazioni è realizzato mediante una combinazione che utilizza entrambe le chiavi, cifrando il messaggio con la chiave pubblica e decifrandolo con quella privata Tuttavia lo svantaggio risiede nella maggiore complessità dovuta alla gestione di un numero di chiavi maggiore da gestire. Risulta chiaro, che i modelli di crittografia più utilizzati siano quelli a chiave pubblica; tra quelli principali abbiamo: 27 • Identity Based Encryption (IBE): è il modello di crittografia più semplice di crittografia a chiave pubblica, basata su ID. In questo modello la chiave pubblica dell’utente è relativo ad informazioni sull’identità di quest’ultimo, come ad esempio l’indirizzo di posta elettronica e viene utilizzata per la criptazione e verifica della firma. • Attribute Based Encryption (ABE): in questo modello la chiave segreta di un utente ed il testo cifrato dipendono da una serie di attributi (nazione, data di nascita ecc.) e la decifratura del testo può essere effettuata solo nel caso in cui si è in possesso di tali attributi. Due estensioni molto interessanti dell’attributi Based encryption sono: • Ciphertext-Policy Attribute based (CP-ABE): in questo modello la chiave private dell’utente è associata ad un insieme di attributi mentre al dato è associato un testo cifrato ed una struttura ad albero ne specifica la politica d’accesso. Il testo può essere decifrato solo se l’utente possiede gli attributi necessari e soddisfa quindi le politiche d’accesso. In questo modo i dati possono essere codificati senza sapere il gruppo di utenti che ne potrà effettuare l’accesso ma specificando solo la politica di accesso. In questo modo eventi futuri con le giuste autorizzazioni per l’accesso riceveranno set di attributi che permettano la decodifica dei dati 28 • Key-Policy Attribute Based (KP-ABE): è un modello di crittografia duale al CP-ABE, in questo caso ad ogni utente viene affidata una chiave privata generata sulla base di un albero di accesso, in cui ad ogni nodo è associato un attributo. Nel processo di decrittazione l’utente potrà accedere al dato cifrato solo se il set di attributi soddisfa la struttura ad albero. 2.2.3 Dominio 12: Identity and Access Management L’utilizzo di reti pubbliche per l’accesso a risorse remote rappresenta una problematica che mette a rischio i dati e la privacy degli utenti. Per evitare problemi del genere si cercano soluzioni per restringere l’accesso alle informazioni private memorizzate all’interno dell’architettura di cloud associando ad ogni utente un’identità digitale (insieme di attributi: username, password ecc.). La gestione dell’identità e il controllo degli accessi rappresentano processi fondamentali alla base del cloud computing sicuro. La gestione delle identità (Identity Management, IDM) è caratterizzata da due aspetti principali: autenticazione ed autorizzazione. • Autenticazione: stabilisce la validità dell’identità dell’utente può essere di basata su diversi meccanismi come l’utilizzo di Pin/Password, di impronte digitali, scansione della retina o da una combinazione delle diverse tipologie. • Autorizzazione: rappresenta lo step successivo all’autenticazione e consente all’utente identificato e autorizzato l’accesso alle risorse. 29 Preservare l’identità del cliente corrisponde a preservarne la privacy quindi la gestione dell’identità ha un ruolo fondamentale nell’ambito della sicurezza. La forma più semplice d’identità è realizzata tramite ID utente e password, in cui ogni utente ha un ID unico e non condiviso con gli altri utenti che ne permette l’identificazione, tuttavia ciò che si richiede per avere un elevato livello di sicurezza comprende meccanismi più complessi. L’utilizzo di password purtroppo rappresenta un rischio in quanto risulta semplice un furto d’identità protetto da questo meccanismo. Nel caso ideale si dovrebbero utilizzare delle one-time-password (OTP), cioè password valide per un singolo accesso, tuttavia le password utilizzate comunemente o sono di tipo statico o a scadenza (con validità mensile, trimestrale ecc.). Più volte una password è utilizzata più possibilità di compromissione possono presentarsi; un’alternativa all’utilizzo di password può essere quello di una passphrase, cioè una sequenza di caratteri più lunga rispetto ad una password che viene convertita in password virtuale dal sistema. Al fine di aumentare il livello di sicurezza oltre alla password è sempre più frequente l’utilizzo di token, che solitamente è un dispositivo hardware che genera un codice valido solo per un intervallo di tempo limitato e che se abbinato alla password corretta permette l’accesso al servizio richiesto. Il funzionamento del token è molto semplice, gli algoritmi di generazione casuale del codice sono implementati sia all’interno del dispositivo che possiede l’utente sia sul server, in questo modo la generazione del codice sarà uguale nello stesso istante e di conseguenza in periodi diversi della giornata il codice sarà quindi diverso. L’implementazione della gestione delle identità può essere di due tipologie: • IDM for a cloud: viene utilizzato un sistema di gestione delle identità preesistente ed esterno al cloud stesso. 30 • IDM in a cloud: il sistema di gestione delle identità è implementato dallo stesso provider, portando una riduzione dei costi in quanto sono implementate solo le soluzioni IDM richieste. Il controllo degli accessi è strettamente legato alla gestione dell’identità ed è essenziale per garantire riservatezza, integrità e disponibilità dei dati nel cloud. Al fine di pianificare meccanismi per il controllo degli accessi adatti al sistema in questione bisogna effettuare un’analisi delle minacce, delle vulnerabilità e dei rischi che potrebbero concretizzarsi. I controlli sono implementati per ridurre i rischi. I meccanismi di controllo si basano su più livelli, essi possono essere amministrativi, logici e fisici. I controlli amministrativi comprendono tutte le politiche e le procedure di sicurezza (sensibilizzazione e la formazione dello staff aumento, maggiore supervisione ecc.) i controlli logici (smart card, crittografia ecc.) permettono la restrizione dell’accesso al sistema, infine i controlli fisici sono relativi alla protezione degli edifici (difese fisiche alle sale server, ai backup, la protezione dei cavi ecc.). 2.2.4 Dominio 13: Virtualizzation In linea di massima lo sviluppo di architetture cloud è basato su piattaforme virtualizzate, infatti nonostante non sia un requisito fondamentale, esso permette di implementare piattaforme per la condivisione di risorse a più utenti. Senza entrare nei dettagli implementativi, generalmente la virtualizzazione ci permette di avere più istanze di un sistema operativo, su un hardware condiviso, mediante l’utilizzo di macchine virtuali (Virtual Machine, VM). Purtroppo al crescente impiego di infrastrutture basate su virtualizzazione, anche la presenza di minacce per tali infrastrutture si fa sempre più frequente. Alle tradizionali minacce dei sistemi computerizzati, si aggiungono minacce del tutto nuove, dovute proprio all’uso di VM. 31 In prevalenza, questo nuovo tipo di minacce consiste in attacchi all’hypervisor, cioè il nucleo operativo della virtualizzazione. Esso rappresenta un single point of failure, mettendo a rischio la gestione delle risorse e l’isolamento tra le diverse VM. Negli attacchi ai sistemi virtualizzati, l’obbiettivo degli hacker è quello di ottenere i privilegi sul sistema sfruttando un attacco alle macchine virtuali che hanno sistemi di controllo meno affidabili dei sistemi operativi tradizionali. Tra i principali attacchi che hanno come obbiettivo gli ambienti virtualizzati si hanno: • Rogue hypervisors: Mediante l’utilizzo di un apposito rootkit è possibile realizzare un rogue hyperivsor (“hypervisor canaglia “), che nascondendosi dai sistemi rilevamento malware, può creare un canale di copertura per utilizzare codice non autorizzato del sistema. Questo tipo di attacco è molto grave poiché, attaccando l’hypervisor permette di controllare completamente il server su cui sono implementate le differenti VM, • VM Escape: questo tipo di vulnerabilità permette ad un software malevolo che si trova in una macchina virtuale di eseguire codice dannoso bypassando l’ambiente virtuale ed accedere all’host fisico, causando un crash del sistema e violando il principio di isolamento tra le VM. • VM rollback: in un ambiente virtualizzato, l’hypervisor è in grado di sospendere le macchine virtuali in qualsiasi momento per effettuare delle istantanee (snapshot) delle risorse utilizzate per poi riprendere la propria esecuzione, il tutto in totale trasparenza del proprio utente. Questo tipo di operazione è un ottimo supporto ai guasti ma al contempo rappresenta una vulnerabilità che permette ai malintenzionati di lanciare un attacco VM rollback. In questo tipo di attacco un hypervisor corrotto esegue una VM da un vecchio snapshot, in totale trasparenza all’utente, bypassando i controlli di sicurezza ed effettuando azioni malevoli. L’utilizzo di questo genere di attacchi è spesso associato ad attacchi brute-force. 32 Infatti solitamente il numero di accessi al sistema operativo su una VM risulta limitato, ma grazie a questo attacco risulta possibile effettuare infiniti rollback ad uno stato iniziale della macchina aggirando tale controllo. Nonostante una certa somiglianza, l’attacco rollback è differente dall’attacco replay, che a differenza del primo non replica la macchina virtuale ma consiste nel furto di credenziali di autenticazione tramite una replicazione del flusso di messaggi scambiati tra le vittime e può essere utilizzato per effettuare azioni maligne in totale trasparenza alla vittima designata (replicazione di transizioni economiche, acquisti duplicati ecc.). Dunque è compito del provider adottare tecniche di sicurezza pratica che garantiscano un certo livello di affidabilità dei sistemi virtualizzati. Le aree di applicazioni di tali tecniche includono la sicurezza fisica, l’applicazione di patch e tecniche di gestione remota. Tra le pratiche di sicurezza di maggior rilievo si hanno: • Utilizzo di comunicazioni criptate: sono implementate attraverso HTTPS (Secure HTTP), Virtual Private Networks (VPN). • Aggiornamento e patch: per garantire una buona sicurezza è necessario effettuare aggiornamenti e installare patch del sistema operativo. Nello specifico l’utilizzo di sistemi virtualizzati comprende l’aggiornamento di tutti i sistemi operativi presenti sulle diverse macchine virtuali. • Irrobustimento delle virtual machine: è un processo di configurazione sicure delle virtual machine che prevede la limitazione delle risorse da parte di una macchina virtuale, la rimozione di dispositivi non necessari, l’isolamento tra i dispositivi di rete e l’irrobustimento dell’hypervisor. 33 • Irrobustimento dell’hypervisor: poiché i principali attacchi ai sistemi virtualizzati sono mirati al controllo dell’hypervisor è necessario che nessun livello di privilegio all’interno di una qualsiasi macchina virtuale possa interferire col sistema host cosi da evitare attacchi all’hypervisor • Sicurezza degli accessi remoti: solitamente i sistemi di macchine virtuali sono fisicamente distinti dal proprio amministratore. Per questo motivo è necessario rendere sicuro l’accesso in remoto da parte di quest’ulitmo attraverso procedure restrittive di autenticazione come l’utilizzo di one time password, autenticazione a due fattori, l’utilizzo di chiavi pubblica e privata ecc. 2.3 La sicurezza oltre l’architettura L’utilizzo di architetture di cloud si differenzia dai tradizionali sistemi IT creando nuove dinamiche dovuti ai rapporti tra client e cloud provider. Oltre ai problemi legati all’architettura, generalmente nei sistemi IT, vi sono anche problemi legati ad aspetti gestionali, politici e giurisdizionali dalle quali non sono sicuramente esenti le architetture cloud, in cui è fondamentale stipulare contratti tra l’utente e il CSP affinché siano rispettati tali accordi. In tale sezione saranno analizzati i domini di maggior interesse pratico definiti dalla CSA, per un’analisi dal punto di vista organizzativo e gestionale. Dominio Tratta le priorità legali in caso di 34 Governance and Enterprise violazione degli accordi contrattuali e Risk Management l’impatto dei confini internazionali su questi temi. Considera aspetti legali connessi all’utilizzo del Cloud computing, gli Legal and Electronic argomenti toccati sono relativi ai Discovery requisiti di sicurezza, di privacy e giurisdizionali. Compliance and audit Sono descritte le direttive da assumere in occasione delle attività di audit Vengono trattati gli argomenti inerenti Information Lifecycle all’identificazione e il controllo dei dati Managment nel cloud e a l loro trattamento durante tutto il ciclo di vita In questa sezione sono discussi i problemi di sicurezza inerenti Portabilty and all’interoperabilità tra fornitori. Interoperability 2.3.1 Dominio 3: Legal and Electronic Discovery Data la natura strutturale del cloud, non è difficile che il provider si trovi in zone geografiche differenti da quelle dell’utilizzatore, e quindi sia soggetto a norme di sicurezza differenti. Ciò desta molte preoccupazioni per gli utenti, in quanto è possibile che le normative giurisdizionali alle quali è sottoposto il provider siano più flessibili, mettendo a rischio la sicurezza delle informazioni del client. 35 Indipendentemente dal modello di cloud computing utilizzato è fondamentale considerare le questioni legali; bisogna informarsi sul modo in cui i governi amministrano le leggi e le normative che possono interferire con servizi di Cloud computing. Per prevenire tutte queste problematiche, è necessario che client e cloud provider abbiano una chiara comprensione dei rispettivi ruoli e responsabilità, basata su una serie di accordi contrattuali. Il cloud provider deve assicurarsi che i propri sistemi di sicurezza informatica rispondano ai requisiti dei clienti garantendo che l’affidabilità sui dati, d’altro canto è necessario che il client prima di affidare il proprio servizio ad un determinato ente ottenga informazioni sul provider, tra cui la locazione geografica del provider cosi da assicurarsi che le misure di sicurezza richieste siano assicurate dalle leggi locali. 2.3.2 Dominio 4: Compilance and Audit Solitamente in un ambiente di cloud pubblico, il provider non fornisce informazioni circa la locazione geografica dell’archiviazione dei dati dei clienti. Tuttavia, come abbiamo già accennato, quest’aspetto va curato con particolare attenzione. L’operazione di gestione di informazioni sensibili deve essere monitorata e protetta da affidabili misure di sicurezza soprattutto nel caso in cui le informazioni siano archiviate in paesi in cui vige una giurisdizione estera e quindi vi siano differenti politiche di sicurezza. Per garantire un alto livello di affidabilità, risulta necessario che tutte le premesse di protezione dei dati e rispetto delle norme di sicurezza da parte del provider verso i clienti siano accompagnate da certificazioni. Tali certificazioni devono rispettare lo Statement on auditing standard (SAS) No.70, cioè uno standard Audit emesso dall’ American Institute of Certified Public Accountants (AICPA) che garantisce che il cloud service provider si attenga ai processi necessari a supportare gli standard di sicurezza richiesti. Un altro aspetto che viene curato è associato alla memorizzazione dei dati nel cloud e al loro trattamento al termine del rapporto tra client e fornitore. In alcuni casi le informazioni devono essere salvate per il rispetto di 36 determinati requisiti informativi, in altri casi il provider deve obbligatoriamente cancellare i dati client nello Storage primario e nei backup. Tuttavia tutte queste scelte decisionali dipendono dalle normative e dalle giurisdizioni del cloud service provider, per questo negli ultimi tempi un certo numero di organizzazioni hanno cominciato a collaborare per sviluppare una serie di standardizzazioni che possano risolvere tali problematiche. 2.3.3 Dominio 6: Information Lifecycle Management Nel passaggio ad un’infrastruttura cloud, l’elasticità, le nuove architetture, i contratti multipli, richiedono nuovi metodi di sicurezza e protezione dei dati. Affinché si possa garantire un certo livello di sicurezza, il flusso di dati deve essere monitorato per tutti il suo ciclo di vita cosi da determinare una strategia di base per la protezione dei dati sensibili. Il ciclo di vita della sicurezza dei dati consiste di sei fasi: 37 • Create (creazione): rappresenta la fase iniziale di creazione dei file. In questo caso la classificazione di sicurezza è effettuata secondo un criterio di sicurezza dei dati aziendali. • Store (salvataggio): Una volta creato i dati, questi vengono salvati in unità di Storage. In questa fase risulta necessario a che i dati memorizzati, incluse tutte le copie di backup, siano protetti. I dati classificati sensibili non devono essere mescolati con dati di altri client, inoltre questi devono essere conservati in zone consentite dal contratto dagli dalle normative. • Use (utilizzo): Dopo la creazione ed il salvataggio in un’unità di Storage, i dati possono essere utilizzati. Le norme di sicurezza relative all’uso da parte dei client devono assicurare un accesso di tipo restrittivo per i soli utenti autorizzati • Share (condivisione): i dati sono accessibili da più utenti e sono in un continuo flusso tra posizioni di memorizzazione pubblica e privata, per questo motivo risulta di grande importanza applicare controlli di sicurezza che gestiscano tale aspetto. • Archive (archiviazione): i dati possono passare da un uso attivo all’archiviazione, anche in questo caso garantire protezione ai dati. • Destroy(distruzione): la crescita inevitabile del volume dei dati archiviati, sono causa di costi elevati per la gestione di strutture adatte per tale operazione. Per questo motivo è necessario che i dati non più attivi vengano distrutti. La fase di distruzione deve essere Lossless, cioè senza perdita di dati e per questo motivo sono necessari dei protocolli di sicurezza per portare correttamente a termine tale operazione. 2.3.4 Dominio 6: Portability and Interoperability 38 Per diversi motivi quali l’aumento dei costi contrattuali, la chiusura improvvisa del provveder oppure un’inaccettabile qualità del servizio, le aziende potrebbero affrontare situazioni urgenti di cambio di cloud provider. In alcuni casi, come un’interruzione contrattuale, quest’operazione può risultare molto complessa. Nessun provider è incline a fornire ad un proprio client un processo di migrazione semplice verso un diretto concorrente. Molte aziende possono arrivare a costruire blocchi all’uscita da un servizio, con l’intento di bloccare i client all’interno della propria offerta, dando vita a situazioni di lock-in. Ad esempio i dati possono restituiti in formati difficili da utilizzare oppure possono essere restituiti con una crittografia che non ne permette l’accesso. In alcuni casi si potrebbe avere bisogno anche di altre informazioni conservate nel cloud (ID utente, informazioni di autenticazione ecc.), che il provider può non voler fornire. Le difficoltà appena descritte sono dovute alla mancanza di standard che rendono l’interoperabilità e la migrazione da un cloud all’altro un faticoso processo manuale. Per evitare imprevisti del genere è buona norma pianificare l’eventualità di tali situazioni nel processo contrattuale, stabilendo i ruoli che i due enti, client e provider, devono assumere al termine del loro rapporto. 2.3.5 Dominio 7: Traditional Security, Business Continuity e Disaster Recovery I termini business continuity e disaster recovery fanno riferimento all’insieme delle misure di sicurezza informatica che permettono all’azienda di affrontare eventi dannosi al proprio business. La pianificazione della continuità operativa (business continuity planning, BCP) è un processo designato ad identificare e ridurre i rischi di perdite finanziare e a rendere tempestivo il recupero di una società dopo un evento dannoso all’azienda stessa La sfera d’interesse della continuità operativa, non considera solo l’aspetto informatico, ma s’interessa dell’intera organizzazione e riguarda anche gli aspetti fisici ed organizzativi essenziali al funzionamento dell’attività di business. Il disaster recovery invece è l’insieme delle tecniche logistico/organizzative che permettono di ripristinare sistemi, dati ed infrastrutture a 39 fronti di gravi danni entro un lasso di tempo che riduce al minimo le perdite, implementando processi critici su un sito alternativo prima del ripristino di sistema. Il piano di disaster recovery (disaster recovery plan, DRP) è un documento facente parte del BCP che esplicita le misure da adottare. Quest’aspetto organizzativo risulta fondamentale per le aziende e per il proprio business, si stima che le imprese spendano tra il 2% e il 4% del loro budget in tali meccanismi. Ciò fa capire l’importanza delle strategie di recupero e la gravità dei disastri informatici che, nella maggioranza dei casi, è responsabile del fallimento dell’impresa stessa. Per le aziende che trasferiscono il loro business in infrastrutture cloud sussistono le stesse considerazioni dell’IT tradizionale, ed è raccomandabile che ci sia una buona informazione dei piani di BCP e DRP adattati dal provider prima di stipulare un contratto. 2.4 Attacchi sulla rete La rete rappresenta l’infrastruttura fondamentale che permette agli utenti di connettersi al cloud per richiedere un servizio, ma allo stesso tempo un’errata configurazioni di meccanismi di rete può presentare una vulnerabilità che permette ad utenti non autorizzati accesso alle informazioni custodite. Nella sezione successiva ci sarà un’esplorazione dei tipi di attacchi più comuni raggruppati per caratteristiche generali. 2.4.1 Intercettazione Questo tipo di attacco consiste nell’intercettazione non autorizzata del traffico di rete. Si parla di intercettazione passiva o monitoraggio nel caso di ascolto di trasmissioni non autorizzato né dal mittente né dal destinatario, invece si parla di intercettazione attiva quando vi è una manomissione, tramite la creazione di covert channel, cioè la creazione di un canale di comunicazione segreto per trasmettere informazioni non 40 autorizzate. Solitamente questo tipo di attacco fa da base per altri attacchi su rete che saranno descritti successivamente. 2.4.2 Intrusione Questo tipo di attacco permette l’accesso al sistema da parte di utenti non autorizzati. Un attacco del genere viene finalizzato grazie all’utilizzo di back doors che consentono di bypassare livelli di sicurezza del sistema. La contromisura di sicurezza per questo tipo di attacchi viene realizzata tramite l’utilizzo di un lntrusion Detecion System (IDS), cioè un dispositivo software o hardware (o una combinazione di entrambi) stand-alone che effettua una scansione del sistema Cloud per rilevare attività malevoli. Esistono due tipologie di IDS: HostBased e Network-Based. Un IDS host based monitora solo i pacchetti in entrata e in uscita al sistema su cui è installata e avvisa l’amministratore di sistema nel caso rilevi attività sospette. Questo tipo di IDS è più difficile da gestire, inoltre dal momento che anch’esso appartiene all’host che controlla, può essere disattivato durante un attacco all’host stesso. Un Network Based Intrusion Detection System a differenza degli Host Based è in grado di monitorare il traffico di rete che interessa più host connessi. Questo approccio è realizzato grazie all’impiego di un insieme di sensori posizionati in vari punti della rete che controllano il traffico eseguendone un’analisi. Questa soluzione si presenta più sicura rispetto a quella Host Based e nonostante utilizzi risorse dedicate per le use funzionalità non infligge un costo prestazione sui sistemi monitorati. Indipendentemente dalla tipologia impiegata esistono due tecniche di rilevamento dell’intrusione: Misuse Detection e Anomaly Detection. Un IDS basato su Misuse Detection (Knowledge-Based) analizza le attività di sistema per rilevare eventi che corrispondono a modelli di attacchi già conosciuti (patterns). Per la realizzazione di tale approccio viene utilizzato un database all’interno del quale sono salvati tutti i comportamenti malevoli registrati nel passato. In questo modo, 41 qualunque azione riconosciuta come attacco e registrata nel database sarà rilevata come maligna, riducendo al minimo il numero di falsi allarmi. Lo svantaggio principale di tale tecnica è dovuto al fatto che attacchi non riconosciuta non vengono rilevati, per questo motivo si ha il bisogno di aggiornare continuamente gli attacchi noti. Invece un IDS basato sull’ Anomaly Detection (Behavoir Based) fa uso di rivelatori di anomalie che analizzano continuamente il funzionamento del sistema alla ricerca di anomalie che poi verranno esaminate per individuare la loro pericolosità. Tale approccio è basato su tecnologie derivanti dall’intelligenza artificiale e permette d’implementare meccanismi in grado di non segnalare anomalie già non identificate come maligne. Idealmente grazie all’utilizzo di tale approccio possono essere rilevati qualsiasi tipo d’attacco tuttavia è approccio amplificato il numero dei falsi allarmi, a causa dell’enorme quantità di dati che viene analizzata quotidianamente 2.4.3 DoS: Denial of Service Gli attacchi DoS hanno come obiettivo quello di sovraccaricare la rete con una grossa mole di traffico, provocando il fallimento del sistema. Nell’IT tradizionale un attacco DoS prevede di bloccare all’utente l’accesso ad internet per un lasso di tempo limitato, invece con l’avvento dei cloud computing questo riesce a creare danni di maggiore entità rendendo il servizio indisponibile e causando perdita di informazione e servizi. Un particolare tipo di attacco è il Distribuite Dos (DDoS) che è portato avanti non da un unico malintenzionato da un gruppo di macchine. Gli attacchi DDoS rappresentano una pericolosità a causa dalla proprietà di auto-scaling dei sistemi Cloud. Infatti per sopperire ad un numero elevato di richieste al sistema verranno dedicate altre risorse (horizontal scaling) o verranno attivate altre macchine virtuali (verticale scaligi) che porteranno ad un blocco del sistema e all’indisponibilità del 42 servizio. Dato che il cloud computing utilizza i protocolli web esistenti, tra cui HTTP, gli attacchi DDoS più diffusi sono quelli che utilizzano la primitiva HTTP GET. Per questo motivo, la sicurezza dei protocolli web è un aspetto cruciale per la difesa contro questi tipi di attacchi ed i meccanismi di sicurezza devono essere riadattati al contesto cloud. 43 Conclusioni Facendo una panoramica generale, l’adozione del Cloud Computing porta innumerevoli vantaggi, garantendo flessibilità alle architetture IT e bassi costi di gestione. Per tali motivi l’utilizzo di questo nuovo paradigma di erogazione delle risorse è in continua crescita e mira ad una fetta di pubblico sempre più grossa. Tuttavia, se da un lato vi sono enormi vantaggi, dall’altro permangono ancora problematiche irrisolte dovute soprattutto ad una mancanza di standardizzazione. Tutt’oggi il Cloud Computing è oggetto di numerose ricerche e studi, che hanno lo scopo di risolvere le diverse problematiche che lo caratterizzano e che sono legate all’aspetto della sicurezza. Tale ambito di ricerca è strettamente legato al rapporto tra il Client ed il Provider e ai ruoli che questi devono coprire per garantire il livello di sicurezza definito dagli accordi contrattuali. Come si è già discusso nell’elaborato, a causa della vastità di tali sistemi, i meccanismi di sicurezza devono coprire numerosi aspetti che vanno dall’aspetto politico come i problemi gestionali e organizzativi all’aspetto informatico relativi alla sicurezza della rete e dell’architettura del clodu. Negli ultimi anni sono stati fatti numerosi passi verso la standardizzazione di tale tecnologia, grazie anche al supporto di organizzazioni come il National Institute of Standards and Technology (NIST) e la Cloud Security Alliance (CSA), i cui documenti sono stati realizzati come supporto per definire le linee guida per la gestione e lo sviluppo degli ambienti di Cloud. 44 Le indagini effettuate rivelano che entro pochi anni la migrazione verso il cloud riguarderà il 75 % delle aziende e che le problematiche saranno risolte implementando meccanismi di sicurezza più rigidi completando definitivamente una rivoluzione tecnologica che ha coinvolto interamente il mondo dell’IT. 45 Bibliografia [1]Peter Mell Timothy Grance, The NIST Definition of Cloud Computing, Special Pubblication 800-145, September 2011 [2]Wikipedia.org, CloudComputing “https://it.wikipedia.org/wiki/Cloud_computing” [3]Kroll Ontrack Inc., https://www.ontrackdatarecovery.it/articolo-sicurezza-nelcloud/ [4] Wikipedia.org, https://it.wikipedia.org/wiki/Service_level_agreement [5] Ronald L.Krutz and Russel Dean VinesWinkler, “Securing the Cloud, 2010 [6]”Deployments Model“ http://www.hostingtalk.it/lezione-3-tipologie-di-cloudcloud-pubblico-privato-e-ibrido_-c000000sp/ [7] “Cloud Computing” http://cloudcomputing.sys-con.com/node/811519 [9] Wikipedia.org “Hypervisor” https://it.wikipedia.org/wiki/Hypervisor [10] Wikipedia.org “BCP” https://it.wikipedia.org/wiki/Disaster_recovery [11] CSA, Security Guidance for Critical Areas of Focus in Cloud Computing V2.1. December 2009 [12] Elisa Bertino, Federica Paci, Rodolfo Ferrini, Ning Shang: Privacy-preserving Digital Identity Management for Cloud Computing, [13]Virtualization Security, “https://cloudsecurityalliance.org/wpcontent/uploads/2011/11/virtualization-security.pdf” [14] Yubin Xia , Yutao Liu ‡, Haibo Chen, Binyu Zang, Defending against VM Rollback Attack [15] Zarrabi, Zarrabi, Internet Intrusion Detection System Service in a Cloud, September 2012 46