Cloud computing: Vulnerabilità del cloud

Il modo in cui viene progettata la propria infrastruttura di cloud computing potrebbe avere conseguenze dirette sulla relativa capacità di resistenza in caso di guasti.

Dan Marinescu

Adattato da "il Cloud Computing: Teoria e pratica"(Elsevier Science & Libri di tecnologia)

Nuvole pubbliche e private possono essere influenzate da attacchi dannosi e fallimenti di infrastruttura quali interruzioni dell'alimentazione. Tali eventi possono influenzare Internet domain name servers, impedire l'accesso alle nuvole o influenzano direttamente le operazioni di cloud.

Ad esempio, un attacco di Akamai Technologies su 15 giugno 2004, ha causato un'interruzione del nome di dominio e un importante blackout che ha colpito la Google Inc., Yahoo! Inc. e molti altri siti. Nel maggio 2009, Google è stato il bersaglio di un grave attacco denial-of-service (DoS) che ha preso giù servizi come Google News e Gmail per diversi giorni.

Fulmine ha causato una prolungata inattività presso Amazon.com Inc. il 29 e 30 giugno 2012. Il cloud di Amazon Web Services (AWS) nella regione orientale degli Stati Uniti, che consiste di 10 centri dati in tutto quattro zone di disponibilità, inizialmente fu turbato dalle fluttuazioni di potenza utilità probabilmente causate da una tempesta elettrica. Una tempesta 29 giugno 2012, sulla costa orientale ha preso giù alcune strutture di base di Virginia Amazon e colpite le aziende che utilizzano sistemi esclusivamente in questa regione. Instagram, un servizio di condivisione di foto, è stato riferito una delle vittime di questa interruzione.

Recupero da questi eventi ha preso molto tempo ed esposti una serie di problemi. Per esempio, uno dei 10 centri non è riusciti a passare a generatori di backup prima di esaurire la potenza che potrebbe essere fornita dal gruppo di continuità alimentatori (UPS). AWS utilizza "piani di controllo" all'interruttore di lasciare che gli utenti alle risorse in una regione diversa, e questa componente software anche non riuscita.

Il processo di avvio era difettoso ed esteso il tempo necessario per riavviare Servizi Elastic Block Store (EBS) ed Elastic Compute Cloud (EC2). Un altro problema critico è stato un bug in elastico Load Balancing (ELB), che viene utilizzato per instradare il traffico ai server con capacità disponibile. Un bug simile influenzato il processo di ripristino del servizio di Database relazionali (RDS). Questo evento ha portato alla luce problemi "nascosti" che si verificano solo in circostanze particolari.

Pezzi della nube

Un provider di applicazioni cloud, un provider di archiviazione cloud e un provider di rete potrebbe attuare politiche differenti. Le imprevedibili interazioni tra il bilanciamento del carico e di altri meccanismi reattivi potrebbero portare a instabilità dinamica. L'accoppiamento non intenzionale dei controllori indipendenti che gestiscono il carico, consumo di energia e gli elementi dell'infrastruttura potrebbe portare a feedback indesiderati e instabilità simili a quelle vissute da policy-based routing nell'Internet protocollo BGP (Border Gateway).

Ad esempio, il bilanciamento del carico di un provider dell'applicazione potrebbe interagire con l'ottimizzatore di potenza del provider di infrastrutture. Alcuni di questi attacchi può manifestarsi solo in condizioni estreme e possono essere molto difficili da rilevare condizioni di funzionamento normale. Quando il sistema tenta di recuperare da un fallimento difficile, come nel caso dell'interruzione AWS 2012, che potrebbe avere conseguenze disastrose.

Clustering di risorse in datacenter situati in aree geografiche diverse è uno dei mezzi utilizzati per abbassare la probabilità di guasti catastrofici. Questa dispersione geografica delle risorse può avere ulteriori effetti collaterali positivi. Può ridurre i costi di traffico e l'energia di comunicazione da spedire i calcoli ai luoghi dove l'energia elettrica è più conveniente. Può anche migliorare le prestazioni con un'intelligente ed efficace strategia di bilanciamento del carico.

Nella creazione di un'infrastruttura cloud, è necessario bilanciare accuratamente gli obiettivi di sistema come massimizzare velocità effettiva, l'utilizzo delle risorse e benefici finanziari con le esigenze dell'utente come a basso costo e tempo di risposta e massima disponibilità. Il prezzo da pagare per qualsiasi ottimizzazione del sistema è il sistema di maggiore complessità. Ad esempio, la latenza di comunicazione sopra una wide area network (WAN) è considerevolmente più grande di quello sopra una rete locale (LAN) e richiede lo sviluppo di nuovi algoritmi decisionali globali.

Sfide di nube

Cloud computing eredita alcune delle sfide del parallelo e calcolo distribuito. Si affaccia anche molte sfide principali della propria. Le sfide specifiche differiscono per i modelli di consegna di tre nube, ma in tutti i casi le difficoltà sono create dalla natura stessa dell'utility computing, che si basa sulla condivisione di risorse e virtualizzazione di risorse e richiede un modello di trust differenti rispetto al modello onnipresente user-centric che è stato lo standard per un lungo periodo.

La sfida più importante è la sicurezza. Guadagnare la fiducia di una base di grandi utenti è fondamentale per il futuro del cloud computing. Non è realistico aspettarsi che un cloud pubblico fornirà un ambiente adatto per tutte le applicazioni. Applicazioni altamente sensibili relative alla gestione delle infrastrutture critiche, applicazioni sanitarie e gli altri molto probabilmente sarà ospitati da nuvole privati.

Molte applicazioni in tempo reale saranno probabilmente ancora rinchiusi a cloud privati. Alcune applicazioni possono essere meglio serviti da un'installazione di cloud ibrido. Tali applicazioni potrebbero mantenere dati sensibili su un cloud privato e utilizzare un cloud pubblico per alcuni dell'elaborazione.

Il Software come un modello di servizio (SaaS) affronta le sfide simili come altri servizi online è necessari proteggere le informazioni riservate, come ad esempio finanziari o servizi di assistenza sanitaria. In questo caso, un utente interagisce con i servizi cloud tramite un'interfaccia ben definita. In linea di principio, quindi, è meno impegnativa per il provider di servizi chiudere alcuni canali attacco.

Ancora, tali servizi sono vulnerabili agli attacchi DoS e dannosi addetti ai lavori. Dati in memoria sono più vulnerabili agli attacchi, così dedicare particolare attenzione alla protezione dei server di archiviazione. La replica dei dati necessaria a garantire la continuità del servizio in caso di guasto del sistema di archiviazione aumenta la vulnerabilità. Crittografia dei dati può proteggere i dati in memoria, ma alla fine devono essere decrittografati dati per l'elaborazione. Quindi è esposto ad attacchi.

L'infrastruttura come un modello di servizio (IaaS) è il più impegnativo per difendersi contro gli attacchi. Infatti, un utente di IaaS ha molta più libertà rispetto agli altri modelli di consegna due cloud. Un'ulteriore fonte di preoccupazione è che le risorse cloud considerevole potrebbero essere utilizzate per avviare gli attacchi contro la rete e l'infrastruttura informatica.

La virtualizzazione è un'opzione di critical design per questo modello, ma espone il sistema a nuove fonti di attacco. Il trusted computing base (TCB) di un ambiente virtuale include non solo l'hardware e l'hypervisor, ma anche la gestione del sistema operativo. È possibile salvare l'intero stato di una macchina virtuale (VM) in un file per consentire la migrazione e recupero, entrambe le operazioni altamente desiderabile.

Eppure questa possibilità sfide le strategie per portare i server appartenendo a un'organizzazione di uno stato stabile e desiderabile. Infatti, un VM infetto può essere inattivo quando i sistemi sono ripuliti. Poi può svegliarsi tardi e infettare altri sistemi. Questo è un altro esempio del profondo intreccio di desiderabili e indesiderabili effetti di base di cloud computing technologies.

La prossima grande sfida è correlata alla gestione delle risorse su una nuvola. Qualsiasi strategia di gestione risorsa sistematica (piuttosto che ad hoc) richiede l'esistenza di controller il compito di implementare diverse classi politiche: controllo ammissione, assegnazione della capacità, carico di equilibratura, ottimizzazione energetica e, ultimo ma non meno importante, garantisce la fornitura di qualità del servizio (QoS).

Per implementare questi criteri, il controller bisogno di informazioni precise circa lo stato globale del sistema. Determinazione dello stato di un sistema complesso con 106 server o più, distribuita sopra una vasta area geografica, non è fattibile. Infatti, l'esterno carico, così come lo stato delle risorse individuali, cambia molto rapidamente. Così, il controller deve essere in grado di funzionare con conoscenza incompleta o approssimativa dello stato del sistema.

Sembra ragionevole aspettarsi che tale sistema complesso può solo funzione basata su principi di autogestione. Ma autogestione e autorganizzazione alzare la barra per l'implementazione di registrazione e controllo delle procedure critiche per la sicurezza e la fiducia in un provider di cloud computing services.

Sotto autogestione diventa quasi impossibile identificare le ragioni per cui è stata scattata una determinata azione che ha portato in una violazione della sicurezza.

L'ultima grande sfida che ti rivolgo è legato per l'interoperabilità e la standardizzazione. Vendor lock-in, il fatto che un utente è legato a un particolare cloud provider di servizi — è delle principali preoccupazioni per gli utenti di cloud. Standardizzazione avrebbe supportano l'interoperabilità e quindi alleviare alcuni dei timori che un servizio critico per una grande organizzazione possa non essere disponibile per un periodo prolungato di tempo.

È impegnativo, imponendo norme in un momento quando una tecnologia è ancora in evoluzione, e può essere controproducente, perché può soffocare l'innovazione. È importante rendersi conto della complessità dei problemi posato dal cloud computing e per comprendere l'ampia gamma di problemi tecnici e sociali cloud computing solleva. Lo sforzo di migrare le attività IT di nuvole pubbliche e private avranno un effetto duraturo.

Dan C. Marinescu

Dan C. Marinescu era un professore di informatica presso la Purdue University dal 1984 al 2001. Quindi si unì al dipartimento di Scienze informatiche presso la University of Central Florida. Ha ricoperto posizioni di facoltà visita presso l'IBM T. J. Watson Research Center, l'Istituto di Scienze informazioni a Pechino, la divisione sistemi scalabili di Intel Corp, Deutsche Telecom AG e INRIA Rocquancourt in Francia. Sua ricerca interessi coperchio parallelo e sistemi distribuiti, cloud computing, scientific computing, quantum computing e teoria dell'informazione quantistica.

Per ulteriori informazioni su questo e altri titoli di Elsevier, check out Elsevier Science & Libri di tecnologia.

Contenuti correlati