Jump to section

Cos'è la sicurezza dei container?

Copia URL

Con sicurezza dei container si intende la protezione dell'integrità dei container, dalle applicazioni che contengono all'infrastruttura su cui si basano. Quella dei container deve essere una sicurezza integrata e continua. In generale, questo significa che l'azienda deve:

  • Proteggere il flusso dei container e l'applicazione
  • Proteggere l'ambiente di deployment e l'infrastruttura dei container

La sicurezza secondo l'approccio DevOps

La sicurezza delle app basate sui container è cambiata. Guarda il video per scoprire il ruolo della sicurezza nelle iniziative DevOps e scopri le soluzioni offerte da Red Hat.

 

Integrare la sicurezza nel flusso dei container

Segui questi passaggi:

Acquisizione delle immagini

I container sono costituiti da livelli di file che la community definisce immagini container. L'immagine di base è la più importante per la sicurezza, perché rappresenta il punto di partenza dalla quale vengono create le immagini derivate. La sicurezza del container inizia con l'individuazione di origini affidabili per le immagini di base. Anche se si usano immagini affidabili, l'aggiunta delle applicazioni e delle configurazioni introduce nuove variabili. Quando si introduce il contenuto esterno con il quale vengono realizzate le app, è necessario prevederne una gestione proattiva.

  • Integrare gli strumenti di sicurezza di livello enterprise e rispettare o migliorare i criteri di sicurezza esistenti

L'ampia diffusione dei container è dovuta alla facilità di compilare, raggruppare e promuovere un'applicazione o un servizio, e tutte le relative dipendenze, per l'intero ciclo di vita e su diversi ambienti e destinazioni di deployment. Rispetto alla sicurezza, tuttavia, i container presentano alcune complessità. Criteri e checklist di sicurezza statici non sono scalabili per i container dell'azienda. La catena di fornitura esige più servizi correlati ai criteri di sicurezza. I team devono compensare le esigenze di networking e governance dei container. È necessario separare strumenti e servizi di creazione e runtime.

graphical image of a container along a pipeline secured with locks

Per ottenere container affidabili e scalabili, è necessario integrare la sicurezza già nel flusso dei container e proteggere l'infrastruttura. Senti cos'hanno da dire gli esperti in merito alla protezione dello stack applicativo e del ciclo di vita dei container grazie a questa serie di webinar.

Durante l'acquisizione delle immagini container, occorre porsi le seguenti domande:

  1. Le immagini container sono firmate? Provengono da origini affidabili?
  2. I livelli relativi a runtime e sistema operativo sono aggiornati?
  3. Con quale frequenza e velocità vengono aggiornati i container?
  4. I problemi noti vengono identificati? Come vengono tracciati?

Dopo aver ottenuto le immagini, il passo successivo consiste nella gestione dell'accesso e nella promozione di tutte le immagini container usate dal team, il che significa proteggere sia le immagini scaricate che quelle realizzate. L'impiego di un registro privato consente di controllare l'accesso con assegnazioni basate su ruoli, agevolando la gestione del contenuto tramite l'associazione dei metadati al container. I metadati forniscono informazioni come l'identificazione e la registrazione di vulnerabilità note. Il registro privato consente inoltre di automatizzare e assegnare criteri per le immagini container archiviate, riducendo gli errori umani che possono introdurre vulnerabilità nel container.

Nel processo decisionale sulla gestione degli accessi occorre chiedersi quanto segue:

  1. Quali controlli degli accessi basati su ruoli è possibile usare per gestire immagini container?
  2. È possibile aggiungere tag per agevolare l'ordinamento delle immagini? È possibile applicare tag alle immagini solo per la fase di sviluppo, quindi per quella di test e infine per quella di produzione?
  3. Il registro offre metadati visibili che consentono di tenere traccia delle vulnerabilità note?
  4. È possibile usare il registro per assegnare e automatizzare i criteri (ad esempio controllando firme, scansioni di codici e così via)?

L'ultima fase del flusso è il deployment. Una volta completate, le build devono essere gestite nel rispetto degli standard di settore. In questa fase è necessario comprendere come automatizzare i criteri affinché vengano contrassegnate le build con problemi di sicurezza, soprattutto quando vengono individuate nuove vulnerabilità. Poiché applicare patch ai container non è mai una soluzione valida quanto ricrearli, l'integrazione dei test di sicurezza deve tenere conto dei criteri che generano nuove build automatiche. La prima parte di questo passaggio consiste nell'esecuzione di strumenti di analisi dei componenti in grado di registrare e contrassegnare i problemi. La seconda fase consiste nel definire gli strumenti necessari per un deployment automatico e basato su criteri.

Al momento di integrare i test di sicurezza e automatizzare il deployment, occorre porsi le domande seguenti:

  1. Come impedire alle patch di eseguire i container e utilizzare invece trigger per ricreare e sostituire i container con aggiornamenti automatizzati?

Un altro livello di sicurezza dei container è l'isolamento fornito dal sistema operativo host. È necessario un SO host che offra al container il massimo isolamento possibile. Questo rappresenta un elemento di assoluta importanza nella difesa dell'ambiente di deployment del container. Il SO host viene abilitato mediante un runtime del container, gestito idealmente tramite un sistema di orchestrazione. Per rendere resiliente la piattaforma containerizzata, lo spazio dei nomi di rete viene usato per isolare applicazioni e ambienti; lo storage viene connesso tramite montaggi protetti. Una soluzione di gestione delle API deve includere funzionalità di autenticazione e autorizzazione, integrazione LDAP, controlli dell'accesso agli endpoint e limitazione della velocità.

Per decidere come proteggere l'infrastruttura dei container, occorre tenere conto dei seguenti aspetti:

  1. Quali container devono poter accedere ad altri? In che modo vengono rilevati?
  2. Come viene effettuato il controllo degli accessi e la gestione delle risorse condivise (ad esempio rete e storage)?
  3. Come vengono gestiti gli aggiornamenti dell'host? Tutti i container devono essere aggiornati nello stesso momento?
  4. In che modo viene monitorata l'integrità del container?
  5. In che modo avviene la scalabilità automatica della capacità delle applicazioni per soddisfare la domanda?

Red Hat® OpenShift® include Red Hat Enterprise Linux®. Automatizza il ciclo di vita dell'applicazione containerizzata, integra la sicurezza nel flusso del container ed è progettato per i team DevOps. Il nostro catalogo di container permette di accedere a un gran numero di immagini container certificate, runtime di linguaggio, database e middleware, che possono essere eseguiti ovunque venga eseguito Red Hat Enterprise Linux®. Le immagini Red Hat sono sempre firmate e verificate, per confermarne origine e integrità.

Red Hat monitora le sue immagini container per individuare vulnerabilità recenti appena riscontrate (con un indice di integrità costantemente aggiornato e pubblicamente visibile), oltre a rilasciare aggiornamenti della sicurezza e container ricompilati e pubblicati nel registro pubblico. Puoi sempre dare un'occhiata al nostro rapporto annuale sui rischi per la sicurezza dei prodotti Red Hat, che descrive in dettaglio la nostra risposta alle vulnerabilità di sicurezza note che ogni anno colpiscono il software aziendale in tutto il mondo.

I partner di Red Hat che offrono soluzioni di sicurezza possono fornire integrazioni certificate per estendere e migliorare le funzionalità di protezione dei container. Red Hat OpenShift integra nella piattaforma funzioni di sicurezza che completano quelle offerte dalle soluzioni dei partner, per proteggere applicazioni e container lungo l'intero ciclo di vita DevOps.

Offre inoltre molto altro materiale utile:

  1. Orchestrazione e gestione di container web scale
  2. Console web completa con funzionalità di collaborazione multiutente
  3. Interfacce CLI e IDE
  4. Automazione di build e source to image
  5. Integrazione con CI
  6. Automazione del deployment
  7. Supporto per volumi di storage remoti
  8. Installazione e amministrazione semplificate
  9. Una vasta gamma di linguaggi di programmazione, framework e servizi supportati

Keep reading

Article

What's a Linux container?

A Linux container is a set of processes isolated from the system, running from a distinct image that provides all the files necessary to support the processes.

Article

Containers vs VMs

Linux containers and virtual machines (VMs) are packaged computing environments that combine various IT components and isolate them from the rest of the system.

Article

What is container orchestration?

Container orchestration automates the deployment, management, scaling, and networking of containers.

Scopri di più sui container

Prodotti

Una piattaforma container enterprise-ready basata su Kubernetes, che consente di automatizzare le operazioni nell'intero stack tecnologico per gestire deployment di cloud ibrido, multicloud e all'edge.

Risorse

Formazione

Corso di formazione gratuito

Running Containers with Red Hat Technical Overview

Corso di formazione gratuito

Containers, Kubernetes and Red Hat OpenShift Technical Overview

Corso di formazione gratuito

Developing Cloud-Native Applications with Microservices Architectures

Illustration - mail

Ricevi contenuti simili

Iscriviti a Red Hat Shares, la nostra newsletter gratuita.