Sicurezza Cloud. Parte 3 - Applicazioni

La scelta di sviluppare o di eseguire le applicazioni in un ambiente di cloud computing porta a dover verificare una serie di requisiti necessari a garantire il medesimo livello di protezione ottenibile nel caso di applicazioni la cui esecuzione resta confinata all’interno dell’ambiente enterprise

Avatar di Riccardo Florio

a cura di Riccardo Florio

Il software applicativo che viene sviluppato oppure eseguito all'interno degli ambienti di cloud computing, si trova sottoposto a una serie di requisiti legati alla sicurezza che dipendono dalla tipologia di modello di distribuzione cloud a cui è indirizzato.

Per valutare il livello di sicurezza delle applicazioni in un ambiente cloud, i security manager aziendali si trovano, pertanto, non solo a dover decidere se sia opportuno sviluppare o eseguire un'applicazione su una piattaforma di cloud computing ma, nel caso in cui decidano di farlo, anche di scegliere accuratamente la modalità più appropriata per farlo. Per garantire la sicurezza delle applicazioni in un ambiente cloud due aspetti vanno considerati.

Il primo è di determinare i controlli di sicurezza che un'applicazione deve fornire in aggiunta al livello di controllo intrinseco alla piattaforma cloud. Un secondo punto chiave riguarda le modalità che legano il ciclo di vita di sviluppo a livello enterprise con quello degli ambienti cloud.

Di seguito analizzeremo brevemente questi aspetti in relazione alle differenti tipologie di piattaforma cloud.

La sicurezza applicativa nel modello Infrastrutture as a Service (IaaS)

All'interno di un'infrastruttura erogata sotto forma di servizio (IaaS), il fornitore mette a disposizione dell'utente diversi componenti virtuali. Quelli fondamentali sono una serie di macchine virtuali dotate di un sistema operativo virtuale in cui risiede l'applicazione.

La memorizzazione dei dati locali in un ambiente IaaS non viene mantenuta al riavvio della macchina e, pertanto, molte applicazioni usano una qualche forma di storage persistente collocato esternamente da qualche parte all'interno dell'ambiente IaaS.

Un primo aspetto da considerare per garantire la sicurezza applicativa è che l'immagine virtuale fornita dal provider IaaS sia sottoposta allo stesso livello di controllo di sicurezza e di conformità a cui sono soggetti gli host presenti all'interno della rete enterprise.

Per poter disporre di questo livello di sicurezza è possibile che un'azienda decida di predisporre da sè l'immagine virtuale utilizzata, in modo da conformarsi ai propri requisiti di sicurezza.

Un'altra possibilità è di affidarsi a un fornitore di terze parti affidabile, che fornisca una serie servizi di sicurezza aggiuntivi al di sopra dei componenti infrastrutturali messi a disposizione dal provider IaaS.

Va poi evidenziato che la maggior parte delle applicazioni interne all'azienda enterprise non si preoccupa eccessivamente di garantire la sicurezza della comunicazione tra gli host di un'applicazione distribuita, poiché il traffico transita solo attraverso una rete sicura.

In un ambiente cloud gli host operano, invece, all'interno di un'infrastruttura condivisa con altre aziende e, pertanto, un'applicazione "cloud based" deve farsi carico anche di garantire la comunicazione tra host per evitare che, durante l'elaborazione, possa verificarsi una diffusione non autorizzata di dati sensibili. Tutte le precauzioni adottate all'interno dell'ambiente enterprise a protezione dei dati sensibili dovrebbero perciò essere applicate anche alle applicazioni ospitate all'interno di un ambiente IaaS.

Un ulteriore aspetto da considerare nella protezione delle applicazioni riguarda le modalità con cui la sicurezza viene integrata all'interno del loro ciclo di sviluppo.

Precauzioni vanno previste anche nell'ambiente cloud dove si deve tenere conto dello specifico rapporto che intercorre tra l'ambiente di sviluppo applicativo e quello di rilascio, rispetto a un'applicazione enterprise di tipo tradizionale.

Nel caso di applicazioni eseguite in ambienti IaaS diventa anche necessario che il livello di "fiducia" venga codificato tra l'utente e il service provider attraverso una serie di Service Level Agreement (SLA), in modo analogo a quanto avviene nel caso del rapporto con un fornitore di Managed Services: la principale differenza tra i due, a tale riguardo, sarà legata alla diversa persistenza dei dati all'interno delle risorse cloud rispetto alle risorse fisiche messe a disposizione da un fornitore di servizi gestiti.