La maggior parte dei team di sicurezza affronta una sfida comune e costante: proteggere le applicazioni containerizzate durante il runtime. I container sono più vulnerabili ad attacchi come escalation di privilegi ed exploit zero-day proprio in questa fase. Infatti, uno studio recente ha rilevato che l’85% delle organizzazioni che utilizzano container ha subito incidenti di cybersecurity nel 2023, con il 32% di questi incidenti verificatisi durante il runtime.
Cosa succede in caso di una sola disattenzione? Si rischiano violazioni significative, interruzioni operative e downtime – un risultato che sicuramente si vuole evitare per la propria organizzazione. In questo articolo forniamo approfondimenti pratici, minacce e strategie comprovate per migliorare la sicurezza del runtime dei container.
Che cos’è la sicurezza del runtime dei container?
La sicurezza del runtime dei container è la pratica di proteggere i container mentre sono attivamente in esecuzione in un ambiente di produzione. Comprende il monitoraggio in tempo reale e il rilevamento delle minacce per identificare e mitigare le vulnerabilità che possono emergere durante l’esecuzione. Mira a prevenire attività dannose, accessi non autorizzati e configurazioni errate dei sistemi monitorando costantemente il comportamento dei container e applicando le policy di sicurezza appropriate.
Importanza della sicurezza del runtime dei container
I container sono più vulnerabili quando sono in esecuzione. A differenza dell’analisi statica o dei controlli pre-deployment, la sicurezza del runtime affronta le minacce in tempo reale che possono sfruttare le debolezze durante l’esecuzione dei container. La protezione del runtime dei container garantisce l’integrità delle applicazioni, supporta e mantiene la conformità e protegge i dati sensibili.
I costi nascosti del mancato rafforzamento della sicurezza del runtime dei container
La sicurezza del runtime dei container non è un’opzione, è sine qua non – indispensabile per la tua organizzazione. Non comprenderne l’importanza può avere un impatto economico significativo. Ecco alcuni esempi:
- Violazioni dei dati: La maggior parte dei container contiene informazioni sensibili e riservate – spesso dei tuoi clienti. Qualsiasi negligenza nel preservare l’integrità di questi dati può essere vista come una violazione della fiducia e compromettere drasticamente la tua reputazione. Quindi, perdi i dati, la credibilità e potresti dover affrontare costose cause legali.
- Downtime operativo: Il successo della tua organizzazione si basa sul funzionamento senza intoppi. Una violazione della sicurezza è come un ostacolo improvviso – costringendo l’intera operatività a una pausa indesiderata e costosa. Un singolo incidente di sicurezza può compromettere produttività e redditività.
- Perdita di proprietà intellettuale: I container ospitano anche dati interni di valore come algoritmi proprietari, segreti commerciali e codici unici. Se gli attaccanti ottengono accesso a questi dati, potresti dover interrompere completamente alcuni prodotti o servizi. Nel peggiore dei casi – la concorrenza ottiene la tua proprietà intellettuale; potresti perdere il vantaggio competitivo e la clientela.
- Aumento dei premi assicurativi: Sapevi che le aziende assicurano la propria cybersecurity? Lo fanno principalmente per due motivi – come investimento e per coprire le spese causate da violazioni di sicurezza. Tuttavia, in caso di incidente, il premio assicurativo aumenta. In base alla gravità della violazione e alla gestione della remediation, potresti anche vederti negata la copertura.
- Alti costi di remediation: Ripristinare un container dopo una violazione è un altro pozzo senza fondo di spese – e occorre anche destinare molte risorse per ripristinare tutto. Per riparare i danni, è necessario correggere le vulnerabilità, aggiornare le configurazioni e recuperare i sistemi compromessi. Ma non è tutto. Bisogna anche lavorare per ricostruire la fiducia dei clienti, ad esempio ri-verificando e migliorando i protocolli di sicurezza. Tutte queste attività hanno costi elevati.
- Problemi di conformità: I servizi finanziari e sanitari hanno una spesa aggiuntiva – le sanzioni per la compromissione di dati sensibili dei clienti e la non conformità. Inoltre, subiscono una maggiore attenzione da parte degli enti regolatori.
Come funziona la sicurezza del runtime dei container?
La sicurezza del runtime dei container opera in un ciclo continuo; supervisiona e analizza il comportamento dei container durante tutta l’esecuzione. Comprende diversi elementi chiave:
- Rilevamento delle minacce in tempo reale: Una delle capacità fondamentali, ma estremamente importanti, della sicurezza del runtime è rilevare le minacce mentre si verificano. Utilizza strumenti di sicurezza avanzati per monitorare attentamente le attività dei container. Cerca anche comportamenti sospetti come chiamate di sistema non autorizzate, connessioni di rete insolite o tentativi di escalation di privilegi. Se un container tenta di accedere a un file oltre i propri permessi o di connettersi a un indirizzo IP esterno, il sistema lo segnala immediatamente. Avvisare tempestivamente i team di sicurezza consente un migliore contenimento dei danni.
- Applicazione delle policy: La sicurezza del runtime dei container non si limita al monitoraggio; aiuta anche a definire cosa può fare un container tramite regole e policy. Questi confini predefiniti regolano l’accesso del container a risorse, reti, database e altro. Supervisiona anche le comunicazioni tra container e impedisce deviazioni dalle regole stabilite.
- Risposta agli incidenti: Una volta che la sicurezza del runtime rileva una minaccia nel container, interviene immediatamente isolando il container interessato e avvisando i team di sicurezza. Registra inoltre le informazioni sull’incidente per analisi forensi e miglioramenti futuri. È importante notare che è necessario l’intervento umano per mitigare la minaccia.
- Monitoraggio continuo: Poiché la sicurezza del runtime monitora costantemente i container, aiuta a mantenere l’igiene del processo e a ottenere informazioni in tempo reale sullo stato di salute del container.
Guida al mercato CNAPP
La guida di mercato Gartner per le piattaforme di protezione delle applicazioni cloud-native fornisce informazioni chiave sullo stato del mercato delle CNAPP.
Leggi la guida5 minacce critiche alla sicurezza del runtime dei container che ogni azienda dovrebbe conoscere
Ecco cinque minacce critiche alla sicurezza del runtime dei container che ogni azienda deve conoscere:
#1 Configuration Drift
Sapevi che la violazione della console Kubernetes di Tesla nel 2018 è stata causata da configuration drift? La console Kubernetes era esposta senza protezione tramite password, consentendo agli attaccanti di minare criptovaluta. Questi configuration drift si verificano quando c’è una discrepanza rispetto allo stato atteso a causa di modifiche non rilevate o non autorizzate. Nel tempo, ciò porta a nuovi rischi, sicurezza compromessa e lacune sfruttabili dagli hacker.
#2 Esecuzione di codice malevolo
I container sono nel loro stato più vulnerabile durante il runtime, e gli attaccanti attendono questa opportunità per iniettare furtivamente script o applicazioni malevoli. Hilton Hotels ha sperimentato direttamente questa minaccia nel 2020, quando gli hacker hanno sfruttato il loro container docker ottenendo accesso ai dati degli ospiti. Successivamente hanno anche lanciato un attacco ransomware.
#3 Malware nelle immagini dei container
Le immagini dei container sono i blocchi fondamentali su cui si basa un container. Tuttavia, se queste immagini provengono da fonti non verificate, è probabile che contengano malware. Conosci l’incidente malware su Docker Hub del 2019? Centinaia di immagini malevole con crypto miner sono state ospitate su Docker. Da allora, Docker ha rafforzato la sicurezza per evitare simili violazioni.
#4 Attacchi di escalation dei privilegi
In un container, agli utenti vengono assegnate le autorizzazioni appropriate per accedere alle informazioni. Ma immagina se un attaccante ottiene questi privilegi. Potrebbe utilizzare le risorse dell’organizzazione, installare malware e interrompere le operazioni aziendali. Nessuno nel mondo della cybersecurity può dimenticare la vulnerabilità CVE-2019-5736 runs tramite cui gli attaccanti hanno ottenuto l’accesso root all’host. Hanno sfruttato la falla per sovrascrivere il binario dell’host.
#5 Exploit del kernel
Le macchine host e i container spesso condividono il kernel, il che li rende entrambi suscettibili agli exploit del kernel. Recentemente è stata scoperta una grave vulnerabilità del kernel Linux. Gli attaccanti hanno ottenuto accesso per sovrascrivere file su container montati in sola lettura. Per prevenire tali incidenti, è necessario aggiornare e correggere regolarmente il kernel, oltre a implementare strumenti di sicurezza del runtime docker.
Come rilevare e risolvere i rischi del runtime nel tuo ambiente?
Il modo migliore per mantenere la sicurezza delle applicazioni è rilevare e risolvere i rischi del runtime in un ambiente containerizzato. Tuttavia, è necessario un approccio sistematico. Ecco una guida passo-passo per rilevare e risolvere efficacemente questi rischi.
Rilevamento dei rischi del runtime
- Monitoraggio continuo in tempo reale: Il primo passo per ottenere una sicurezza ottimale del runtime dei container è dotarsi di strumenti in grado di monitorare le attività in tempo reale. Questi strumenti possono monitorare i flussi di eventi, tracciare i cambiamenti nell’uso delle risorse e identificare anomalie nelle operazioni dei container.
Consiglio pratico: Ricorda di configurare gli strumenti affinché ti inviino un avviso non appena rilevano escalation di privilegi o chiamate di sistema non autorizzate. Questi allarmi consentono di accelerare la mitigazione delle minacce.
- Analisi comportamentale: Il passo successivo è definire una baseline di ciò che consideri attività normale del container. Una volta che il sistema apprende il comportamento abituale del container – come consumo di risorse, networking, attività, ecc. – può individuare le deviazioni. L’analisi comportamentale è probabilmente lo strumento più utile contro minacce sofisticate (attacchi interni).
Consiglio pratico: I metodi standard basati su signature non sono sempre efficaci nell’identificare minacce avanzate e sottili.
- Snapshot scanning: Lo snapshot scan consiste nel catturare uno snapshot di vari stadi del runtime del container. Può rilevare debolezze come configurazioni errate o componenti software obsoleti, non identificati durante il deployment iniziale.
Consiglio pratico: Se i tuoi container vengono aggiornati frequentemente con nuove librerie o dipendenze, lo snapshot scanning è un passaggio indispensabile nella routine di sicurezza del runtime dei container.
- Monitoraggio delle chiamate di sistema: I processi dei container spesso effettuano richieste al kernel del sistema host. Queste ‘syscall’ consentono al container di interagire con il sistema operativo per accedere a file o gestire la memoria. Il passo successivo è implementare un sistema che monitori regolarmente tali chiamate e filtri quelle sospette.
Consiglio pratico: Assicurati di impostare filtri per le chiamate setuid o setgid che possono potenzialmente modificare l’ID utente o di gruppo.
- Sistemi di rilevamento delle intrusioni (IDS): L’ultimo passo nel rilevamento dei rischi del runtime è implementare soluzioni IDS specifiche per container per monitorare il traffico di rete, l’integrità dei file e le attività dei processi all’interno dei container per rilevare potenziali intrusioni.
Consiglio pratico: Puoi configurare gli IDS per rilevare accessi non autorizzati, tentativi di esfiltrazione dati o comunicazioni sospette tra container.
Risoluzione dei rischi del runtime
Una volta rilevati i rischi del runtime, è il momento di rispondere a queste minacce e minimizzare l’impatto sulle operazioni. Vediamo alcune modalità di gestione della remediation:
- Risposta automatizzata agli incidenti: Al rilevamento di una minaccia, automatizza la risposta per ridurre i danni. Questo comporta l’isolamento o la terminazione dei container compromessi o il rollback a versioni precedenti. Se il container è compromesso, il sistema può ripristinare automaticamente un’immagine di backup o avviare l’aggiornamento di una versione sicura del container.
- Gestione delle configurazioni: Sappiamo che una configurazione non gestita può causare drift. Puoi evitarlo revisionando e aggiornando regolarmente le configurazioni. Questo assicura che i container non vengano eseguiti con privilegi eccessivi, accesso di rete non necessario o volumi di storage mal configurati.
- Controlli di accesso: Implementa controlli di accesso rigorosi utilizzando il controllo degli accessi basato sui ruoli (RBAC). Puoi definire ruoli chiari per utenti e processi, con permessi precisi che limitano ciò che possono fare nell’ambiente containerizzato. Limitando l’accesso ai componenti critici, riduci il rischio che un attaccante prenda il controllo di risorse sensibili in caso di compromissione di un container.
- Integrazione con soluzioni di sicurezza: Assicurati che gli strumenti di sicurezza del runtime si integrino perfettamente con le altre soluzioni di sicurezza del tuo stack tecnologico. Collega gli strumenti di sicurezza dei container ai sistemi SIEM (Security Information and Event Management) o alla tua piattaforma di sicurezza cloud per correlare gli alert, identificare pattern di attacco più ampi e mantenere la visibilità end-to-end dell’infrastruttura.
- Scanning continuo delle vulnerabilità: Esegui regolarmente lo scanning del runtime dei container per vulnerabilità note e malware durante il runtime. Utilizza strumenti che eseguono automaticamente la scansione dei container per CVE (Common Vulnerabilities and Exposures) noti, segnalando componenti obsoleti o vulnerabili.
Best practice per la sicurezza del runtime dei container
La sicurezza del runtime dei container è essenziale per mantenere l’integrità e la riservatezza delle applicazioni containerizzate. Puoi rafforzare la sicurezza applicando le seguenti best practice:
#1 Utilizza immagini base minimali
Immagini più piccole significano superfici di attacco ridotte; i threat actor solitamente non si concentrano su queste. Le dimensioni ridotte implicano anche la presenza dei soli componenti essenziali, rendendole più facili da gestire e riducendo i potenziali punti di ingresso per gli attaccanti.
#2 Aggiorna e applica patch regolarmente
Come qualsiasi altro software, anche i container devono essere aggiornati regolarmente con le patch più recenti per correggere le vulnerabilità. L’attacco Heartbleed è avvenuto perché un’immagine Docker aveva una versione obsoleta di OpenSSL. Integra lo scanning delle vulnerabilità nel pipeline CI/CD per identificare e risolvere tempestivamente i problemi.
#3 Applica il principio del minimo privilegio
Gli attaccanti cercano sempre punti di ingresso tramite privilegi disponibili. Se invece di consentire ai container di essere eseguiti con privilegi root, li configuri con permessi di livello inferiore, puoi facilmente prevenire rischi di sicurezza.
#4 Sfrutta i moduli di sicurezza
Per livelli di sicurezza aggiuntivi, scegli moduli come Seccomp e AppArmor che possono limitare le chiamate di sistema consentite ai container. Questi moduli bloccano le interazioni con il kernel e impediscono chiamate di sistema non autorizzate, prevenendo l’evasione dal container. Possono anche applicare policy di sicurezza più restrittive, assicurando che i container operino entro parametri definiti e non possano eseguire azioni non autorizzate.
#5 Abilita SELinux
Security-enhanced Linux (SELinux) è un meccanismo di sicurezza affidabile che applica controlli di accesso obbligatori (MAC) ai processi dei container. Con SELinux puoi controllare e limitare un container compromesso dall’accesso a risorse sensibili (file di configurazione, librerie di sistema) sull’host.
#6 Isola i container
Utilizza policy di rete, firewall e altre tecniche di isolamento per separare i container tra loro. Questo isolamento limita la possibilità di movimenti laterali nell’ambiente e riduce il rischio di propagazione delle compromissioni tra container.
#7 Monitora e registra le attività
Implementa strumenti che offrano visibilità sulle attività del runtime dei container, come esecuzione di processi, comunicazioni di rete e chiamate di sistema. Registrando e analizzando questi dati, puoi identificare comportamenti sospetti e rispondere alle minacce prima che si aggravino.
#8 Utilizza registry affidabili
L’utilizzo di immagini provenienti da fonti affidabili riduce il rischio di introdurre codice malevolo nell’ambiente. Inoltre, assicurati che le immagini siano firmate e che la loro integrità sia verificata prima del deployment per prevenire manomissioni.
#9 Limita l’uso delle risorse
Impostare limiti alle risorse dei container è una strategia chiave per prevenire attacchi denial-of-service (DoS) e garantire un’equa allocazione delle risorse. Limitando CPU, memoria e storage, puoi evitare che un singolo container sovraccarichi il sistema host e interrompa altre applicazioni.
#10 Esegui audit di sicurezza regolari
Audit di sicurezza e penetration test regolari dovrebbero coprire tutti gli aspetti della sicurezza dei container, dalla creazione delle immagini e gestione delle configurazioni fino alla protezione del runtime dei container.
SentinelOne: sicurezza completa del runtime dei container
Singularity Cloud Workload Security (CWS) di SentinelOne offre una protezione completa per i workload containerizzati, concentrandosi sulla sicurezza in tempo reale durante la fase di runtime. La piattaforma garantisce la protezione dei container da diverse minacce grazie alle seguenti funzionalità:
- Rilevamento delle minacce in tempo reale basato su AI: CWS di SentinelOne offre funzionalità di protezione dei workload cloud in tempo reale (CWPP) che proteggono gli ambienti containerizzati da minacce avanzate come ransomware ed exploit zero-day.
- Risposta e ripristino autonomi: Le capacità di risposta rapida di SentinelOne assicurano che, quando vengono rilevate minacce, queste vengano neutralizzate automaticamente per ridurre il downtime e garantire la disponibilità continua. La visualizzazione automatica degli attacchi Storyline™ si mappa alle TTP MITRE ATT&CK e semplifica anche la raccolta di artefatti forensi su larga scala.
- Visibilità e forensics complete: Tramite l’integrazione con il data lake Singularity, SentinelOne offre una cronologia forense dettagliata e telemetria dei workload per consentire ai team di sicurezza di indagare a fondo sugli incidenti. Il Workload Flight Data Recorder™ acquisisce e registra tutti i dati rilevanti per una visibilità completa.
- Ampio supporto di piattaforma e scalabilità: SentinelOne supporta 14 principali distribuzioni Linux, diversi runtime container (Docker, containers, cri-o) e servizi Kubernetes gestiti e self-managed dei principali cloud provider come Amazon Web Services (AWS), Microsoft Azure e Google Cloud. Si integra inoltre con Snyk e combina una soluzione agentless CNAPP con un motore offensivo unico.
- Architettura eBPF per stabilità e performance: L’utilizzo dell’architettura extended Berkeley packet filter (eBPF) migliora la stabilità e le prestazioni della piattaforma. Questo design evita dipendenze dal kernel, con un basso impatto su CPU e memoria.
- Integrazione con strumenti DevSecOps: SentinelOne si integra con strumenti DeSecOps per un’esperienza senza interruzioni e un monitoraggio continuo della sicurezza durante tutto il ciclo di sviluppo.
Protezione dei carichi di lavoro cloud (CWPP) basata su AI per server, VM e container, che rileva e blocca le minacce in tempo reale durante l'esecuzione.
Domande frequenti
La sicurezza del runtime dei container consiste nel proteggere i container mentre sono attivamente in esecuzione. Si concentra sul rilevamento e la mitigazione di minacce come accessi non autorizzati, malware e vulnerabilità durante la fase di esecuzione del container.
La sicurezza del runtime dei container è tipicamente responsabilità dei team DevOps e di sicurezza all'interno di un'organizzazione. Essi garantiscono che siano in atto politiche di sicurezza, monitoraggio e misure di risposta per proteggere i container in esecuzione.
Uno dei migliori strumenti che puoi utilizzare per la sicurezza dei container è SentinelOne. Offre funzionalità come rilevamento delle minacce in tempo reale, applicazione delle policy e risposta automatizzata agli incidenti, garantendo una sicurezza estesa per i tuoi.
Il runtime dei container si riferisce al software che gestisce il ciclo di vita del container, dalla creazione, avvio e arresto, fino alla loro eliminazione.
Esistono diverse pratiche che aiutano a gestire la sicurezza dei container, come la scansione regolare delle vulnerabilità, l'implementazione del principio del privilegio minimo e il monitoraggio delle attività in fase di esecuzione. È inoltre necessario utilizzare altri strumenti di sicurezza per una protezione continua.

