La sicurezza dei container è la pratica di proteggere tutti i componenti dei carichi di lavoro containerizzati, comprese le immagini dei container e i repository di immagini, i contenuti dei container in esecuzione e l'infrastruttura dei container sottostante.
Poiché oggi esiste un'ampia varietà di strumenti e piattaforme per la distribuzione dei container, i processi specifici che riguardano la sicurezza dei container variano da un ambiente all'altro. Tuttavia, i componenti fondamentali della sicurezza dei container sono gli stessi, indipendentemente dalle particolari tecnologie coinvolte.
Sicurezza dei container demo Guida alla sicurezza dei container
Poiché i container offrono un modo flessibile e portatile di eseguire le applicazioni, sono diventati una soluzione popolare per la distribuzione del software. Tuttavia, i container introducono anche nuovi livelli nelle pipeline di consegna del software e negli stack di hosting, come ad esempio:
Questi componenti aggiungono complessità agli ambienti software e aumentano la loro superficie di attacco. La sicurezza dei container è importante per garantire che le organizzazioni abbiano le difese necessarie per proteggere questi componenti dai rischi e dalle minacce, difendendo anche altre risorse - come i sistemi operativi in esecuzione sui server che ospitano i container - che esistono sia negli ambienti di hosting containerizzati che in quelli non containerizzati.
Oltre al fatto che la sicurezza dei container richiede la gestione di una superficie di attacco più ampia, la sicurezza dei container è impegnativa perché i container limitano la visibilità diretta che sviluppatori, ingegneri IT e analisti della sicurezza hanno sui carichi di lavoro. Di conseguenza, rilevare e reagire alle minacce può essere più impegnativo.
Ad esempio, se gli analisti eseguono il monitoraggio della sicurezza basandosi solo sulle metriche e sui registri disponibili dal sistema operativo che ospita i container, potrebbero non rilevare attività anomale all'interno di un container, perché le metriche e i registri prodotti dai container stessi non sono in genere gestiti dal sistema operativo. Per ottenere visibilità su ciò che accade all'interno di ogni container, gli ingegneri hanno bisogno di strumenti di sicurezza in grado di superare il livello di astrazione che separa i container dai loro server host.
Non tutti gli ambienti containerizzati includono gli stessi tipi di strumenti. Ad esempio, è possibile eseguire i container senza utilizzare un orchestratore. Ciò significa che i componenti della sicurezza dei container possono variare a seconda degli strumenti e delle piattaforme specifiche che un team utilizza per gestire i propri container.
Detto questo, nella maggior parte dei casi, la sicurezza dei container comprende i seguenti componenti chiave:
Se gli aggressori violano il registro che ospita le immagini dei container, potrebbero inserirvi del codice maligno, che a sua volta diffonderà il malware in tutti gli ambienti che eseguono container basati su immagini contaminate.
Per proteggersi da questo rischio, gli ingegneri devono implementare controlli di accesso rigorosi che impediscano l'accesso non autorizzato ai contenuti dei registri dei contenitori. Dovrebbero anche monitorare i registri per individuare modelli di accesso insoliti che potrebbero essere un segno di attività dannosa.
Gli aggressori possono sfruttare le vulnerabilità nei runtime dei container per prendere il controllo dei container e forse anche dei server che li ospitano. Le organizzazioni possono gestire questo rischio assicurandosi di gestire la sicurezza dei container Docker (o la sicurezza di qualsiasi runtime utilizzato) mantenendo il software del runtime del container patchato e aggiornato.
La configurazione dell'ambiente che gli amministratori applicano quando eseguono i container può avere implicazioni sulla sicurezza. Per esempio, l'esecuzione dei container come root non è in genere una pratica ottimale, perché dà loro permessi elevati che aumentano il danno potenziale causato da una violazione. La protezione delle impostazioni che si applicano agli ambienti che ospitano i container è un componente essenziale della sicurezza dei container.
Per i carichi di lavoro containerizzati che utilizzano gli orchestratori, come Kubernetes, è fondamentale mantenere la piattaforma di orchestrazione libera da vulnerabilità note. Inoltre, gli amministratori devono seguire le best practice quando configurano e gestiscono l'orchestratore per difendersi dalle minacce. Per quanto riguarda la sicurezza dei container Kubernetes, ad esempio, gli amministratori dovrebbero utilizzare il framework Role-Based Access Control (RBAC) integrato per limitare l'accesso alle risorse.
Le applicazioni containerizzate stateful dipendono dalle risorse di storage. La protezione dei dati ospitati in quello storage è un'altra componente importante della sicurezza dei container.
I contenitori si affidano a rete per comunicare tra loro e per accettare e ricevere richieste esterne. Gli ingegneri devono quindi proteggere le reti interne ed esterne, assicurandosi che siano configurate correttamente e monitorandole per rilevare attività insolite.
A seconda del luogo in cui sono ospitati i container, possono essere disponibili alcune soluzioni o pratiche di sicurezza aggiuntive per i container.
Ad esempio, i team che utilizzano Docker possono gestire alcuni aspetti della sicurezza dei container Docker tramite lo scanner di sicurezza integrato nella piattaforma per rilevare le dipendenze dannose all'interno delle immagini dei container. Su Kubernetes, il framework RBAC nativo può aiutare a proteggere i carichi di lavoro containerizzati.
Allo stesso modo, quando si eseguono i container tramite un servizio gestito come Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE) o Elastic Kubernetes Service (EKS), le organizzazioni possono scegliere di sfruttare gli strumenti di sicurezza integrati nelle piattaforme del cloud provider di ciascun servizio per aiutare a monitorare e proteggere i carichi di lavoro.
Le soluzioni di sicurezza dei container che un team utilizza per proteggere i container devono fornire le seguenti caratteristiche fondamentali:
Per la maggior parte dei carichi di lavoro containerizzati, le seguenti best practice possono aiutare a minimizzare il rischio di attacco e a massimizzare la capacità del team di rilevarlo:
Gli amministratori dovrebbero seguire il principio del minimo privilegio quando impostano i componenti all'interno di uno stack di hosting containerizzato. Minimo privilegio significa limitare i permessi al livello più basso necessario.
Eviti di scaricare immagini di container da registri non attendibili, che hanno maggiori probabilità di contenere malware. Ove possibile, scelga registri gestiti da organizzazioni consolidate e affidabili.
Quando si tratta di sicurezza dei container, la scansione e il monitoraggio solo di alcuni livelli di un ambiente non sono sufficienti. Le organizzazioni devono monitorare continuamente tutti i componenti, dai registri e dalle immagini dei container agli ambienti di runtime, all'infrastruttura sottostante e a tutto il resto. Il monitoraggio completo massimizza la capacità degli amministratori di rilevare i rischi.
Sebbene la superficie di attacco dei container sia intrinsecamente più ampia rispetto a quella di un'app non containerizzata, i team possono ridurre la loro superficie di attacco assicurandosi di evitare l'esecuzione di componenti o livelli non necessari. Per esempio, i container che gli sviluppatori lanciano a scopo di test dovrebbero essere chiusi non appena i test sono terminati.
Meno contenuti esistono all'interno di un'immagine container, minore è il rischio di vulnerabilità. Per questo motivo, preferisce le immagini minimaliste, ossia quelle che includono solo le librerie, i pacchetti software e altri componenti necessari per eseguire un'applicazione.
La chiave per una sicurezza efficace dei container consiste nell'integrare la sicurezza in ogni processo e risorsa da cui i container dipendono. CloudGuard for Workload Protection semplifica tutto questo, offrendo una soluzione completa di sicurezza dei container che fornisce:
Per saperne di più, legga la guida Container Security o richieda una demo gratuita.