-: Il nuovo tipo di virtualizzazione
che sta diventando popolare nelle nostre
reti è noto come virtualizzazione basata su container,
nota anche come containerizzazione.
Questo tipo di virtualizzazione, però, è molto
più incentrato sui server che sull'utente finale.
Con questo tipo di virtualizzazione,
il kernel del sistema operativo è condiviso
tra più macchine virtuali, ma lo spazio utente di ogni macchina
virtuale è creato e gestito in modo univoco.
La containerizzazione è un tipo di virtualizzazione
applicata da un sistema operativo host per fornire un ambiente
di esecuzione isolato per un'applicazione.
La containerizzazione è considerata abbastanza
sicura perché impone la segmentazione e la
separazione delle risorse a livello di sistema operativo.
Ora la containerizzazione è comunemente
usata con i server Linux e alcuni esempi
di questa virtualizzazione basata
su container includono cose come Docker, Parallels Virtuozzo
e il progetto OpenVZ.
Ora, come si presenta realmente la containerizzazione?
Si tratta di un pezzo di hardware
e di un sistema operativo host, di solito Linux,
e di un gestore di container.
Qualcosa come Kubernetes, Docker o simili.
Ora questo gestore di contenitori verrà usato per creare
diversi contenitori che contengono diverse applicazioni.
In questo caso, ho tre contenitori.
Ho il primo ambiente, che si basa
sul kernel del sistema operativo host, in questo
esempio un sistema Linux.
Abbiamo quindi un contenitore che esegue Linnux
e contiene alcune applicazioni.
Ora il contenitore due può fare la stessa cosa e il
contenitore tre può fare la stessa cosa.
Poiché tutti e tre i contenitori condividono gli
stessi file del sistema operativo host.
Questo richiede molte meno risorse rispetto
alla virtualizzazione pura con macchine virtuali.
Come abbiamo detto per la virtualizzazione.
Se invece utilizzassimo singole macchine virtuali, ognuna avrebbe
bisogno della propria copia di un sistema operativo.
E potrebbe trattarsi di 8-10 gigabyte per ciascuno di essi.
Ma con i container possiamo
condividere lo stesso sistema operativo.
Quindi la containerizzazione utilizza una base di memoria molto inferiore
e richiede molta meno potenza di elaborazione.
Questo è il vero vantaggio dell'utilizzo di un container
dal punto di vista operativo.
Ora, poiché questi contenitori sono logicamente isolati.
Non possono interfacciarsi tra loro.
Se volessi far parlare due container, dovrei
collegarli attraverso una rete virtuale e fare il giusto
routing e switching per consentire
loro di parlare.
Per impostazione predefinita, non hanno modo di parlare tra di loro
e questo è un ottimo aspetto dal punto di vista della sicurezza,
perché abbiamo questa segmentazione.
Ecco il grande avvertimento quando si tratta di trattare
i contenitori.
Se un aggressore compromette il sistema operativo host,
ad esempio il sistema operativo Linux di
cui ho appena parlato, indovinate cosa succede?
Ebbene, questo attacco ha ora accesso a tutti i container
nei loro dati, perché quell'unico sistema operativo
è utilizzato da tutti i container ospitati.
Questa è una delle maggiori vulnerabilità
quando si utilizzano i container.
Posso avere un sistema di container che esegue
50 server diversi in questo momento.
Ognuno di essi esegue server e servizi
diversi utilizzando la containerizzazione.
Ma se qualcuno è in grado di accedere a quell'unico
server sotto il sistema operativo Linux, ora ha accesso
a tutti i 50 server ospitati e a tutti i loro dati.
Un altro rischio da considerare è il modo in cui i container
e le altre macchine virtuali saranno effettivamente ospitati.
Quando si inizia a fare affidamento sulla virtualizzazione e sul cloud
computing, diventa molto importante riconoscere
che i nostri dati potrebbero essere ospitati sullo stesso server fisico
dei dati di un'altra organizzazione.
Così facendo, introduciamo alcune vulnerabilità
nella sicurezza dei nostri sistemi.
In primo luogo, se il server fisico si blocca a causa di un'azione
di una delle altre organizzazioni, ciò può
influire su tutte le
organizzazioni che si trovano sullo stesso server.
Allo stesso modo, se un'organizzazione non mantiene
la sicurezza dei propri ambienti virtuali,
ospitati su quel server fisico, c'è la possibilità
che un aggressore possa utilizzarli a danno di tutte le
altre organizzazioni ospitate su quello stesso
server.
Così come ci sono preoccupazioni quando si interconnettono
le nostre reti con quelle di altri, ce ne sono anche
quando si ospitano i dati di più organizzazioni
sullo stesso server fisico.
È importante per noi configurare, gestire e verificare
correttamente l'accesso degli utenti alle macchine
virtuali ospitate su questi server.
Inoltre, vogliamo assicurarci che le nostre macchine virtuali
abbiano le patch più recenti, l'antivirus, l'animwire
e il controllo degli accessi.
Per ridurre al minimo il rischio
di sovraccarico delle risorse dei server fisici, è sempre
una buona idea impostare le macchine virtuali
con failover, ridondanza ed elasticità adeguati.
Monitorando le prestazioni della
rete e le risorse dei server fisici,
dovremmo essere in grado di bilanciare
il carico su più macchine fisiche invece
di affidarci a una sola.
Un'altra vulnerabilità che potrebbe essere
sfruttata da un aggressore è quando si utilizza
lo stesso tipo di hypervisor per tutte le macchine virtuali.
Ad esempio, se la nostra organizzazione si affida esclusivamente
all'hypervisor ESXi di VMware e viene creato un nuovo
exploit per quell'hypervisor, un aggressore potrebbe
utilizzarlo contro tutti i nostri sistemi.
Quindi, se ha successo su uno dei nostri server, è probabile
che lo proveranno sugli altri server.
E se tutti i nostri server utilizzano la stessa piattaforma,
in questo caso ESXi di VMware, questa vulnerabilità potrebbe essere
sfruttata in tutta la nostra organizzazione.
Il problema, tuttavia, è che se utilizziamo
più piattaforme hypervisor, i costi di
supporto e i requisiti di formazione
aumenteranno.
Per questo motivo, la maggior parte delle organizzazioni sceglie
di utilizzare un'unica piattaforma, ma per lo meno prende
una decisione di rischio misurata.
Per ridurre questo rischio, l'organizzazione deve utilizzare
configurazioni corrette, assicurarsi che l'hypervisor sia
sempre patchato e aggiornato e che sia accessibile
solo attraverso un'interfaccia di gestione sicura, oltre a controllare
strettamente il controllo degli accessi.
Questi sono alcuni degli aspetti da tenere in considerazione
quando si decide di virtualizzare i sistemi e migrarli
verso una soluzione on-premise o basata sul cloud.
Innanzitutto, avete intenzione di virtualizzare?
In tal caso, utilizzerete macchine virtuali tradizionali
o la containerizzazione?
Qual è il rapporto tra rischio e ricompensa?
È necessario trovare un equilibrio.
È una decisione aziendale
e anche una decisione di sicurezza informatica.
Dovrete quindi misurare questi aspetti
e decidere cosa è meglio scegliere per la vostra organizzazione
e per i suoi casi d'uso specifici.