Che cos'è la sicurezza dei container di Kubernetes?

La sicurezza dei container di Kubernetes è uno sforzo olistico, che include la sicurezza dei pod Kubernetes, delle immagini, dei runtime, degli host e dell'infrastruttura stessa.

Sicurezza dei container di Kubernetes

Kubernetes è un popolare strumento di orchestrazione di container open source che sta conquistando il mercato dei container. L'utilizzo di uno strumento di orchestrazione dei container come Kubernetes è vitale per le aziende, che non sarebbero altrimenti in grado di eseguire un'applicazione containerizzata in un ambiente di produzione. Senza di essi, tentare di distribuire e gestire manualmente i container utilizzando la riga di comando sarebbe un'impresa praticamente impossibile su larga scala.

L'automatizzazione delle attività come il deployment, il ridimensionamento e la gestione generale delle applicazioni containerizzate comporta molteplici vantaggi. È fondamentale capire che questo stesso strumento, senza l'adozione delle misure appropriate, può anche produrre falle nella sicurezza.

Kubernetes non gestisce la sicurezza

Secondo recenti report, oltre l'86% delle organizzazioni gestisce parte dei propri workload in container utilizzando Kubernetes, tuttavia, la sicurezza rimane ancora una grande preoccupazione. In questi stessi sondaggi, oltre la metà degli intervistati ha dichiarato che la propria azienda non ha previsto un investimento adeguato nella sicurezza dei container. Senza una strategia in atto, questo può rapidamente causare ritardi nell'adozione di Kubernetes o gravi incidenti di sicurezza.

Oltre alle funzionalità di base, come l'applicazione del controllo di accesso basato sui ruoli, Kubernetes non offre nulla in termini di protezione dell'applicazione o protezione dalle vulnerabilità della sicurezza. Ecco che è quindi necessario utilizzare programmi aggiuntivi o fornitori di terze parti per garantire che siano predisposti adeguati sistemi di sicurezza.

Elementi da considerare

Ecco alcuni elementi da considerare nella protezione dei container di Kubernetes: 

  • Configurazioni predefinite 
  • Runtime del container 
  • Immagini 
  • Sicurezza dell'host 
  • Comunicazioni da pod a pod

 

Configurazioni predefinite

Uno dei primi componenti da considerare quando si proteggono i container di Kubernetes sono le configurazioni predefinite. Tutte le configurazioni predefinite di Kubernetes devono essere verificate prima dell'uso per ridurre al minimo il rischio che un attacco all'interno di un pod si diffonda ad altri pod.

Sebbene Kubernetes disponga di un framework specifico per elementi come il controllo degli accessi, la maggior parte di tali funzionalità di controllo degli accessi non sono solitamente attivate per impostazione predefinita. Questi tipi di controlli potrebbero non essere configurati neppure per applicare policy di privilegio minimo, concedendo diritti di accesso completi a utenti che potrebbero non necessariamente avere bisogno di tali informazioni. Lasciare dati potenzialmente sensibili esposti in questo modo è un rischio enorme che apre la possibilità di accesso a informazioni riservate agli utenti malintenzionati.

Runtime del container

Un runtime del container è un'applicazione speciale che esegue i container. È importante capire che Kubernetes non dispone di protezioni contro un attacco al runtime né può rilevare intrusioni dopo che si sono verificate.

Se viene rilevata una violazione attiva o una nuova vulnerabilità in un container in esecuzione, è necessario eliminare l'intero container e riavviarlo con una versione non compromessa. Devono inoltre essere disponibili le informazioni per riconfigurare il componente nell'ambiente che ha risolto la causa principale del problema di sicurezza.

Immagini

Anche le immagini possono rendere i container più vulnerabili. Immagini mal configurate forniscono agli aggressori un facile punto di accesso alla rete e le immagini che contengono chiavi di autenticazione specifiche possono aiutare i criminali informatici in ulteriori attacchi.

Il rilevamento di codice dannoso che si trova all'interno dell'immagine di un container richiede la scansione delle vulnerabilità nei registri e nell'ambiente di produzione. Tale funzionalità non è presente in Kubernetes.

Sicurezza dell'host

Per scelta architetturale, Kubernetes esegue i container sui server che gli sono assegnati. Poiché lo strumento di orchestrazione non ha nulla a che fare con la sicurezza di tali server, è necessario utilizzare altri processi per monitorarli rispetto ai problemi di sicurezza.

Al fine di rilevare exploit rispetto alle risorse di sistema molte aziende si rivolgono quindi ai tradizionali strumenti di sicurezza degli host, ma qualora anche l'host dovesse risultare compromesso potrebbero verificarsi conseguenze devastanti. Per contrastare gli attacchi malevoli i sistemi host devono essere monitorati per rilevare eventuali violazioni e attività sospette.

Comunicazioni da pod a pod

Per impostazione predefinita, Kubernetes non applica policy di rete a ciascun pod, il che significa che i pod nell'ambiente Kubernetes possono comunicare tra loro. Per il corretto funzionamento è vantaggioso che i container e i pod comunichino tra loro all'interno delle distribuzioni. Questo può, tuttavia, diventare rapidamente un facile bersaglio per i criminali informatici, ai quali basta violare un solo container per poi muoversi lateralmente all'interno dell'ambiente.

L'associazione di una policy di rete a un pod limita la sua comunicazione a un insieme definito di risorse, svolgendo un ruolo simile a quello delle regole e dei controlli del firewall.

Protezione dei container di Kubernetes

Dato che Kubernetes viene utilizzato dalla maggior parte delle aziende, garantire la sicurezza dei suoi container è fondamentale per proteggere reti e applicazioni da violazioni e attacchi dannosi. Integrando con successo la sicurezza in ogni fase del ciclo di vita dei container di Kubernetes, le aziende possono essere sicure di mettere in campo le misure adeguate.