Cloud Computing Prof. Francesco Bergadano Dipartimento di Informatica, Università degli Studi di Torino
Cloud Computing Prof. Francesco Bergadano Dipartimento di Informatica, Università degli Studi di Torino
Cloud Computing Definizione di Cloud Computing: Sviluppo ed uso di tecnologie ICT con le seguenti caratteristiche: vengono fornite risorse (hardware, piattaforme software, servizi applicativi) le risorse vengono fornite e rese accessibili via Internet le risorse sono scalabili in modo dinamico e su richiesta (on demand) le risorse possono essere virtuali e possibile accedere alle risorse attraverso device di diversi tipi Per chiarire dobbiamo: fare qualche primo esempio spiegare che cosa intendiamo per virtualizzazione
Cloud Computing, qualche esempio... lo stiamo usando tutti: webmail google docs google calendar servizi vari ai quali il consumatore accede via web: banking (es. F24, rubrica beneficiari, stock watch) assicurazioni (es. le mie polizze ) shopping / commerce (es. preferiti, carrello, history) ambienti resi disponibili nei social network servizi acquistati dalle aziende ed accessibili via Web: gestionale (aggiornamento sw non necessario, e un servizio su Cloud) client relationship management (CRM) documentale e workflow, e-collaboration applicazioni custom (es. Cineca per Unito)
Virtualizzazione Il concetto di virtualizzazione Virtualizzazione, un concetto ampiamente usato nell informatica, ad esempio: - file system - memoria virtuale - virtualizzazione dei server Vantaggi della virtualizzazione dei server: - Riduzione del numero di server fisici. Utilizzo effettivo dei server sotto il 20%, è quindi possibile la server consolidation. - Indipendenza dall hardware o Facilità di porting di applicazioni da una macchina all altra o Possibilità di mantenere applicazioni legacy su hardware non più supportato o Standardizzazione delle installazioni - Possibilità di creare ambienti di test Svantaggi - Overhead - Sicurezza
*Tipi di virtualizzazione ([2], [1] pagg. 13): Aggregation (es. Grid) Partitioning Hardware partitioning: A ogni VM si associa una diversa partizione hardware (es. board, processori, memoria) Esempi: HP npartition, Sun Dynamic System Domains Hypervision Virtual Machine Monitor Hypervisor hosted OS hosted OS virtualization Diverse copie del SO base e alberi di processi separati (zone) Esempi: Sun Solaris Containers/Zones, FreeBSD Jails, Virtuozzo Instruction-set (emulazione)
*Hypervisor Un layer che permette l astrazione rispetto al livello fisico Permette la condivisione dell hardware fisico tra diverse macchine virtuali Fornisce a ogni macchina virtuale una diversa visione dell hardware fisico, emulando le componenti hardware desiderate Vedi [1], pag. 16.
*Virtual Machine Monitor Il Virtual Machine Monitor (VMM) è un layer che permette di Fornire alle VM le interfacce hardware desiderate Gestire le VM: comunicazione tra VM isolamento monitoraggio getione priorità ciclo di vita Tipi di Virtual Machine Monitor ([1] pagg. 17) OS hosted Microsoft Hyper-V stand alone Microsoft Virtual Server VMware Server Hypervisor hosted Esempi: Microsoft Hyper-V Xen VMware ESX Server
Esempio [3]: Virtual Machine Monitors (VMMs) VM 0 App 0 VM 1 App 1 VM n App n Virtual Machines (VMs)... Guest OS 0 Guest OS 1 Guest OS n Virtual Machine Monitor (VMM) Platform HW Memory Processor/CS I/O Devices VMM is a layer of system software Enables multiple VMs to share platform hardware Allows Apps to run without modifications
Definizione di Cloud Computing: Sviluppo ed uso di tecnologie ICT con le seguenti caratteristiche: vengono fornite risorse (hardware, software, servizi) le risorse vengono fornite e rese accessibili via Internet le risorse sono scalabili in modo dinamico le risorse possono essere virtuali e possibile accedere alle risorse attraverso device di diversi tipi Differenze rispetto a server virtualization: - risorse in generale, non solo server - Risorse non solo hardware, ma anche servizi - Risorse e servizi forniti as a service, quindi o On demand o Con tariffazione anche spot o Senza ownership della risorsa - Scalabilità (indipendenza da una specifica infrastruttura fisica) - over the Internet, quindi o Preferibilmente sopra http o Disponibile a diversi device (pc, smartphone, tablet) o Accessibile ovunque
Tipi di cloud Classificabili rispetto a: 1. Dove si trovano le risorse del cloud 2. Tipi di servizi
Classificazione in base a dove si trovano le risorse 1. Public cloud Nel cloud pubblico l infrastruttura è presso il fornitore di servizio, quindi: - Il cliente non sa dove si trovano le risorse hardware - Il cliente non controlla quali risorse fisiche devono essere utilizzate - Più clienti condividono le stesse risorse 2. Private cloud Nel cloud privato l infrastruttura è presso l utente del servizio, quindi: - L utente controlla le risorse - Le risorse non sono condivise - Vi può essere maggiore sicurezza/controllo Esistono due tipi di private cloud: - ospitate internamente - ospitate presso un centro servizi, ma in uso esclusivo al cliente 3. Hybrid cloud Uso di applicazioni critiche su cloud privato e di applicazioni più aperte su cloud pubblico. 4. Community cloud Private cloud usato da più unità di una stessa organizzazione, o da più organizzazioni federate, ad esempio nel settore pubblico
Classificazione in base al tipo di servizio 1. Infrastructure as a service (IaaS): offerta di servizi relative all hardware come cloud, ad esempio: Database, Spazio disco, Server virtuali Esempi di offerte di tipo Infrastructure as a service: - Amazon EC2 (computing) - Amazon S3 (storage) - Rackspace Cloud Servers - Flexiscale 2. Platform as a Service (PaaS). Esempi di offerte esistenti: - Google s Application Engine - Microsofts Azure 3. Software as a service (SaaS) offerta di servizi software completi su cloud (a disposizione o pay per use). Esempi: - Salesforce.com per Customer Relationship Management (CRM) - Google gmail, Microsoft hotmail - Google docs e Microsoft BPOS (Business Productivity Online Standard Suite, versione online di office).
Security - virtualizzazione e i corrispondenti rischi di sicurezza ([1], pag. 33 e seguenti) - la sicurezza di una infrastruttura cloud esterna - la sicurezza dei servizi software o sicurezza della comunicazione o sicurezza dell infrastruttura ospitante o http-related o user management o aspetti normativi
*La sicurezza della virtualizzazione ([1], pag. 33 e seguenti) Rischi: Malware basato su virtualizzazione Man in the middle su live migration DOS Contromisure: Malware Detection via Virtual Machine Detection Honeypots Cifratura dischi virtuali
*Malware basato su virtualizzazione Rootkit kit per agire come root ovvero come amministratore Un kit che può essere usato da remoto e senza autorizzazione Il rootkit può essere installato all insaputa dell utente, anche in modo automatico, da parte di malware esterno, al fine di lasciare aperta una backdoor, da utilizzarsi al momento opportuno. I rootkit possono essere User space (modificano eseguibili come farebbe un comune virus rilevabili mediante analisi con signature o verificando l integrità dei file) Kernel space (modificano le system call, non rilevabili mediante ricerca di signature nei file utente) Hypervisor based (hyperjacker inserisce uno strato di virtualizzazione che contiene le funzionalità del malware, il sistema operativo risulta intatto) vedi [1] fig. 16 pag. 35.
*Tipi di hyperjacker sulla base delle funzionalità del payload/malware Silenzioso (non interagisce con la VM, crea una backdoor o esegue attività nascoste ed esterne, ad esempio spam, website fraudolento, website illegale, DOS) Passivo (intercetta il traffico di rete, gli eventi o i keystroke sulla VM) Attivo (modifica il comportamento della VM, ad esempio cambiando i messaggi in rete o il contenuto dei file)
*La sicurezza dei servizi software e di una infrastruttura cloud esterna - sicurezza della comunicazione (tra risorse del cloud, tra utente e cloud) o intercettazione, modifica o denial of service (DOS) - sicurezza dell infrastruttura ospitante o protezione dei dati o separazione dei dati di diversi clienti o malware on site, malware veicolato all utente o disponibilità del servizio - user management o autenticazione utente IP, IP+coockie/url Credenziali tipo utente/password One time passwords con token Certificati di chiave pubblica / https o autorizzazione - rischi http-related o injection (es.: SQL injection, XSS) o phishing e indirizzamento verso cloni modificati del servizio - aspetti normativi o responsabilità dell amministratore di sistema o trattamento dei dati rispetto alla normativa sulla privacy o responsabilità in caso di perdita o furto dei dati del cliente finale
Aspetti economici: vantaggi/svantaggi nel passaggio a Cloud: VANTAGGI - Risparmio possibile di o spazio o energia elettrica, raffreddamento o costo dell hardware - Outsourcing degli interventi tecnici o manutenzione hardware e software o personale - Scalabilita o Se aumentano le necessita non e necessario modificare l infrastruttura interna o Il Cloud e on demand : pago solo quello che uso, quando lo uso SVANTAGGI - Velocita di accesso a dati e applicazioni o Dipende dalla rete pubblica o Se manca il collegamento non posso accedere - Sicurezza o Meno controllabile o In mano al fornitore del servizio - Compliance o Puo comportare problemi, le misure adottate dipendono dal fornitore - Dipendenza dal fornitore o Se i prezzi aumentano o Se il fornitore non e piu in grado di assicurare il servizio
CONCLUSIONE Cloud = risorse virtuali via Internet, on demand, accessibili attraverso ogni device Virtualizzazione = server e risorse virtuali, implementati su piattaforme fisiche Tipi di cloud = public/private/hybrid/community infrastructure/platform/application Issues: performance/sicurezza, flessibilità/scalabilità/outsourcing, compliance, economics
Bibliografia [1] La virtualizzazione e i suoi aspetti di sicurezza. Assosecurity 2011. [2] Phelps J.R. and Dawson P.: Demystifying server virtualization taxonomy and terminology. Gartner Research, 2007 [3] Narendar B. Sahgal and Dion Rodgers. Understanding Intel Virtualization Technology (VT). http://download.microsoft.com/download/9/8/f/98f3fe47- dfc3-4e74-92a3-088782200fe7/twar05015_winhec05.ppt [4] Oberheide, Cooke, Jahanian. Empirical Exploitation of Live Virtual Machine Migration. March 2008. http://jon.oberheide.org/files/blackhat08- migration.pdf