#1 Leader globale nella resilienza dei dati
Linee guida di Veeam per i clienti interessati dall'aggiornamento dei contenuti di CrowdStrike

Che cos'è la sicurezza dei contenitori?

La sicurezza dei contenitori si riferisce al set di strumenti e processi di sicurezza usati per proteggere i carichi di lavoro dei contenitori. Ciò include la protezione delle immagini utilizzate nei contenitori, dei contenitori stessi e delle piattaforme di orchestrazione dei contenitori come Kubernetes, AWS ECS e Red Hat OpenShift Container Platform. Sebbene i contenitori incorporino determinate caratteristiche protettive, rimangono vulnerabili agli attacchi. Altri aspetti della sicurezza dei contenitori da considerare sono la costruzione di contenitori sicuri e la creazione di un ambiente di runtime protetto. Oltre a proteggere attivamente i contenitori, è importante adottare solidi processi di backup e ripristino per Kubernetes e altri servizi di contenitori.

Contenitori

Un contenitore è un'unità software standard che impacchetta il codice e tutte le sue dipendenze, in modo che l'applicazione venga eseguita in modo rapido e affidabile da un ambiente informatico all'altro. I contenitori condividono il kernel del sistema operativo della macchina e pertanto non richiedono un sistema operativo per applicazione, aumentando l'efficienza del server e riducendo i costi di server e licenze. Gli sviluppatori sfruttano questa capacità per eseguire microservizi e altre applicazioni all'interno di un contenitore virtuale, isolato da altre applicazioni su un server o computer. A differenza delle macchine virtuali (VM), i contenitori sono portatili e possono essere eseguiti in qualsiasi ambiente che disponga di un servizio daemon che supporti tale tipo di contenitori. Sebbene il Docker rappresenti la tecnologia di contenitore più diffusa, ne esistono numerosi altri tipi, tra cui l'originale contenitore Linux LXC.

Piattaforme di orchestrazione

Sebbene i contenitori possano essere eseguiti in modo indipendente, è più comune usare piattaforme software specifiche per gestire e configurare i contenitori, soprattutto se si lavora con più contenitori. Esempi comuni di queste piattaforme includono Kubernetes, AWS Elastic Container Service e Docker Swarm.

Perché la sicurezza dei contenitori è importante?

Sebbene i contenitori isolino le applicazioni e incorporino un certo grado di sicurezza, sono comunque vulnerabili agli attacchi alla sicurezza informatica. I punti di ingresso includono immagini compromesse, un controllo degli accessi debole e uno scarso isolamento tra contenitori e software host. Un altro modo comune per gli hacker di accedere ai contenitori è attraverso immagini corrotte di terze parti utilizzate come elementi costitutivi dei contenitori. L'immagine di un contenitore è un file eseguibile statico che contiene le librerie, gli strumenti e il software necessari per creare un contenitore ed è spesso composta da più livelli in cima a un'immagine di base. Un'immagine violata utilizzata in più contenitori potrebbe causare gravi danni.

Un altro fattore riguarda la posizione e il modo in cui il contenitore memorizza i dati. Inizialmente, i contenitori erano stateless, venivano eseguiti senza memorizzare dati di stato e non lasciavano traccia quando venivano chiusi. Il sistema operativo host memorizzava i dati persistenti. Tuttavia, poiché gli sviluppatori utilizzano i contenitori per compartimentare le applicazioni legacy e altre applicazioni non scritte per la containerizzazione, è necessario memorizzare i dati di stato (statefulness). Sebbene Docker, Kubernetes e altre aziende forniscano modi per gestire i contenitori stateful, è fondamentale fornire modi per ripristinare i container stateful dopo un guasto del sistema utilizzando backup continui.

Componenti per la sicurezza dei contenitori

La sicurezza dei contenitori può essere suddivisa in diversi componenti, tra cui lo sviluppo, l'ambiente di compilazione, l'ambiente di runtime e l'orchestrazione.

Sviluppo di contenitori

È necessario prestare molta attenzione a verificare che il software e le immagini utilizzati nello sviluppo dei contenitori siano ben scritti e non contengano vulnerabilità, difetti di configurazione o malware. I registri delle immagini devono essere protetti e contenere solo immagini attendibili. È necessario utilizzare sempre strumenti di scansione dei contenitori per verificare la presenza di vulnerabilità ed evitare di memorizzare immagini obsolete o non aggiornate.

Ambiente di compilazione del contenitore

L'ambiente di compilazione deve essere totalmente sicuro. Gli sviluppatori devono utilizzare strumenti automatizzati per verificare i componenti utilizzati e preferibilmente adottare pipeline CI/CD automatizzate che riducano al minimo il rischio e aumentino la visibilità.

Ambiente di runtime

L'ambiente di runtime deve essere adeguatamente protetto con rigorosi protocolli di controllo degli accessi. L'utilizzo di criteri di sicurezza automatizzati per verificare la presenza di violazioni e vulnerabilità può contribuire a ridurre al minimo i rischi per la sicurezza. I contenitori stessi devono essere eseguiti con il numero minimo di autorizzazioni richieste, riducendo la possibilità per un utente malintenzionato di sfruttare un contenitore con privilegi elevati per ottenere il controllo dell'host.

Orchestrazione e infrastruttura

L'orchestrazione di contenitore su larga scala utilizzando piattaforme come Kubernetes è impegnativa. È fondamentale assicurarsi che il sistema operativo host sia sicuro e seguire sempre le best practice utilizzando gli strumenti forniti dalla piattaforma di orchestrazione. Analogamente, assicurati che il server e l'infrastruttura di rete siano sicuri.

Vantaggi della sicurezza dei contenitori

I vantaggi di una buona sicurezza dei contenitori si estendono a tutti gli aspetti dello sviluppo e dell'implementazione dei contenitori. Un'efficace sicurezza dei contenitori riduce i rischi riducendo al minimo le superfici di attacco. Migliora la trasparenza, aumenta l'integrità della pipeline e migliora la sicurezza e l'amministrazione del sistema.

Riduce la superficie di attacco

Buone politiche di sicurezza dei contenitori riducono la superficie di attacco. Questi criteri limitano i potenziali punti di accesso mantenendo le interfacce semplici e ridotte. Le politiche di minimo privilegio che limitano l'accesso riducono il potenziale di violazione della sicurezza e dotano ogni contenitore del proprio confine di sicurezza univoco.

Migliora la trasparenza

La relativa semplicità dei contenitori consente agli utenti di analizzare e controllare il contenuto dei contenitori, soprattutto rispetto alle macchine virtuali. La scansione delle immagini e l'uso di immagini attendibili aiutano a garantire che le immagini siano pulite.

Costruisce l'integrità della pipeline

Solidi controlli della pipeline CI/CD impediscono agli hacker di accedere a registri, workstation e server di compilazione. Questi dovrebbero essere supportati da audit regolari e da una scansione automatizzata delle vulnerabilità. Gli amministratori devono limitare l'accesso a ciò che è sufficiente per consentire agli utenti di completare le proprie attività.

Migliora la sicurezza generale

L'enfasi sulla protezione dei contenitori e della loro infrastruttura di supporto funge da catalizzatore per i miglioramenti complessivi della sicurezza IT. Gli esempi includono strumenti di rilevamento delle vulnerabilità e di runtime configurati in modo specifico per i contenitori. Tutto ciò, insieme al software standard di rilevamento delle intrusioni e ad altri strumenti, porta a un miglioramento complessivo della sicurezza.

Semplifica l'amministrazione

Una sicurezza efficace dei contenitori significa che è più facile gestire i contenitori. Gli sviluppatori hanno meno preoccupazioni quando adattano le applicazioni containerizzate. Un altro vantaggio di una buona sicurezza dei contenitori è la riduzione del tempo e degli sforzi necessari per gestire gli ambienti containerizzati.

Come mettere in sicurezza un contenitore

La protezione dei contenitori è un processo a più fasi che comprende la protezione dell'immagine del contenitore, dell'ambiente di rete e della pipeline di compilazione. Altri aspetti da considerare sono la protezione dei database basati sul cloud e l'adozione di strategie di backup dei contenitori.

Verificare le immagini del contenitore

Selezionare con cura le immagini dei contenitori, in particolare le immagini di base, da fonti e registri affidabili. Assicurarsi di poter accedere al codice sorgente del componente. Anche in questo caso, è meglio testare accuratamente queste immagini per trovare vulnerabilità. Lo stesso concetto vale per l'aggiunta di applicazioni o la modifica delle configurazioni.

Proteggi l'infrastruttura host del contenitore

È necessario utilizzare sempre un sistema operativo host per contenitore che offra un elevato grado di isolamento del contenitore. Esaminare le configurazioni predefinite per eliminare i punti di attacco, ad esempio l'attivazione delle funzionalità di controllo degli accessi di Kubernetes. Utilizzare strumenti di monitoraggio della sicurezza di terze parti per monitorare l'ambiente host.

Proteggi l'ambiente di rete del contenitore

Utilizza i filtri Web e i sistemi di prevenzione delle intrusioni per identificare e bloccare gli attacchi dannosi e i contenuti da Internet. Apri solo le porte richieste dall'applicazione e utilizza il protocollo Transport Layer Security (TLS) per crittografare i dati. Monitorare internamente il traffico di rete tra i contenitori per rilevare attività insolite che potrebbero indicare che un utente malintenzionato ha ottenuto un punto d'appoggio. Consenti la connettività tra i contenitori solo quando è assolutamente necessario.

Blocco dello stack di gestione

Controlla attentamente le autorizzazioni sulla piattaforma di host del contenitore. Attiva le funzionalità della piattaforma che migliorano la sicurezza della rete, ad esempio la limitazione del traffico tra i pod Kubernetes. Utilizza un registro separato e protetto per migliorare la sicurezza del registro e proteggerlo dagli attacchi.

Automatizzazione e protezione della implementazione della pipeline CI/CD

Proteggi il server di compilazione, le workstation e il repository di codice per impedire ai malintenzionati di farsi strada all'interno della pipeline di implementazione. Utilizzare i criteri di controllo degli accessi con privilegi minimi e controllarli regolarmente. Automatizza l'implementazione della pipeline e utilizza la scansione delle vulnerabilità per segnalare i problemi di sicurezza.

Adotta robuste strategie di backup dei contenitori

Esegui il backup continuo dei contenitori e dei dati e verifica regolarmente la tua capacità di ripristinare i carichi di lavoro. Tieni presente che pochissimi contenitori sono veramente stateless, quindi assicurati che i criteri di backup includano i backup dei contenitori e dei componenti del database. Chiarisci chi è responsabile delle strategie di backup dei contenitori.

Best practice per la sicurezza dei contenitori

L'enorme crescita dell'adozione dei contenitori, in particolare nel cloud, comporta un aumento significativo del rischio di sicurezza informatica. Per ridurre al minimo questo rischio, è essenziale implementare le best practice per la sicurezza dei contenitori, tra cui:

  • Usa immagini attendibili. Esegui la scansione di tutte le immagini per verificare la presenza di vulnerabilità; procurati le immagini solo da fonti attendibili e controllane sempre la provenienza.
  • Utilizzare contenitori sottili e di breve durata. Migliora la sicurezza dei contenitori riducendo al minimo il numero di file, limitandone la durata a un periodo il più breve possibile e sostituendoli regolarmente.
  • Crea un ambiente di runtime sicuro. Mantieni un ambiente sicuro eseguendo i contenitori su una piattaforma sicura, attivando le funzionalità e i protocolli di sicurezza della piattaforma e gestendo un registro sicuro.
  • Adotta un robusto controllo degli accessi. Limita l'accesso dei contenitori alle risorse informatiche a ciò che è necessario, sfrutta un controllo dell'accesso degli utenti basato sui ruoli e limita l'accesso degli amministratori alla sola creazione dell'infrastruttura.
  • Non mischiare le applicazioni dei contenitori. Mantieni le applicazioni d'importanza critica separate dagli host dei contenitori e raggruppa i contenitori in base alla loro funzione e al loro scopo su host separati per ridurre al minimo i danni collaterali in caso di violazione della sicurezza.
  • Adotta un approccio di monitoraggio continuo. Utilizza applicazioni di monitoraggio continuo, come il controllo della protezione automatica delle applicazioni in runtime (RASP) e gli strumenti di runtime e vulnerabilità dei contenitori.

Come iniziare con Veeam

La rapida crescita delle applicazioni containerizzate aumenta notevolmente le potenziali vulnerabilità da attacco informatico. Tieni presente che i contenitori rappresentano un importante cambiamento infrastrutturale e che le soluzioni di sicurezza convenzionali potrebbero non fornire una protezione adeguata. Pertanto, è fondamentale investire in soluzioni di sicurezza e best practice volte a migliorare la sicurezza dei contenitori. Inoltre, è consigliabile utilizzare sempre un software di backup specifico per l'infrastruttura contenitore. Veeam offre diverse piattaforme di gestione dei dati appositamente progettate e facili da utilizzare, che includono funzionalità quali:

  • Funzioni flessibili di backup e ripristino
  • Capacità di disaster recovery
  • Facile scalabilità
  • Funzionalità cloud e on-premise

Includono Veeam Kasten for Kubernetes, una soluzione nativa di Kubernetes per il backup, il disaster recovery e l'abilitazione della mobilità delle applicazioni tra diversi cluster, infrastrutture e distribuzioni Kubernetes.

Iniziamo

5 motivi

Visualizza una demo

Scopri come ottenere la resilienza dei dati contro qualsiasi minaccia con Veeam

5 motivi

Contattaci

Fatti aiutare a selezionare la soluzione giusta per la tua organizzazione

5 motivi

Forum R&S Veeam

Ottieni aiuto per i prodotti e il software Veeam