Garantire la sicurezza dei container in ambienti Kubernetes complessi

Forse avrai notato che il team VMware Tanzu ha parlato e scritto molto di sicurezza dei container di recente, e non è un caso. Mentre l'adozione di DevOps e Kubernetes continua a crescere esponenzialmente nel settore enterprise, la protezione costante dei carichi di lavoro dei container rappresenta una delle sfide più difficili associate a tale trasformazione. Di recente abbiamo incontrato e utilizzato molto un termine che definisce un nuovo modo di concepire la sicurezza dei container per Kubernetes: DevSecOps.

In questo post approfondiremo alcune delle principali pratiche DevSecOps in grado di migliorare il livello di sicurezza e compliance dei container, anche quando il numero di container distribuiti aumenta drasticamente.

Passaggio da DevOps a DevSecOps

Il termine DevOps è stato coniato assieme all'adozione diffusa di software di gestione della configurazione, strumenti in grado di automatizzare molti dei processi coinvolti nella distribuzione di aggiornamenti per le applicazioni in una macchina virtuale (VM) o in ambienti bare-metal. L'avvento di tale automazione ha offerto nuovi, agili metodi di creazione, distribuzione e deployment di software che, a loro volta, hanno ridotto l'attrito tra sviluppatori e operatori. Poiché tutte queste applicazioni sono state compilate in-house, è stato possibile tenere traccia delle dipendenze e delle librerie del sistema operativo presenti nell'infrastruttura, anche se il monitoraggio è stato effettivamente svolto in modo molto diverso tra le organizzazioni.

Con l'avvento di Kubernetes, l'approccio DevOps è diventato più una necessità che una scelta. Dopo tutto, i container non possono essere connessi e aggiornati allo stesso modo delle applicazioni nelle macchine virtuali o nei server bare-metal. Gli aggiornamenti del codice, delle dipendenze o delle librerie del sistema operativo esistenti vengono invece integrati in una nuova immagine, che viene quindi distribuita al posto del container esistente. Poiché ogni applicazione è composta da più container che funzionano come microservizi, la manutenzione delle applicazioni tramite processi manuali diventa rapidamente impossibile.

Oggigiorno, la maggior parte dei software personalizzati destinati all'esecuzione su Kubernetes è integrata in container dagli sviluppatori che li hanno creati. Questo lavoro viene eseguito in parallelo da singoli sviluppatori e team, con tempi di release separati, utilizzando processi invisibili a chiunque ispezioni i container in un secondo momento. Tutti i software open source che i team hanno utilizzato per l'installazione in macchine virtuali e server bare-metal vengono ora utilizzati come container preconfezionati ottenuti da una miriade di repository su Internet, in genere senza alcuna informazione immediatamente disponibile sui contenuti dello stack o su come questo è stato configurato. Si tratta di una soluzione ottimale in termini di velocità e agilità, che rappresenta uno scenario ideale per gli sviluppatori che hanno bisogno di muoversi velocemente. Per i team di sicurezza, tuttavia, la presenza di migliaia di container potenzialmente vulnerabili compilati su immagini dalla provenienza ignota in ambienti di sviluppo, che talvolta si fanno strada fino agli ambienti di produzione, non è accettabile.

DevOps e DevSecOps

Anche se il termine DevSecOps può essere controverso (alcuni considerano l'aggiunta di "Sec" a DevOps non necessaria), ha contribuito a definire le trasformazioni culturali e tecnologiche che devono verificarsi nell'intero settore IT se vogliamo che eventuali violazioni della sicurezza catastrofiche si verifichino sempre più raramente.

Tra le prassi DevSecOps più importanti che è possibile adottare in un contesto Kubernetes vi è la necessità di creare policy che impongano l'esistenza dei soli software approvati nell'infrastruttura e che vengano applicate in modo automatizzato. A tal fine è necessario tenere conto in modo completo e trasparente di tutte le librerie di codici, degli elementi binari e del sistema operativo in ogni container che vengano creati o utilizzati. Ciò richiede inoltre l'implementazione di una serie di policy di configurazione applicabili a ogni immagine del sistema operativo di base sottostante a ogni container, in modo da chiarire che cosa è compliant e che cosa non lo è.

Raggiungere questo livello di trasparenza può essere un'impresa monumentale, che richiede team dedicati di sviluppatori e operatori di applicazioni esperti nel complesso mondo del packaging delle applicazioni. Per molti team, l'idea di poter raggiungere questo traguardo appare come una mera illusione, non sapendo neanche da dove iniziare. Tuttavia c'è speranza, in quanto la community e i vendor di Kubernetes come noi stanno progressivamente inglobando l'approccio DevSecOps nel fabric delle piattaforme, dei prodotti e dei servizi creati.

Integrazione della sicurezza in DevOps

La risoluzione delle sfide di sicurezza e compliance correlate all'adozione di Kubernetes è in genere possibile in uno dei due modi seguenti: configurando un team dedicato che si occupi esclusivamente di creare pacchetti di immagini gold del sistema operativo e applicazioni open source, oppure chiedendo a sviluppatori e operatori di occuparsi autonomamente delle immagini contenute nei propri container. Tuttavia, poiché nella pratica questo lavoro risulta difficile, noioso e dispendioso in termini di tempo e denaro, i team possono essere tentati di eludere completamente la sicurezza.

Ciò che serve è un approccio completamente nuovo alla creazione di container di applicazioni personalizzati e all'uso di software open source preconfezionati. Questo è proprio ciò che offre VMware Tanzu Advanced, già pronto all'uso.

In che modo Tanzu Advanced ingloba la sicurezza dei container in DevOps

Tanzu Advanced offre due funzionalità che rendono possibile implementare con successo l'approccio DevSecOps fin dal primo giorno. La prima è un sistema di creazione di container automatizzato, mentre la seconda è un catalogo dei container open source e dei grafici Helm più comunemente utilizzati.

Sistema di creazione dei container automatizzato

Il sistema di creazione dei container automatizzato crea container a partire dal codice sorgente su immagini del sistema operativo di base pre-approvate, masterizzando per impostazione predefinita un manifesto dettagliato del contenuto di ciascun container. Il sistema di creazione è quindi in grado di ricreare e inviare automaticamente nuove immagini ogni volta che il codice dell'applicazione, le dipendenze o le librerie del sistema operativo vengono aggiornati.

Questa funzione viene gestita a livello centrale, senza che sia necessario alcun intervento da parte dei singoli sviluppatori; i team operativi o di sicurezza possono applicare patch a librerie o dipendenze vulnerabili in ogni container, indipendentemente dal codice o dagli elementi binari delle applicazioni. Per qualsiasi applicazione creata utilizzando il sistema di creazione dei container automatizzato di Tanzu Advanced Edition, la combinazione di aggiornamenti gestiti a livello centrale dei contenitori vulnerabili o non aggiornati con informazioni accurate sui contenuti di ogni singolo container consente di automatizzare il processo di compliance della sicurezza.

Un flusso continuo di aggiornamenti delle immagini per ogni container

Componenti principali delle applicazioni open source

La seconda funzionalità, un catalogo dei container open source e dei grafici Helm più comunemente utilizzati, è disponibile anche in un'immagine pre-approvata del sistema operativo di base. Questa libreria di componenti principali delle applicazioni open source è aggiornata con una pipeline leader del settore. L'intero catalogo viene ricompilato quotidianamente con la più recente immagine di base del sistema operativo e ogni volta che un aggiornamento di singole app o patch per vulnerabilità diventa disponibile. In modo molto simile al servizio di compilazione automatizzata per i container di app personalizzati, ogni container incluso nel catalogo è accompagnato da una documentazione completa e verificabile di tutti i contenuti accessibili tramite CLI oppure offline, tramite un registro OCI. Per aggiungere un ulteriore livello di sicurezza, i container vengono anche testati e analizzati per individuare eventuali vulnerabilità prima dell'invio degli aggiornamenti al repository. Questa combinazione di aggiornamenti rapidi e informazioni accurate sui contenuti di ciascun container consente un'automazione completa della compliance di sicurezza per qualsiasi applicazione proveniente dal catalogo container.

Un accounting completo dei contenuti di ogni container consente l'automazione della sicurezza

Assieme, il sistema di compilazione automatizzato e il catalogo dei container offrono risultati pari o superiori a quelli che i team otterrebbero gestendo le immagini personalmente, rimuovendo però i costi e il potenziale errore umano che questo comporterebbe. Al contrario, gli sviluppatori sono liberi di concentrarsi sul proprio codice e di servirsi facilmente di componenti di base open source già pre- approvati per l'uso in produzione. I Team delle operation sono in grado di configurare una pipeline di distribuzione continua che trasmette un flusso costante di aggiornamenti delle immagini agli ambienti di produzione. Inoltre, l'automazione continua della compliance consente di utilizzare automaticamente le informazioni relative al contenuto di ogni container, permettendo ai team di sicurezza di implementare barriere di sicurezza invisibili. Per adottare pienamente DevSecOps tutti si muovono al proprio ritmo, senza compromettere l'agilità o la sicurezza.

Scopri DevSecOps con Tanzu Advanced

Il sistema di creazione di container e il catalogo delle app descritti in questo post sono solo due dei tanti modi in cui Tanzu Advanced permette di fare un enorme passo avanti nella sicurezza DevOps. Per ulteriori informazioni sulla vision del team VMware Tanzu per DevSecOps e su una supply chain di software sicura, consulta queste altre risorse utili:

Come sempre, saremo lieti di ricevere ogni tuo commento o suggerimento. Contatta il tuo rappresentante VMware per ulteriori risorse e informazioni aggiuntive o mettiti in contatto con noi utilizzando i canali Twitter o Facebook.

Previous
Seguridad de contenedores en entornos de Kubernetes complejos
Seguridad de contenedores en entornos de Kubernetes complejos

Next
Garantir la sécurité des conteneurs dans les environnements Kubernetes complexes
Garantir la sécurité des conteneurs dans les environnements Kubernetes complexes