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