TECHTARGET

Container security o VM security: qual è la soluzione migliore?

Capire più nel dettaglio le proprietà di sicurezza delle macchine virtuali rispetto a quelle di sicurezza dei container aiuta le organizzazioni a fare chiarezza sulle opportunità dei propri perimetri di presidio

Pubblicato il 24 Mar 2020

container e virtualizzazione 1

Container security ancora tutta da capire rispetto a una virtualizzazione su cui, ormai, i professionisti della sicurezza hanno grande familiarità. Con la crescente diffusione dei data center nel cloud, infatti, l’uso della virtualizzazione è quasi onnipresente nelle organizzazioni.

I team IT stanno iniziando a incontrare tecnologie di containerizzazione delle applicazioni nelle loro organizzazioni, tra cui Docker, rkt e le tecnologie di orchestrazione associate come Kubernetes che le circondano e aiutano a ridimensionare l’utilizzo.

Container security versus VM security

I professionisti della sicurezza, in base ai rischi tecnologici, devono prendere decisioni continue. Molte di queste decisioni riguardano la virtualizzazione e la containerizzazione. Ma tra macchine virtuali e container qual è più sicuro?

I due ambiti tecnologici, infatti, non sono equivalenti. Se si parla di container security e d VM security è necessario capire come i due approcci richiedano:

  • un set di strumenti diverso
  • modelli di sicurezza differenti
  • una familiarità con un ecosistema di orchestrazione completamente diverso

Senza contare che, a seconda del particolare caso di utilizzo, le scelte possono essere diverse.

Virtualizzazione del sistema operativo quanto è sicura?

Tra il data center software defined, cloud ibrido e IaaS, la maggior parte dei professionisti della tecnologia e della sicurezza ha maturato molta esperienza sulla virtualizzazione del sistema operativo. Una caratteristica chiave di questo approccio è la netta segmentazione tra gli host virtuali che tra qualsiasi host virtuale e l’hypervisor.

Parlando di sicurezza, la segmentazione non è immune dagli attacchi. Le vulnerabilità, infatti, sono numerose: gli esperti citano ad esempio il side-channel attack noto come Rowhammer, le vulnerabilità di esecuzione speculativa come Spectre o Meltdown o il bug specifico che colpice occasionalmente l’hypervisor. Tuttavia, gli attacchi di segmentazione in natura sono rari e le vulnerabilità difficili da sfruttare.

La virtualizzazione del sistema operativo è uno strumento ausiliario in situazioni in cui sussiste un limite di segmentazione come, ad esempio, nel caso in cui i team di sicurezza non hanno il controllo dell’intero ambiente in presenza di un ambiente multi cloud. La deduplica dell’OS può risultare vantaggiosa anche nel caso in cui i team devono apportare rapidamente modifiche alla configurazione di rete sottostante o quando desiderano migrare un dispositivo fisico in un ambiente virtuale. Gli esperti segnalano i potenziali svantaggi a livello di sicurezza legati all’insorgenza di alcuni problemi a livello di gestione. Ad esempio, possono verificarsi

problemi collegati a una proliferazione indesiderata di immagini e la loro relativa espansione, oppure a una serializzazione di immagini vecchie o obsolete sul disco. Anche a livello di inventario la virtualizzazione può causare un po’ di mal di testa ai team di sicurezza. L’orchestrazione può ridurre le conseguenze di questi problemi ma non li risolve del tutto.

La questione è non fraintendere: la facilità con cui sviluppatori e ingegneri possono virtualizzare e migrare i dispositivi fisici esistenti non significa risolvere nativamente la sicurezza. Mitigare questi dispositivi a un hypervisor rafforzerà potenzialmente la loro sicurezza, ma in un ambiente mal gestito gli stessi dispositivi possono tradursi in host configurati in modo problematico, e quindi aprire la porta alle vulnerabilità. Le cause di una gestione fallace possono essere diverse, associate a sistemi operativi obsoleti, middleware legacy o vecchie librerie di software.

container security 1

Security container: le cose da sapere

La differenza fondamentale tra la tecnologia container e la classica virtualizzazione è a livello di sistema operativo. Nei container, infatti, l’OS è condiviso tra tutte le istanze in esecuzione: a livello di capacità elaborativa e di memoria è questo a garantire a una forte riduzione delle risorse utilizzate.

Come sottolineano gli osservatori, i contenitori di applicazioni rispetto alla virtualizzazione hanno proprietà diverse: a seconda dell’uso, alcune rafforzano la sicurezza mentre altre possono comprometterla.

Microsegmentazione

Una proprietà chiave dei container è una segmentazione che risulta più porosa rispetto a quella della virtualizzazione del sistema operativo. Cosa significa, più nel dettaglio? Che in un contesto di virtualizzazione del sistema operativo, la segmentazione viene applicata dall’hypervisor al di sotto del livello del sistema operativo guest. Invece la segmentazione utilizzata da un motore container funziona in modo diverso. I contenitori, infatti, vengono eseguiti sulla stessa istanza del sistema operativo del motore contenitore e funzionano anche sullo stesso sistema operativo di altri contenitori. Questo è vero anche se i container normalmente non possono interagire tra loro o con il motore del container.

I contenitori utilizzano le funzionalità del sistema operativo per creare ambienti logici in cui le viste di processi, file e stato della rete risultano invisibili l’una all’altra. Questo viene realizzato attraverso la spaziatura tra i nomi in modo tale che le risorse sono limitate e l’utilizzo in questi ambienti è controllato. Tuttavia, nel mondo Linux ad eccezione di data e ora non tutto è spaziato. Ad esempio, nel caso in cui i team di sicurezza disabilitassero le protezioni predefinite che impedivano a un container di modificare l’ora lo stesso container avrebbe la possibilità modificare l’ora nell’intero host, inclusi gli altri container. In modo analogo, le istanze del sistema operativo funzionano come sempre: ad esempio, l’utente root è ancora l’utente root. La segmentazione potenzialmente limita l’applicabilità per alcune situazioni. Ad esempio, un team di sicurezza potrebbe bocciare un’applicazione ad alta sicurezza in una situazione multi-tenant.

Detto questo, quando si parla di container security le potenzialità dei vantaggi dipendono dagli obiettivi. L’uso della containerizzazione promuove una cultura di processo in cui si eliminano i vecchi container per procedere con la distribuzione di quelli nuovi per cui i tempi di vita non sono mai lunghi come può accadere con la virtualizzazione. Quando si tratta di virtualizzazione del sistema operativo le istanze possono vivere abbastanza a lungo da diventare stantie (basti pensare alla raccolta di file di backup o alle istanze software che diventano obsolete).

Con la containerizzazione il fenomeno dell’obsoloscenza non c’è: ogni volta che si renda necessario apportare una qualche modifica, un contenitore verrà quasi certamente demolito e ricostruito. Questo fornisce un vantaggio indubbio per la container security. L’architettura per componenti può essere realizzata abilitando nuovi servizi applicativi distribuiti che, altrimenti, insisterebbero sullo stesso dispositivo virtuale o fisico. Ciò aggiunge valore a un modello di distribuzione basato sui microservizi più ampio e sensibile alla sicurezza.

Conclusioni

Riassumendo, mettere a confronto container security e virtualization security ha senso. Ma la scelta finale dipende sempre dalla domanda di partenza rispetto agli obiettivi che si vogliono raggiungere. Come ironizzano gli esperti, chiedere quale tra i due è più sicuro è un po’ come chiedere se è più utile un martello o una banana. La risposta dipende sempre dal contesto di utilizzo: la banana offre nutrimenti preziosi, ma non usatela per martellare un chiodo…

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 4