<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1214412942025937&amp;ev=PageView&amp;noscript=1">

Red Blog

Container security: come rendere sicura la container pipeline

Luigi De Masi,

Container security

Le applicazioni e i servizi messi in "scatola" sono al sicuro? È una domanda lecita da porsi, perché da qualche anno i container godono di popolarità crescente, mentre applicazioni e dati sono sempre più esposti a rischi di varia natura.

La popolarità è meritata: i container software aiutano aziende e sviluppatori a creare, confezionare e distribuire con maggiore facilità applicazioni, servizi e relative dipendenze, su diversi ambienti e destinazioni di deployment (server fisici, macchine virtuali, cloud pubblici o privati). Ma tutto ciò comporta alcune sfide dal punto di vista della sicurezza, perché in questo contesto le classiche policy statiche non risultano efficaci. C'è bisogno, invece, di una protezione continua e dinamica lungo tutta la catena che parte dallo sviluppo dell'applicazione e arriva alla produzione.

 

Scopri come innovare deployment e delivery delle applicazioni con i container!

 

Anzitutto: cos'è la container security?

Parlare di sicurezza dei container significa innanzitutto di parlare della loro integrità. Bisogna proteggere non solo l'ambiente operativo rappresentato dal container, ma anche ciò che sta "sotto" (l'infrastruttura di sostegno) e ciò che sta "dentro" (le applicazioni e i dati), senza dimenticare nemmeno quello che sta "fuori" (gli strumenti di sicurezza e le policy aziendali). Dunque la sicurezza dev'essere continua lungo tutto il ciclo di vita dei container, deve adattarsi a diversi ambienti e deve integrarsi con le risorse già in uso. Solo occupandoti di tutta la pipeline e non trascurando l'infrastruttura potrai essere certo che i tuoi container siano affidabili, scalabili e privi di rischi.

Come mettere in sicurezza la container pipeline

1. Raccogliere le immagini da fonti fidate

Container security - fonti affidabili

I container sono fatti di strati di file, comunemente chiamati "immagini dei container". Si tratta degli elementi più importanti ai fini della sicurezza, perché i file di immagine di base vengono spesso usati come punto di partenza per generare immagini derivative. Il primo passo da compiere è quindi quello di trovare delle fonti fidate per le immagini di base. Quando, poi, si fanno modifiche di configurazione o si aggiungono contenuti esterni o applicazioni, ecco che entrano in gioco nuove variabili: bisogna quindi avere in mente fin dall'inizio una gestione proattiva dei contenuti.

Nello scegliere le immagini dei tuoi container dovrai porti alcune domande:

  • sono firmate (cioè hanno una signature) e provengono da fonti fidate?
  • gli strati del runtime e del sistema operativo sono aggiornati?
  • con quale frequenza e con quali tempi i container verranno aggiornati?
  • sono stati identificati problemi noti e, se sì, come saranno tenuti d'occhio?

2. Gestire l'accesso

Container security - controllo degli accessi

Una volta ottenute le immagini, il passo successivo sarà quello di gestirne sia l'accesso sia la promozione. È necessario quindi proteggere sia le immagini che scarichi sia quelle che costruisci. Utilizzare un registro privato consente di controllare l'accesso tramite incarichi basati su ruoli e allo stesso tempo aiuta a gestire i contenuti inserendo nei container dei metadati, i quali permetteranno di identificare e tenere traccia delle vulnerabilità. Un registro privato, inoltre, dà la possibilità di automatizzare e assegnare policy alle immagini del container archiviate, minimizzando l'errore umano e quindi l'introduzione di vulnerabilità.

Così come avrai fatto per selezionare le immagini del container, anche per decidere come gestirne l'accesso dovrai porti alcune domande:

  • che tipo di controlli basati su ruoli volete usare?
  • si possono impiegare funzioni di tagging per facilitare la ricerca delle immagini?
  • si possono taggare le immagini approvate soltanto per lo sviluppo e poi per il testing e per la produzione?
  • il registro prevede metadata visibili, con cui poter tenere traccia della vulnerabilità note?
  • è possibile usare il registro per assegnare e automatizzare policy (il controllo delle signature, la scansione del codice e via dicendo)?

3. Integrare il testing di sicurezza e automatizzare il deployment 

Container security - automatizzare il deployment

L'ultimo passaggio è il deployment. Una volta completate le tue versioni, avrai bisogno di gestirle secondo gli standard del settore. Il trucchetto sta nel capire come automatizzare le policy per marcare su ogni build i problemi di sicurezza, specie alla luce di nuove vulnerabilità appena scoperte. Rattoppare i container con delle patch non è mai una soluzione valida tanto quanto ricostruirli da zero, e dunque nell'integrare il testing di sicurezza dovrai considerare regole che possano innescare ricostruzioni automatiche. E il primo passo sarà quello di mettere in piedi strumenti di analisi in grado di identificare e marcare i problemi. Il secondo, quello di attivare strumenti per il deployment automatizzato e basato su policy.

Anche in questa fase dovrai farti alcune domande, o meglio essenzialmente una:

  • come poter evitare container rattoppati di patch e, invece, usare dei meccanismi di innesco ("trigger") che creano nuove versioni e aggiornamenti automatici?

4. Difendere l'infrastruttura 

Container security - difendere l'infrastruttura

Uno strato di sicurezza per i container sta nell'isolamento creato dal sistema operativo host: più è elevato, meglio è. Isolare il container è parte importante delle procedure di difesa dell'ambiente di deployment. Il sistema operativo host viene abilitato usando un runtime del container, che può essere gestito al meglio attraverso un sistema di orchestrazione. Per rendere resiliente la container platform, utilizza dei namespace di rete per isolare applicazioni e ambienti e associa dello storage attraverso un supporto sicuro. Una soluzione di API management dovrebbe includere funzionalità di autenticazione e autorizzazione, integrazione LDAP (Lightweight Directory Access Protocol), controllo degli accessi end-point e rate limiting.

Le domande da porsi per capire come difendere l'infrastruttura dei container sono queste:

  • quali container devono poter accedere gli uni agli altri? E come possono individuarsi reciprocamente?
  • come controllerai gli accessi e la gestione delle risorse condivise (per esempio la rete e l'archiviazione)?
  • come gestirai gli aggiornamenti dell'host? I container dovranno essere aggiornati in contemporanea?
  • come monitorerai lo stato di salute del container?
  • come verrà scalata in automatico la capacità dell'applicazione, in base alle necessità?

 

Se i container possono trasformare il tuo lavoro, noi di Extra Red possiamo aiutarti a usarli nel modo più sicuro ed efficace possibile. Come? Te lo spieghiamo nel nostro eBook "Modernizzare il rilascio delle applicazioni con i container", scaricabile gratuitamente:

Extra Red | Modernizzare il rilascio delle applicazioni con i container

Condividi l'articolo!

   

Commenti

Prova Red Cloud Gratis per 30 Giorni

Iscriviti alla newsletter

Condividi questo blog

   

Post correlati