Che cos'è la sicurezza dei container?

Per sicurezza dei container si intende il processo di implementazione degli strumenti e delle policy di sicurezza per accertarsi che tutto ciò che si trova nei container funzioni come previsto, comprese protezione dell'infrastruttura, catena di distribuzione software e tutto il resto.

Sicurezza dei container

Il processo di protezione dei container è continuo. Deve essere integrato nel processo di sviluppo, automatizzato per eliminare il numero di punti di contatto manuali ed esteso alla manutenzione e al funzionamento dell'infrastruttura sottostante. Ciò comporta la protezione della pipeline di compilazione, delle immagini dei container e dei layer host, piattaforma e applicazione. L'implementazione della sicurezza dell'ambito del ciclo di vita di delivery continua significa che la tua azienda deve alleviare il rischio e ridurre le vulnerabilità su una superficie esposta agli attacchi sempre maggiore.

Per la protezione dei container, le questioni principali sono:

  • La sicurezza dell'host dei container
  • Il traffico di rete dei container
  • La sicurezza della tua applicazione all'interno del container
  • Comportamenti dannosi all'interno dell'applicazione
  • Proteggere il tuo stack di gestione container
  • I fondamenti della tua applicazione
  • L'integrità della pipeline di compilazione

 

L'obiettivo della cybersecurity è garantire che qualunque cosa tu crei funzioni come previsto e solo come previsto.

Impara i nomi di alcuni prodotti che le aziende utilizzano per le esigenze legate ai container: Docker®, Kubernetes®, Amazon Web Services™ (AWS) e Microsoft®.

Protezione di Docker

Prima di procedere alla protezione dei container, devi conoscere gli elementi principali di questo ambiente. Docker, società leader nel settore, offre una piattaforma di container per creare, gestire e proteggere le applicazioni. Docker consente ai clienti di distribuire ovunque dalle applicazioni tradizionali ai più recenti microservizi, Come per ogni altra piattaforma di container, occorre accertarsi di disporre di una protezione adeguata. Ulteriori informazioni sulla sicurezza dei container Docker.

Protezione di Kubernetes

Kubernetes è il prossimo grande nome da imparare. Kubernetes offre una piattaforma portabile, estensibile e open source per la gestione dei workload e dei servizi sotto forma di container. Anche se Kubernetes offre funzionalità di sicurezza, è necessaria una soluzione di sicurezza dedicata che garantisca la protezione, poiché si è riscontrato un aumento degli attacchi sui cluster di Kubernetes. Ulteriori informazioni sulla protezione di Kubernetes.

Amazon Web Services e sicurezza dei container

Quindi abbiamo Amazon Web Services (AWS). AWS comprende la necessità di utilizzo dei container per permettere agli sviluppatori di realizzare applicazioni in modo più veloce e coerente. Ecco perché offre Amazon Elastic Container Service (Amazon ECS), un servizio di orchestrazione di container scalabile e ad alte prestazioni che supporta i container Docker. Elimina la dipendenza dalla gestione delle proprie macchine virtuali e dell'ambiente di esecuzione dei container e permette di eseguire e scalare le applicazioni containerizzate AWS con facilità. Tuttavia, come nel caso degli altri attori principali sopra citati, è opportuno garantire la sicurezza per sfruttare a pieno i vantaggi di questo servizio. Ulteriori informazioni sulla sicurezza dei container di AWS.

Protezione di Microsoft Azure Container Instances

Ultimo, ma non meno importante, abbiamo Microsoft® Azure™ Container Instances (ACI). Questa soluzione consente agli sviluppatori di distribuire i container nel cloud pubblico di Microsoft® Azure™ senza necessità di eseguire o gestire un'infrastruttura sottostante. È possibile semplicemente attivare un nuovo container utilizzando il portale Microsoft® Azure™, dove Microsoft provvede automaticamente a reperire e a scalare le risorse di calcolo sottostanti. Azure Container Instances consente di avere grande velocità e agilità, ma deve essere protetto adeguatamente per ricavarne appieno tutti i benefici. 

Ora che conosci i protagonisti principali, vediamo come proteggerli o esploriamo i link precedenti per le specifiche di protezione di ciascuna soluzione. Ulteriori informazioni sulla Protezione di Microsoft Azure Container Instances.

Protezione dell'host

La protezione dell'host comincia dalla selezione del suo sistema operativo. Laddove possibile, occorre utilizzare un sistema operativo distribuito ottimizzato per l'esecuzione dei container. Se si utilizzano distribuzioni Linux® predefinite o Microsoft® Windows®, è opportuno accertarsi di disattivare o eliminare i servizi superflui e rinforzare il sistema operativo in generale. Quindi, aggiungere un layer di strumenti di sicurezza e di monitoraggio per garantire che l'host funzioni come previsto. Strumenti quali il controllo delle applicazioni o un sistema di riconoscimento delle intrusioni ( (IPS) sono molto utili in questa situazione.

Quando il container viene eseguito per la produzione, dovrà interagire con altri container e risorse. Il traffico interno deve essere monitorato e protetto, garantendo che tutto il traffico di rete proveniente dai container attraversi un IPS. Ciò comporta un cambiamento nel modo di implementare un controllo di sicurezza. Invece di implementare un piccolo numero di motori IPS tradizionali molto grandi sul perimetro, occorre implementare un IPS su ogni host, consentendo il monitoraggio efficace di tutto il traffico, senza impatti significativi sulle prestazioni.

Protezione dell'applicazione nel container

Quando il container viene eseguito in produzione, elabora costantemente dati per la tua applicazione, generando file log, eseguendo il caching dei file, ecc. I controlli di sicurezza possono aiutare a garantire che si tratti di attività normali e non dannose. I controlli anti-malware in tempo reale eseguiti sul contenuto del container sono cruciali per il successo.

Anche un IPS ha la sua importanza in questo contesto, in uno schema di utilizzo chiamato patching virtuale. Se una vulnerabilità viene esposta da remoto, il motore IPS può rilevare eventuali tentativi di exploit e rilasciare pacchetti per proteggere l'applicazione. Ciò consente di guadagnare il tempo necessario per affrontare la causa principale nella versione successiva del container, invece che procedere a una correzione di emergenza.

Monitorare le tue applicazioni

Per l'implementazione della tua applicazione in un container, può essere utile un controllo di sicurezza di auto-protezione delle applicazioni runtime (RASP). Questi controlli di sicurezza vengono eseguiti all'interno della tua applicazione e spesso intercettano o agganciano le chiamate fondamentali nel tuo codice. Oltre a funzionalità di sicurezza come monitoraggio Structured Query Language (SQL), controllo e correzione delle dipendenze, verifica URL e altri controllo, RASP può inoltre risolvere una delle maggiori sfide nella sicurezza: l'identificazione della causa principale.

Essendo posizionati all'interno del codice applicazione, questi controlli di sicurezza possono aiutare a risalire da un problema di sicurezza alla riga di codice che l'ha creato. Un tale livello di consapevolezza è difficile da eguagliare e rappresenta un incremento enorme nello stato di sicurezza.

Proteggere il tuo stack di gestione dei container

Dal punto di vista della sicurezza, lo stack di gestione che aiuta a coordinare i container viene spesso trascurato. Qualunque azienda che prenda sul serio l'implementazione dei container avrà inevitabilmente a che fare con due elementi critici dell'infrastruttura che aiutano a gestire il processo: un registro container per la privacy come Amazon ECS e Kubernetes (che aiuta a orchestrare l'implementazione dei container).

La combinazione di un registro dei container e di Kubernetes consente di applicare automaticamente una serie di norme di qualità e sicurezza per i container prima e durante la ridistribuzione dell'ambiente.

I registri semplificano la condivisione dei container e aiutano i team a basarsi sul lavoro reciproco. Tuttavia, per accertarti che ciascun container risponda ai tuoi requisiti base di sviluppo e sicurezza, occorre uno scanner automatizzato. La scansione di ciascun container per eventuali vulnerabilità note, malware ed eventuali segreti scoperti prima che vengano messi a disposizione nel registro aiuta a ridurre i problemi a valle.

Inoltre, è opportuno accertarsi che il registro sia ben protetto. Deve essere eseguito su un sistema rinforzato o un servizio cloud molto rinomato. Anche in uno scenario di servizio, occorre comprendere il modello di responsabilità condivisa e implementare un forte approccio basato sui ruoli per l'accesso al registro.

Dal lato dell'orchestrazione, una volta che Kubernetes viene eseguito e distribuito nell'ambiente, offre un numero notevole di vantaggi che garantisce che il team tragga il massimo vantaggio dalla distribuzione. Kubernetes offre inoltre la capacità di implementare numerosi controlli operativi e di sicurezza, come Pod (risorse a livello di cluster) e policy di sicurezza della rete, consentendoti di applicare varie opzioni per rispondere alla tua tolleranza al rischio.

Costruire l'applicazione su fondamenta salde: scansione dei container

Occorre implementare un flusso di lavoro di scansione delle immagini dei container per accertarsi che i container utilizzati come elementi di base siano affidabili e protetti dalle minacce comuni. Questa categoria di strumenti scansiona il contenuto di un container alla ricerca dei problemi prima che esso venga utilizzato come componente della tua applicazione Esegue inoltre un set finale di controlli prima che un container venga distribuito in produzione.

Se correttamente implementata, la scansione diventa una parte naturale del processo di codifica. Si tratta di un processo automatizzato che può identificare velocemente e facilmente eventuali errori commessi durante lo sviluppo della tua applicazione e dei suoi container. 

Assicurare l'integrità della pipeline di compilazione

Gli hacker hanno iniziato a spostare i loro attacchi verso fasi più precoci della pipeline di integrazione continua/delivery continua (CI/CD). Se un hacker riesce a compromettere il tuo server di compilazione, il deposito codici o le workstation degli sviluppatori, può risiedere notevolmente più a lungo nel tuo ambiente. Ti serve un forte set di controlli di sicurezza costantemente aggiornati.

È necessario implementare una forte strategia di controllo degli accessi lungo l'intera pipeline, che parte dal repository del codice e dalla strategia di branching e si estende fino al repository dei container. È necessario accertarsi di implementare il principio del privilegio minimo (concedere solo l'accesso strettamente necessario per eseguire le operazioni richieste) e verificare regolarmente l'accesso.

Unire le cose

La protezione dei tuoi container richiede un approccio completo alla sicurezza. È necessario assicurarsi di soddisfare le esigenze di tutti i team all'interno dell'azienda. È necessario assicurarsi che l'approccio possa essere automatizzato per adattarsi ai processi DevOps e che sia possibile rispettare le scadenze e consegnare rapidamente le applicazioni proteggendo ogni gruppo. Non è più possibile escludere il tema della sicurezza o portarlo in evidenza all'ultimo momento, con richieste di modifica al flusso di lavoro. La creazione di controlli di sicurezza e processi automatizzati affidabili fin dall'inizio risponde alle esigenze di sicurezza e rende più semplice colmare le lacune tra i team. 

Argomenti sicurezza dei container