Cos'è la sicurezza per DevOps?
- Glossario IAM
- Cos'è la sicurezza per DevOps?
La sicurezza per DevOps, detta anche DevSecOps, è un agglomerato delle parole Development (sviluppo), Operations (attività) e Security (sicurezza). Sia la sicurezza per DevOps che la parola DevSecOps si riferiscono a quella filosofia di integrazione precoce della sicurezza nel ciclo di vita dello sviluppo software (SDLC), preferibilmente prima che venga scritta la prima riga di codice.
Qual è la differenza tra DevOps e DevSecOps?
DevSecOps è un'estensione o potenziamento della filosofia DevOps. Per tale ragione, è importante comprendere cosa abbiano in comune DevOps e DevSecOps prima di passare a parlare delle differenze.
Sia DevOps sia DevSecOps fanno riferimento a una filosofia o un approccio allo sviluppo software, non a uno strumento o a un set di strumenti in particolare. L'installazione di un sistema per il monitoraggio dei problemi non significa che si stia "facendo DevOps", e l'installazione di strumenti di sicurezza per applicazioni statici o dinamici non significa che si stia "facendo DevSecOps".
DevOps e DevSecOps pongono entrambi l'accento sulla collaborazione, sull'automazione e sul monitoraggio attivo delle applicazioni software. La possibilità di acquisire i dati delle applicazioni in tempo reale è fondamentale per entrambe le filosofie, perché "fare" DevOps e DevSecOps richiede l'acquisizione e l'analisi continua dei dati per scoprire modi nuovi di potenziare la produttività e dare una spinta ai miglioramenti.
Entrambe le filosofie dipendono anche dalla collaborazione, in particolare l'eliminazione dei sili organizzativi. La DevOps cerca di abbattere i sili presenti tra lo sviluppo software e le operazioni IT, con l'idea che quando gli sviluppatori e il personale IT collaborano, il software viene rilasciato più in fretta e con meno errori. La DevSecOps compie un passo ulteriore e cerca di far posto anche alle operazioni di sicurezza. L'idea alla base della DevSecOps è quella che quando c'è collaborazione tra gli sviluppatori, il personale IT e quello della sicurezza, il software viene rilasciato più in fretta, è di qualità superiore ed è più sicuro.
"Fare" DevSecOps correttamente significa che le applicazioni sono protette adeguatamente contro i rischi prima che vengano messe in produzione. Questa pratica viene spesso chiamata "shift left", perché si riferisce all'integrazione della sicurezza all'inizio della timeline di progetto, ovvero prima che venga scritta la prima riga di codice, invece di dedicarcisi nelle fasi successive. In un ambiente DevSecOps, gli sviluppatori scrivono il codice tenendo in considerazione la sicurezza, cosa che la DevOps, di per sé, non fa.
Con l'introduzione di pratiche quali l'analisi del codice, l'indagine sulle minacce e la valutazione della vulnerabilità nel SDLC, con testing e valutazione continui, la DevSecOps fa in modo che il codebase sia sicuro fin dal principio. Oltre a migliorare la sicurezza delle applicazioni, la DevSecOps migliora la produttività. Scovare e sistemare i problemi di sicurezza in modo precoce fa sprecare molto meno tempo e denaro rispetto a dover riprodurre il codice in una fase successiva del ciclo di vita del software.
Sfide alla sicurezza per DevOps
Visti i numerosi vantaggi della DevSecOps, le organizzazioni possono sforzarsi a implementarla in maniera adeguata. Esaminiamo alcune delle sfide più comuni alla sicurezza per DevOps.
Troppo pesanti per concentrarsi sugli strumenti, troppo leggere per concentrarsi sui processi. Come già detto in precedenza in questo articolo, sia la DevOps sia la DevSecOps sono filosofie, non ordini di utilizzare software particolari.
La resistenza culturale degli sviluppatori, ovvero il "Ma noi abbiamo sempre fatto così" Gli sviluppatori forse non sono abituati a rendere sicure le pratiche di creazione del codice. Di solito loro creano il codice con l'intento di renderlo funzionale e successivamente scoprono e sistemano le falle nella sicurezza. Gli sviluppatori forse temono che la produzione rallenterebbe se si dovessero "preoccupare" anche della sicurezza.
Resistenza culturale dei team di sicurezza. Gli sviluppatori non sono gli unici ad aggrapparsi al "modo in cui abbiamo sempre lavorato". I team di DevOps si concentrano sulla velocità, modificando ed estraendo codice per ore o giorni interi - un ritmo rapido che può lasciare scettici i team di sicurezza. La differenza sta nel fatto che i team di DevOps automatizzano più processi possibili, mentre i team di sicurezza spesso svolgono tanto lavoro "manuale".
Gestione inadeguata delle chiavi segrete Gli ambienti DevOps sono molto complessi e profondamente interconnessi. Non è insolito che i negozi per DevOps abbiano centinaia di gruppi di sicurezza e migliaia di istanze di server, che utilizzano tutti chiavi segrete quali le credenziali di account con privilegi, le chiavi SSH, i token delle API, le password per database e molto altro, tutti sparsi nell'ambiente dati dell'organizzazione in una condizione nota come "proliferazione delle chiavi segrete". Una semplice configurazione errata può portare all'esposizione di una di queste chiavi segrete e l'organizzazione a cadere vittima di un disastroso attacco informatico.
Gestione degli accessi con privilegi inadeguata. Per velocizzare la produzione, molti team di DevOps concedono ai propri membri un accesso virtualmente illimitato agli account con privilegi, come quelli root e admin. Cosa ancora peggiore è quando più persone possono condividere lo stesso set di credenziali, operazione sconsigliatissima da un punto di vista della sicurezza e considerata come errore grave nelle verifiche di conformità, dove le organizzazioni dovrebbero produrre un audit trail perfetto. Inoltre, l'orchestrazione, la gestione della configurazione e altri strumenti per DevOps potrebbero anche avere livelli di accesso molto elevati, ben più elevati di quelli che servono a uno strumento per funzionare.
Migliori strategie nella sicurezza per DevOps
Quelle che seguono sono alcune delle migliori strategie per implementare la sicurezza per DevOps nella vostra organizzazione.
- Ricordiamoci che la DevSecOps, come la DevOps, è una forma mentis, non un set di strumenti. Invece di acquistare "strumenti per DevSecOps" e cercare di capire dove volerli usare, concentratevi sugli obiettivi a lungo termine, sviluppate i processi per raggiungerli e poi acquistate gli strumenti che supportano tali processi e obiettivi.
- Usate metodi adeguati di gestione delle modifiche per superare la resistenza culturale dei vostri sviluppatori e del personale che si occupa di sicurezza. Dimostrate a entrambi i team che la DevSecOps farà loro risparmiare tempo e li renderà più produttivi, non il contrario. Stabilite dei chiari standard di creazione del codice per i vostri sviluppatori e automatizzate il più possibile i processi di sicurezza e gli strumenti.
- Combattete la proliferazione delle chiavi segrete con uno strumento come Keeper Secrets Manager.
- Tenete sotto controllo l'eccessivo numero di diritti ai privilegi e accedete ai livelli con controlli quali quello degli accessi in base al ruolo (RBAC), l'accesso con privilegi minimi e il just-in-time provisioning.
- Evitate l'uso improprio dell'accesso con privilegi con la registrazione delle sessioni e l'auditing.