La sicurezza dei container si avvale di tutta una serie di strumenti che dà speranze a chi si occupa di servizi mesh. Questo anche perché lo stack di rete dei microservizi sta diffondendosi tra gli sviluppatori di app native nel cloud.
La diffusione della containerizzazione, dovuta alla facilità di compilare, creare pacchetti e promuovere un’applicazione o servizio e tutte le relative dipendenze ha un suo punto critico: la complessità di risolvere la sicurezza, conciliando esigenze di networking e gestione dei container. Il problema è che le applicazioni moderne in realtà sono scomposte in una sottorete di microservizi, ognuno dei quali svolge una specifica funzione. Questo obbliga a scomporre la sicurezza su ogni deriva dello sviluppo. Dal momento che applicare patch ai container non è mai una soluzione valida quanto ricrearli ex novo, la sicurezza dei container va rivista alla luce dei servizi mesh.
Che cos’è una mesh di servizi
I servizi mesh consentono alle app, siano esse mobili, web, desktop o IoT, di collegarsi al vasto insieme di servizi di back-end per creare quella che l’utente percepisce nel suo insieme come “l’applicazione”. L’architettura incapsula servizi ed espone Api a vari livelli. Più in dettaglio, una mesh di servizi permette di controllare come avviene la condivisione dei dati tra le diverse parti di un’applicazione. In quanto livello infrastrutturale integrato direttamente nell’app, è possibile accedere a una documentazione dettagliata relativa all’interazione tra le varie componenti. Questo consente di ottimizzare lo sviluppo, favorendo la comunicazione tra gli sviluppatori e i loro contributi applicativi, evitando i tempi di inattività dovuti al potenziamento progressivo del software.
Servizi mesh come, ad esempio, Linkerd o Istio, offrono funzionalità di gestione e di monitoraggio della sicurezza granulari, ma solo per le aree dell’infrastruttura in cui vengono distribuiti i proxy associati ai container di questo tipo di servizi.
In una mesh di servizi, infatti le richieste sono indirizzate tra i diversi microservizi attraverso proxy presenti nel livello dell’infrastruttura. Ogni singolo proxy, chiamato anche sidecar, affianca ogni servizio, anziché agire dall’interno. Disaccoppiati da ogni servizio, questi proxy nel loro insieme formano una rete di mesh. In sintesi, quando si va ad aggiungere a una app un nuovo servizio (o una nuova istanza di un servizio esistente eseguita in un container), grazie ai servizi mesh, la raccolta dati relativi ai tempi di funzionamento può essere applicata alle regole di comunicazione tra i servizi, consentendo di migliorare sia l’efficienza che l’affidabilità delle richieste di servizio, potenziando così anche la sicurezza dei container.
Sicurezza dei container: strumenti e funzionalità
La sicurezza dei container a un livello più spinto, invece, è un argomento ancora più delicato. Come ribadiscono gli esperti, utilizzare strumenti di sicurezza dei container e soluzioni di gestione della sicurezza per le reti mesh offre una visione più completa di questi ambienti all’interno e all’esterno di una rete di servizi, consentendo al contempo di presidiare meglio la governance.
Esistono strumenti realizzati da terze parti che possono fornire quella copertura che non viene data dai servizi mesh. I servizi mesh di Istio, ad esempio, si concentrano principalmente sul monitoraggio della sicurezza delle applicazioni di livello 7, mentre gli strumenti di sicurezza dei container possono offrire un monitoraggio approfondito di livello 2 e 3.
Strumenti di terze parti, come NeuVector, Twistlock e Aqua Security, offrono una visione completa dell’ambiente che è facile da configurare, al contrario dei criteri di rete di Kubernetes, che richiedono ancora l’interfaccia della riga di comando e un’esperienza JSON (un tipo di formato basato su JavaScript molto utilizzato per lo scambio dati in applicazioni client server come API o Mashup). Gli esperti consigliano di scegliere dopo una valutazione oculata di quelli che possono essere gli strumenti più convenienti.