Cinque miti da sfatare sulla sicurezza dei container

Ci sono ancora alcuni luoghi comuni che accompagnano l’uso dell’open source e quindi anche dei container… e che andrebbero sfatati una volta per tutte.

L’open source è alla base della maggior parte delle tecnologie innovative, come l’intelligenza artificiale e machine learning, l’edge computing, il serverless computing e, non ultima, la containerizzazione. Come in ogni settore dell’IT, la questione della sicurezza non deve essere trascurata quando si utilizzano software open source e container. Ci sono alcuni preconcetti e luoghi comuni che impediscono un approccio olistico e multilivello alla sicurezza, che mette in primo piano la IT Security dell’intera catena logistica, considerando quest’ultima in tutte le sue tre fasi: creazione, distribuzione ed esecuzione. In questo modo, nulla ostacola l’utilizzo dei container con un fattore di rischio ridotto.

Secondo Marie Innes, Solution Architect di Red Hat, sono soprattutto cinque i luoghi comuni che è il momento di sfatare quando si parla di sicurezza dei container.

La comunità è l’unica responsabile della sicurezza delle tecnologie open source

L’open source è caratterizzato da un elevato livello di innovazione e sicurezza, sostenuto da una comunità composta da migliaia di collaboratori. Tuttavia, le aziende devono adottare alcune misure di base, ad esempio per le immagini utilizzate, il processo di creazione o la distribuzione. Soprattutto, è importante utilizzare solo immagini di container provenienti da fonti affidabili. Esempi sono quelle comprovate per il sistema operativo Linux o quelle certificate per linguaggi di programmazione, middleware e database. Oltre a verificarne l’origine, un’azienda dovrebbe anche controllarne il contenuto tramite un sistema di sicurezza che permetta di rilevare eventuali vulnerabilità. Inoltre, non c’è quasi modo di evitare l’uso di una piattaforma che supporti lo sviluppo e la scalabilità coerente delle applicazioni containerizzate, che dovrebbe offrire principalmente la gestione del ciclo di vita, delle identità e degli accessi e la protezione dei dati della piattaforma.

I concetti di sicurezza consolidati sono sufficienti.

Dal data center all’edge, il carico di lavoro dei container è distribuito su molte e diverse infrastrutture. Di conseguenza, anche ogni livello dello stack infrastrutturale e ogni fase del ciclo di sviluppo dell’applicazione deve essere protetto. In linea di principio, un’azienda può fare affidamento su meccanismi di sicurezza consolidati, ma questi devono essere adattati alle nuove circostanze. Nell’era del software-defined everything, in cui vengono utilizzate numerose tecnologie basate su software, sono necessari anche diversi livelli di sicurezza, ad esempio per la rete software-defined o lo storage software-defined.

jelastic-container-cloud-1020

La sicurezza riguarda solamente gli audit

La sicurezza è spesso vista come un ostacolo che impedisce alle attività di svilupparsi. Tale questione viene quindi frequentemente affrontata attivamente solo alla fine del processo di sviluppo. Invece, deve essere sempre considerata come parte di un intero corso di produzione. Non si tratta solo di questioni tecnologiche, ma soprattutto di dipendenze organizzative e di una stretta collaborazione tra tutti gli attori con responsabilità condivise. La sicurezza non può quindi essere una pura questione di audit, ma piuttosto, deve essere inserita all’interno dei processi di progettazione. Tornando ai container e all’obiettivo di “costruire una volta, distribuire ovunque”, ciò significa che il processo di creazione deve produrre un sistema privo di errori che venga utilizzato nelle operazioni produttive.

Le scansioni delle vulnerabilità sono sufficienti per garantirsi sicurezza

È giusto eseguire le scansioni di sicurezza dei container con strumenti che utilizzano database di vulnerabilità costantemente aggiornati. Poiché emergono continuamente nuove fragilità, le aziende devono controllare il contenuto degli elementi dei loro container nel momento in cui vengono scaricati e monitorare lo stato di sicurezza. Tuttavia, questo è solo un aspetto, poiché la sicurezza deve essere sempre intesa come un processo olistico e non può essere ridotta alla mera scansione delle vulnerabilità. Alla fine, si tratta sempre dell’intero ciclo di vita di uno stack di soluzioni. Ad esempio, si può implementare anche nella creazione di una pipeline DevSecOps che includa il monitoraggio della sicurezza delle applicazioni, la protezione della piattaforma e la reazione alle minacce del runtime.

La sicurezza non è compito degli sviluppatori

Con oltre un milione di progetti open source, gli sviluppatori possono adottare quelli esistenti con relativa facilità, adattarli alle proprie esigenze aziendali e utilizzarli in modo produttivo. Tuttavia, sono indispensabili anche policy e indicazioni regolamentari chiare, ad esempio per controllare e automatizzare la creazione dei container. Le aziende dovrebbero anche osservare best practice per la sicurezza applicativa, soprattutto tramite l’integrazione di test di sicurezza automatici. Affrontare questi diversi preconcetti dimostra come che il tema della sicurezza debba assumere una priorità molto più alta durante l’intero ciclo di vita di un’applicazione containerizzata, sia dal punto di vista organizzativo che tecnologico, ossia nelle fasi di “Design”, “Build”, “Run”, “Manage & Automate” e “Adapt”.

La fase di progettazione consiste nell’identificazione dei requisiti di sicurezza, mentre la fase di realizzazione nell’integrare direttamente la sicurezza nello stack applicativo. Per ridurre l’onere delle operazioni, è opportuno utilizzare piattaforme affidabili con funzioni di sicurezza avanzate. La fase Manage & Automate prevede l’automazione dei sistemi per la sicurezza e la conformità, e infine Adapt prevede aggiornamenti regolari in caso di cambiamenti nel panorama dell’IT Security. Con questo approccio olistico, che si concentra sulla sicurezza dell’intera catena di approvvigionamento, un’azienda sarebbe strutturata in modo ottimale per l’utilizzo dei container. La sicurezza non deve più essere vista come un ostacolo, ma può piuttosto come fattore abilitante di una moderna infrastruttura IT.

Aziende:
Red Hat
Condividi:
 

Come il modello SaaS può trasformare lo sviluppo del software

modello saas
Il modello SaaS (software come servizio) non è solo un modo migliore per fornire software, ma serve anche a creare software che soddisfi meglio le esigenze dei vostri clienti.

All’inizio di Internet, non c’erano molte applicazioni Internet. Le applicazioni venivano infatti scritte quasi unicamente per i sistemi operativi Windows, Linux e Macintosh. La formula “software delivery” spesso significava copiare un file binario su un server o creare un programma di installazione di Windows e renderlo disponibile su un CD-ROM per la vendita nei negozi fisici.

Le varie release dei software venivano eseguite molto di rado, solo una volta all’anno o con tempistiche ancor più dilatate. I cicli di sviluppo erano misurati al massimo in settimane e il tempo tra la ricerca di un bug e la fornitura di una correzione era spesso misurato in mesi.  Una nuova versione doveva inoltre essere il più possibile perfetta, perché le opportunità di fornire correzioni di bug erano rare e difficili da gestire.

Oggi le cose si muovono un po’ più velocemente, grazie soprattutto alle applicazioni SaaS (software-as-a-service), che costituiscono una parte significativa dello sviluppo software odierno. Le applicazioni SaaS in genere hanno un’API back-end basata su JSON che comunica con un browser di qualche tipo. Potrebbero anche comunicare con applicazioni native su smartphone, ma il dispositivo su cui viene eseguita un’applicazione sta diventando sempre più irrilevante.

Qualunque sia il front-end, l’intero approccio è un cambiamento radicale rispetto all’applicazione Windows o Mac distribuita in modo classico anni e anni fa. Le applicazioni SaaS possono essere riparate, aggiornate e distribuite in pochi minuti anziché mesi ed ecco perché modello SaaS ha cambiato radicalmente il modo in cui il software viene sviluppato e distribuito.

Ma perché le applicazioni SaaS sono diventate così desiderabili e di successo?

Ci sono quattro ragioni principali:

  • I team di sviluppo controllano tutta l’esecuzione del codice.
  • Il codice viene eseguito in un ambiente rigorosamente definito e altamente controllato.
  • La consegna può essere immediata e frequente.
  • I team possono osservare come i loro clienti utilizzano il software.

Tutto il tuo codice appartiene a noi

Nel mondo client/server, gli sviluppatori compilavano il codice all’interno dell’azienda, ma poi rilasciavano quel codice sul mercato, dove veniva eseguito su chissà quali macchine, sistemi operativi e configurazioni. Certo, tutto funzionava su Windows e Mac, ma quelle macchine erano tutte diverse e gli sviluppatori avevano uno scarso controllo su come veniva eseguito il codice o su come era configurata l’applicazione. Se poi c’erano molte impostazioni dell’applicazione, gli utenti potevano configurare l’applicazione in modi che gli sviluppatori non avevano mai considerato o addirittura ritenuto possibile.

Con l’avvento del modello SaaS, il back-end di un’applicazione SaaS funziona totalmente sotto il controllo degli sviluppatori e negli ambienti che configurano, regolano e persino modificano secondo necessità. Anche il codice front-end risiede sui server degli sviluppatori e viene consegnato su richiesta ed eseguito in un numero limitato di browser web.

 

Un ambiente rigorosamente definito

Sì, ci sono molti browser, ma il loro numero è limitato e i browser sono per la maggior parte un ambiente noto e testabile. Le applicazioni SaaS incontrano solo un numero limitato di ambienti di esecuzione e ciò consente ai team di sviluppo di eseguire un lavoro di test più approfondito rispetto al modello di distribuzione classico.

Esistono ancora problemi con la varietà di smartphone Android disponibili, ma sempre di più gli sviluppatori forniscono le loro applicazioni in soluzioni basate su browser. E ora che Internet Explorer è finalmente uscito dai nostri radar, i browser rimanenti fanno un ottimo lavoro nell’implementazione degli standard che rendono più semplice lo sviluppo di applicazioni Web.

sviluppo software

Consegna immediata e frequente

Le applicazioni SaaS evitano poi di fornire ai clienti un bug sconosciuto senza alcun modo per risolverlo per settimane o mesi. I giorni per la consegna di una patch a un prodotto installato sono finiti (per fortuna) nel dimenticatoio. Invece, se un bug catastrofico si fa strada attraverso la pipeline di sviluppo e in produzione, lo si può riconoscere non appena colpisce e prendere le dovute misure prima che i vostri clienti se ne accorgano. Spesso è possibile correggere il bug e distribuire la correzione addirittura in pochi minuti anziché mesi.

E non parliamo solo di bug. Non dovete più tenere le nuove funzionalità della vostra applicazione come “inventario”, in attesa della prossima release principale. In passato, se si creava una nuova funzionalità nelle prime settimane dopo una versione principale di un software, quella funzionalità avrebbe dovuto attendere potenzialmente mesi prima di essere resa disponibile ai clienti. Ora, un’applicazione SaaS può fornire immediatamente una nuova funzionalità ai clienti ogni volta che il team dice che è pronta.

Totalmente osservabile

Poiché un’applicazione SasS viene eseguita in un insieme limitato di browser, è molto più facile osservare cosa sta succedendo all’interno dell’ambiente di esecuzione. Strumenti come Datadog e Dynatrace consentono di osservare e tenere traccia di tutto ciò che accade all’interno dell’applicazione. Il monitoraggio degli errori con strumenti come Rollbar può segnalare i problemi del cliente man mano che si verificano, riducendo drasticamente il tempo medio di intervento.

L’osservabilità diventa così, in effetti, una cosa in tempo reale piuttosto che qualcosa che accade indirettamente quando i clienti segnalano problemi. Le applicazioni sono in esecuzione su dispositivi connessi a Internet, siano essi un computer con un browser o un dispositivo mobile, e quindi possono facilmente segnalare problemi, come viene utilizzata l’applicazione e cosa sta facendo l’applicazione.

Conoscere il vostro cliente

Nel mondo client/server, le società di software tradizionali hanno faticato non poco nel sapere chi fossero i loro clienti, tanto meno cosa stessero facendo con il software e quanto spesso lo stessero utilizzando. Potevate letteralmente acquistare software, installarlo e usarlo senza che nessun altro sapesse che lo stavate facendo. Le applicazioni SaaS, invece, ci consentono di vedere praticamente tutto ciò che i nostri clienti stanno facendo con il software.

I loro dati sono archiviati sui nostri server e possiamo vedere cosa stanno facendo ora e la cronologia di ciò che hanno fatto in passato. Questo non è il Grande Fratello che guarda o una minaccia alla privacy dei clienti. Le applicazioni SaaS non hanno l’abitudine di archiviare informazioni di identificazione personale. Piuttosto, il monitoraggio del comportamento dei clienti consente alle aziende SaaS di collaborare più strettamente con i clienti e di lavorare per aiutarli a vedere il valore reale dei prodotti esaminando i loro modelli e dati di utilizzo.

Di conseguenza, è possibile aggregare l’attività dei clienti e concentrare lo sviluppo in aree che mostrano un utilizzo elevato. Possiamo vedere come i clienti utilizzano e non utilizzano il prodotto. Possiamo aiutarli a utilizzare meglio il prodotto. Possiamo indicare dove stanno utilizzando le best practice e dove non lo stanno facendo. Possiamo adattare i nostri sforzi ai clienti che hanno bisogno di aiuto e trascorrere il nostro tempo in modi più produttivi.

Sapere chi sono i vostri clienti e come stanno usando il vostro prodotto è un’informazione preziosa e le applicazioni SaaS ve lo consentono. Questo porta a risultati migliori per la vostra azienda e i vostri clienti. SaaS non è solo un modo migliore per fornire software, ma anche un modo per creare software che soddisfi meglio le esigenze dei vostri clienti.

Condividi: