Che cos'è la sicurezza dei container?

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

Per sicurezza dei container si intende il processo di implementazione di strumenti e policy di sicurezza che garantiscono che tutto ciò che si trova nei container funzioni come previsto e solo come previsto. Ciò comprende la protezione dell'infrastruttura, la catena di distribuzione software, il runtime e tutto il resto.

Tenendo questo a mente, 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 alcuni nomi che le aziende utilizzano per le esigenze dei 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 tali container. Docker, società leader nel settore, offre una piattaforma di container per creare, gestire e proteggere le applicazioni. Dalle applicazioni tradizionali ai più recenti microservizi, Docker consente ai clienti un'implementazione generalizzata. Come per ogni altra piattaforma di container, occorre accertarsi di disporre di una protezione adeguata. Scopri di più sulla sicurezza dei container di Docker.

Protezione di Kubernetes

Kubernetes è il prossimo grande nome da imparare. Kubernetes offre una piattaforma portable, estensibile e open source per la gestione dei carichi di lavoro e dei servizi nei container. Mentre Kubernetes offre funzionalità di sicurezza, occorre una soluzione di sicurezza dedicata che ti mantenga protetto, poiché si è riscontrato un aumento degli attacchi sui cluster di Kubernetes. Scopri di più sulla Protezione di Kubernetes.

Amazon Web Services (AWS) e sicurezza dei container

Passiamo ora ad AWS. AWS comprende la necessità dei container e la loro capacità di consentire agli sviluppatori di realizzare applicazioni in modo più veloce e coerente. Ecco perché offre Amazon Elastic Container Service (Amazon ECS), un servizio di orchestrazione container scalabile ad alte prestazioni che supporta i container di Docker, elimina le dipendenze nella gestione delle tue macchine virtuali e dell'ambiente dei containers e ti consente di gestire e scalare con facilità le applicazioni nei container in AWS. Tuttavia, come il resto degli attori principali di cui sopra, la sicurezza deve ottenere i pieni vantaggi di questo servizio. 

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 al 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. Scopri di più sulla Protezione di Microsoft Azure Container Instances.

Protezione dell'host

La protezione dell'host comincia dalla selezione del sistema operativo che esegue. 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 prevenzione 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 scoperta in remoto, il motore IPS può rilevare eventuali tentativi di sfruttamento e inviare pacchetti per proteggere

la tua 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 organizzazione 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 ti consente di applicare automaticamente una serie di norme di qualità e sicurezza per i tuoi container prime e durante la ridistribuzione del tuo 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 stesso 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, Kubernetes viene eseguito e distribuito nel tuo ambiente, offre un numero notevole di vantaggi che aiutano ad accertarsi che il tuo team tragga il massimo dall'ambiente. 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 da te utilizzati come "mattoni" siano affidabili e protetti dalle minacce comuni. Questa categoria di strumenti scansiona il contenuto di un container, alla ricerca dei problemi prima che vengano utilizzati come mattoni per la tua applicazione, nonché come set finale di controlli prima che un container venga implementato 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.

L'implementazione di una forte strategia di controllo degli accessi lungo l'intera pipeline, a partire dal deposito codici e dalla strategia di branching, estendendosi lungo tutto il deposito dei container. Devi accertarti di implementare il principio del privilegio minimo (concedere solo l'accesso strettamente necessario per eseguire le operazioni necessarie) e verificare regolarmente l'accesso.

Unire le cose

La protezione dei tuoi container richiede un approccio completo alla sicurezza. Devi accertarti di rispondere alle esigenze dei rimanenti team all'interno della tua organizzazione e che il tuo approccio possa essere automatizzato appositamente per i processi DevOps, accertandoti di rispettare le scadenze e realizzare velocemente le applicazioni pur mantenendole protette. Non è più possibile permettere che la sicurezza venga affidata a un'osservazione dall'esterno o si manifesti all'ultimo momento con richieste di modificare il flusso di lavoro. La creazione di controlli di sicurezza e processi automatizzati affidabili fin dall'inizio risponde a tali esigenze e rende più semplice colmare il gap tra i team. 

Argomenti sicurezza dei container