La sicurezza dei container comporta l'uso di tecniche quali la scansione delle immagini, il controllo degli accessi e la verifica della sicurezza per difendere le applicazioni containerizzate e il loro ecosistema da minacce e rischi. La containerizzazione aiuta a risolvere il problema del "funziona solo sul mio computer" e rende lo sviluppo delle applicazioni portatile. È possibile raggruppare i codici sorgente con le dipendenze e il runtime e distribuirli su qualsiasi piattaforma, on-premise o cloud. Tuttavia, la containerizzazione comporta alcune sfide, la più nota delle quali è la sicurezza.
In questo post discuteremo i problemi relativi alla sicurezza dei container e condivideremo alcuni suggerimenti per migliorare le misure di sicurezza.
Problemi comuni di sicurezza dei container
 Ecco un elenco di alcuni problemi comuni di sicurezza dei container:
#1. Vulnerabilità delle applicazioni
I container contengono applicazioni e le loro dipendenze, ma se l'applicazione presenta vulnerabilità, ciò costituisce un rischio per il container. Il rischio potrebbe essere rappresentato da librerie obsolete, codice non sicuro o software senza patch. Ad esempio, un aggressore può sfruttare una debolezza del sistema in una libreria di terze parti per eseguire codice all'interno del container e sferrare ulteriori attacchi.
#2. Immagini dei container vulnerabili
Le immagini sono gli elementi costitutivi dei container e spesso si opta per l'opzione leggera quando si sceglie un'immagine di base a causa delle risorse limitate e delle prestazioni ottimizzate. Tuttavia, non è sufficiente considerare le dimensioni, perché la scelta di immagini con vulnerabilità può compromettere il container. Pertanto, scegli sempre immagini da registri affidabili e assicurati di aggiornarle regolarmente.
#3. Configurazioni non sicure
Le configurazioni non sicure includono l'impostazione errata dei container o dell'infrastruttura sottostante, che può portare alla fuga di informazioni sensibili. Esempi di configurazioni errate includono l'applicazione delle impostazioni predefinite, l'assegnazione di privilegi di root agli utenti o il mantenimento di porte non necessarie aperte. Uno sviluppatore potrebbe configurare in modo errato un contenitore per l'esecuzione con privilegi di root, consentendo al contenitore l'accesso illimitato al sistema host. L'esposizione delle porte di debug in produzione potrebbe anche fornire a un aggressore informazioni sul flusso di processo interno dell'applicazione.
#4. Minacce alla sicurezza in fase di esecuzione
 Le minacce alla sicurezza in fase di esecuzione prendono di mira un container in funzione. In questa fase, gli aggressori potrebbero iniettare codice dannoso, eseguire un exploit di escalation dei privilegi o assumere il controllo delle risorse. Un aggressore può modificare il filesystem di un container in esecuzione per inserire il proprio codice dannoso o sostituire i file di sistema.
#5. Attacchi di fuga dal container
Un attacco di fuga dal container si verifica quando un aggressore riesce a uscire dall'ambiente del container e ad accedere all'host. Le applicazioni eseguite all'interno dei container operano nell'ambiente del sistema operativo host, quindi il kernel del sistema operativo rappresenta un rischio importante. Una volta entrati in un determinato ambiente, gli hacker possono passare dal contenitore al livello host, ottenendo il controllo su altri contenitori e, potenzialmente, sull'intero sistema.
#6. Problemi di sicurezza della rete
La sicurezza è essenziale in un ambiente containerizzato a causa dei numerosi punti di interazione tra contenitori, servizi e altre reti. Supponiamo che il traffico di rete debba essere ben suddiviso e controllato. In tal caso, gli aggressori possono sfruttare queste connessioni aperte per spostarsi da un container all'altro, amplificando i propri privilegi e rubando informazioni riservate. Una configurazione impropria delle politiche di rete potrebbe consentire al traffico non valido proveniente da uno o più container di accedere a un perimetro di sicurezza a cui non appartiene e corrompere i dati.
#7. Controllo degli accessi e autorizzazione dei container
Il controllo degli accessi e l'autorizzazione garantiscono che solo utenti specifici possano interagire con i container e le risorse correlate. Tuttavia, controlli degli accessi deboli comportano accessi non autorizzati, elevazione dei privilegi e persino lo sfruttamento totale dell'ambiente containerizzato. Ad esempio, configurazioni RBAC deboli possono consentire agli utenti di accedere a dati privilegiati o di eseguire operazioni non autorizzate che possono portare alla perdita di dati o all'interruzione del servizio.
#8. Gestione inadeguata dei segreti nei container
Una gestione inadeguata dei segreti può causare violazioni dei dati, accessi non autorizzati e compromissione dell'intero sistema. Alcuni esempi includono l'hard-coding di credenziali sensibili direttamente nelle immagini dei container o nelle variabili di ambiente, oppure la distribuzione di segreti ai container utilizzando metodi non sicuri come file di configurazione in testo semplice o reti non crittografate. Gli aggressori possono facilmente vedere questi segreti se riescono ad accedere a quell'immagine o a un ambiente di runtime.
#9. API non sicure
Le API consentono ai servizi di comunicare tra loro in ambienti containerizzati. Le API non sicure sono punti di ingresso per gli aggressori che sfruttano le vulnerabilità non corrette per raggiungere dati o sistemi sensibili. Un esempio è l'utilizzo del server API Kubernetes senza stabilire adeguati controlli di autenticazione, che può consentire a utenti non autorizzati di controllare o alterare componenti critici. Le API mal configurate o vulnerabili sono anche soggette a SQL injection o attacchi cross-site scripting.
#10. Mancanza di monitoraggio e registrazione adeguati
Non sfruttare le soluzioni di registrazione e controllo negli ambienti container limita la capacità di rilevare, indagare e rispondere ai problemi di sicurezza. Senza una registrazione adeguata, potrebbe essere difficile risalire all'origine di una vulnerabilità.
 
Guida al mercato CNAPP
La guida di mercato Gartner per le piattaforme di protezione delle applicazioni cloud-native fornisce informazioni chiave sullo stato del mercato delle CNAPP.
Leggi la guidaBest practice per la sicurezza dei container
Sebbene i container presentino alcuni rischi per la sicurezza, ecco alcuni metodi consigliati per ridurne l'impatto.
1. Sicurezza delle immagini
Le immagini con vulnerabilità minacciano l'intero container. Per questo motivo, esegui sempre solo immagini provenienti da registri ufficiali o repository privati sicuri. I registri dispongono di misure di qualità e sicurezza per garantire che le immagini utilizzate siano conformi alle misure di sicurezza. Prima di utilizzare o distribuire un'immagine container, è necessario eseguire la scansione dell'immagine del container per individuare eventuali vulnerabilità. Inoltre, utilizzate immagini di piccole dimensioni, poiché quelle di grandi dimensioni includono pacchetti aggiuntivi che potrebbero introdurre vulnerabilità di sicurezza indesiderate. Ma soprattutto, assicurarsi che le immagini siano aggiornate.
2. Proteggere il runtime del container
Un modo per proteggere il runtime del container è utilizzare il file system di sola lettura. Questo è importante perché può proteggere il container dalle modifiche apportate durante il runtime. È possibile farlo montando i volumi come di sola lettura o avviando Docker con l'opzione —read-only. Ad esempio, un container di applicazioni necessita dei permessi di scrittura sulle directory per i log e i file temporanei, ma il resto del filesystem è di sola lettura. L'abilitazione di altre funzionalità di sicurezza come SELinux e AppArmor fornisce un'ulteriore linea di difesa, imponendo agli utenti dei vincoli sull'utilizzo delle risorse di un'applicazione. Questi strumenti possono definire quali processi possono essere eseguiti all'interno di un container; in questo modo, se un container viene compromesso, il danno è contenuto.
3. Eseguire regolarmente audit di sicurezza
L'esecuzione di audit di sicurezza regolari è essenziale per mantenere una solida posizione di sicurezza. Questi audit dovrebbero coprire vari aspetti dell'ambiente container, tra cui la sicurezza delle immagini, le configurazioni di runtime, le politiche di rete e i controlli di accesso. Ad esempio, un controllo di sicurezza trimestrale potrebbe comprendere test di penetrazione delle applicazioni containerizzate, la revisione dei registri di accesso alla ricerca di attività sospette e la valutazione dell'efficacia delle misure di sicurezza attuali.
4. Implementare il principio del privilegio minimo
 Il principio del privilegio minimo è una regola fondamentale per mantenere la sicurezza dei container. Questo principio implica che dovremmo concedere ai container e agli utenti privilegi operativi minimi. Ad esempio, misure quali l'esecuzione dei container non come root e l'utilizzo di altre autorizzazioni possono ridurre notevolmente le conseguenze di una compromissione dei container. Allo stesso modo, dovremmo definire politiche di rete che consentano solo le interazioni necessarie tra i container e altri servizi.
Considerazioni legali e di conformità
Ecco le principali considerazioni legali e di conformità da tenere presenti quando si tratta della sicurezza dei container:
Privacy dei dati nei container
La sicurezza dei dati all'interno di un container è un fattore di conformità cruciale perché norme come il GDPR e l'HIPAA limitano il trattamento dei dati personali. Poiché i container sono temporanei e possono essere clonati rapidamente, complicano il modo in cui salvaguardiamo i dati nelle varie fasi della vita di un container, dall'archiviazione e trasmissione allo smaltimento. Le normative legali come il GDPR richiedono che i dati siano archiviati in determinate aree. I container in esecuzione su più cloud devono rispettare le norme sulla sovranità dei dati per impedire che le informazioni sensibili vengano trasferite oltre i confini trasversali.
Preparazione all'audit
La preparazione all'audit si ha quando un'organizzazione è in grado di dimostrare la propria competenza nel soddisfare i requisiti di audit applicabili dall'ente normativo competente. I container possono rappresentare una sfida a causa della loro flessibilità e natura temporanea, che rendono quasi impossibile tracciare gli eventi, osservare l'attività o garantire che determinati log vengano salvati.
Un ambiente container conforme deve essere dotato di un sistema di registrazione e monitoraggio efficace. Dovrebbe includere tutte le attività di sicurezza, le modifiche alla configurazione del sistema e l'accesso alle informazioni sensibili. Esistono strumenti come ELK (Elasticsearch, Logstash e Kibana) e Prometheus per garantire che i log vengano raccolti e archiviati in tutti i container creati.
"FAQs
SentinelOne, una piattaforma di protezione delle applicazioni cloud-native (CNAPP) basata sull'intelligenza artificiale che offre rilevamento e isolamento delle minacce in tempo reale nei container, scansione delle immagini, visibilità nel cluster Kubernetes e monitoraggio.
Poiché il panorama delle minacce è in continua evoluzione, gli aggressori sviluppano nuove tecniche per sfruttare le vulnerabilità dei container. È necessario concentrarsi costantemente sulla sicurezza dei container per stare al passo con queste minacce emergenti. I container presentano sfide di sicurezza uniche, come la loro natura effimera, il kernel condiviso con l'host e il potenziale di configurazione errata. Le violazioni della sicurezza negli ambienti container possono causare interruzioni del servizio, perdita di dati e danni alla reputazione. Per mitigare i problemi di sicurezza dei container è necessaria una soluzione robusta come SentinelOne.
Sì, se non sono gestiti e protetti in modo adeguato. La natura dinamica degli ambienti containerizzati può creare vulnerabilità che gli aggressori potrebbero sfruttare. Tuttavia, pratiche e strumenti di sicurezza adeguati possono mitigare i rischi.
Possono essere più sicuri dei metodi di distribuzione tradizionali se configurati e gestiti correttamente. Offrono vantaggi quali un migliore isolamento e ambienti coerenti tra sviluppo e produzione.

