Mentre le tecnologie, i processi e, soprattutto, i cambiamenti culturali portati da DevOps hanno migliorato la capacità dei team di sviluppo software di generare prodotti affidabili in modo rapido ed efficace, la sicurezza non è stata fin dal principio un punto focale nella trasformazione dell’infrastruttura IT del cloud.
DevSecOps è una metodologia che cerca di affrontare questa lacuna rendendo operativa e rafforzando la sicurezza in tutto il ciclo di vita del software, dal Development, alla Security, alle Operations.
Le origini di DevSecOps
Per capire l’origine di DevSecOps, è utile guardare al movimento che gli ha dato il nome: DevOps. Nel caso di DevOps, i team di sviluppo e di operazioni IT avevano bisogno di allineare le priorità e la comunicazione ed utilizzare l’automazione integrata per portare sul mercato il software più velocemente ed in modo più affidabile. Nei dieci anni dalla sua invenzione, DevOps è stato ampiamente adottato ed il suo impatto è difficile da sottovalutare. Basti dire che la maggior parte dei progressi nello sviluppo del software negli ultimi dieci anni sono stati resi possibili grazie ad esso.
Simile alla relazione tra sviluppo e operazioni IT prima di DevOps, la maggior parte dei team di sicurezza e operazioni IT spesso operano in uno stato di disfunzione che porta a misure di sicurezza IT inefficaci e inadeguate.
DevSecOps è stato inventato principalmente per integrare le pratiche di sicurezza nello sviluppo del software invece di affrontarle ex post.
Definizione ed obiettivi di SecOps
DevSecOps è una metodologia che mira ad automatizzare i compiti di sicurezza cruciali, con l’obiettivo di sviluppare applicazioni più sicure. La crescita di DevSecOps è trainata in parte dalla trasformazione dell’infrastruttura aziendale e dei modelli di fornitura IT, in quanto sempre più imprese stanno approfittando dei modelli di cloud computing a basso costo e dei vantaggi di velocità e agilità che si ottengono attraverso il cloud.
DevSecOps è la pratica di promuovere una cultura in cui i problemi di sicurezza non iniziano né finiscono con il team di sicurezza.
Mentre un’azienda che condivide password in chiaro non userà controlli di accesso centralizzati da un giorno all’altro, il processo per diventare un team orientato a DevSecOps inizia con l’assicurarsi che il team di sicurezza non sia organizzato per silos e che l’orientamento alla sicurezza venga dall’alto nell’organizzazione.
DevSecOps è più di un sistema di sviluppo del software. È una filosofia, è un’organizzazione, è il ricorso alla tecnologia. DevSecOps incorpora una maggiore collaborazione tra programmatori, progettisti e responsabili della sicurezza per considerare le minacce che potrebbero colpire gli utenti ed il software durante l’intero ciclo di sviluppo.
Come implementare DevSecOps nelle organizzazioni
È chiaro che la sfida è come far funzionare DevSecOps nelle organizzazioni. Sia che vi troviate di fronte a una carenza di talenti nel campo della sicurezza, ad un’organizzazione a silos, a competenze obsolete o a grandi lacune nella percezione della sicurezza, è possibile integrare con efficacia DevSecOps ricorrendo alla giusta strategia.
Vediamo alcuni spunti per incorporare DevSecOps nei propri processi.
1 Partire dai vertici aziendali
Se i dirigenti non hanno a cuore la sicurezza, non c’è modo che DevSecOps possa avere successo nella vostra organizzazione. La sicurezza ha anche benefici sul ROI, dall’accelerazione dei cicli di vendita all’apertura di mercati completamente nuovi. I dirigenti dovrebbero comprendere i vantaggi di DevOps e dovrebbero sostenere la necessità di processi sicuri e investimenti strategici sia nelle persone che negli strumenti per sostenere la causa DevSecOps.
2 Essere realistici sul posizionamento della vostra organizzazione
È importante capire cosa pensa il vostro team sull’integrazione di DevSecOps e comprendere quanta conoscenza ha su ciò che comporta l’implementazione di DevSecOps. È importante scoprire quali sono gli atteggiamenti dei diversi team e i ruoli verso il valore della sicurezza. L’attuale postura della vostra organizzazione insomma.
Ciò dovrebbe suggerirvi dove esistono lacune percettive e cosa ci vorrà per aprire gli occhi di tutti sulla vostra posizione reale, in modo da poter procedere con determinazione.
Al fine di integrare DevSecOps nella vostra organizzazione, tutte le parti interessate devono avere coscienza della realtà ad oggi e consapevolezza di come volete che sia la vostra realtà di domani.
3 Fornire una formazione SecOps
Alcune organizzazioni possono scegliere di sviluppare internamente la propria formazione e le proprie procedure DevSecOps. Altre possono scegliere di utilizzare strutture esterne e risorse di formazione consolidate. I corsi di terze parti sono facilmente disponibili e possono essere utilizzati per implementare rapidamente il processo di formazione.
I team DevOps devono apprendere come utilizzare gli strumenti di sicurezza e come incorporare le best practice di sicurezza nei propri flussi di lavoro.
I team di sicurezza, parimenti, devono imparare come codificare ed integrare i loro sforzi nei cicli di deployment continuo.
Non aspettatevi che questo processo avvenga organicamente, sarà necessario fare un investimento consapevole nell’allineamento e nell’educazione tra i team. Solo così DevSecOps avrà la possibilità di diventare una realtà nella vostra organizzazione.
4 Valutare i rischi e dotarsi di una lista di priorità
Considerando gli aspetti da affrontare in tema di sicurezza, dopo la formazione di cui ci siamo già occupati, risulta senz’altro vantaggioso iniziare con l’infrastruttura, perché è questa l’area che espone ai rischi più alti ed è più facile da mettere in sicurezza.
Assicuratevi di seguire le migliori pratiche di gestione della configurazione e di implementare gli avvisi di sicurezza che sono ben sintonizzati con la vostra organizzazione. Proteggere la vostra infrastruttura avrà un effetto a catena su tutta l’organizzazione, dallo sviluppo software alle operazioni.
5 Lavorare in squadra
Uno dei vantaggi di DevSecOps è il miglioramento del lavoro di squadra tra tutte le aree coinvolte nella produzione del software.
Avere una più stretta collaborazione tra i team mitigherà il problema di mettere d’accordo i team di sicurezza e i team di sviluppo,
6 Fornire strumenti DevSecOps adeguati
Oltre ai popolari strumenti di sviluppo (GitHub, AWS, Microsoft…), alcuni strumenti di sicurezza possono aiutare ad implementare DevSecOps nella vostra organizzazione mantenendo la necessaria velocità operativa.
Le piattaforme di automazione possono gestire molte delle procedure di sicurezza e si accoppiano perfettamente con un processo DevSecOps ben documentato.
Le persone sono importanti, ma i cambiamenti culturali non avvengono (in DevOps o altro) senza la tecnologia che li abilita. Per DevOps, questo è stato l’automazione, l’infrastruttura-come-codice (IaaC) e la disponibilità di risorse cloud che hanno dato ad entrambi i team l’accesso alla velocità e alla precisione necessarie per attuare DevOps.
Mentre le soluzioni di automazione della sicurezza come SOAR (security orchestration, automation and response) hanno migliorato la capacità dei team di sicurezza di snellire i flussi di lavoro e identificare le minacce più velocemente, i team DevSecOps devono utilizzare gli strumenti esistenti e nuove soluzioni per coordinare l’azione automatizzata fino al rimedio e al reporting a ciclo chiuso.
7 Essere determinati nell’implementazione
Quando si tratta di implementare un programma DevSecOps integrato, la vostra organizzazione deve essere assolutamente determinata. Le implementazioni DevSecOps di maggior successo includono:
- Strategia: Anche le migliori ambizioni nei confronti dell’integrazione della sicurezza e delle operazioni possono disintegrarsi se non c’è una strategia perseguibile dietro di esse.
- Responsabili chiaramente designati: Bisogna coinvolgere le persone giuste. Meglio se con approccio top-down. Come abbiamo scritto, i dirigenti devono guidare la nave.
- Formazione: Ci può essere un grande divario di comprensione tra la sicurezza e i team DevOps, quindi è essenziale preparare i team e implementare un programma di consapevolezza della sicurezza in tutta l’organizzazione.
- Processi chiari: Con persone che ora lavorano insieme e che potrebbero non aver lavorato insieme prima, e con diversi strumenti necessari per svolgere il lavoro, sono necessari processi chiari e ben documentati.
- Metriche di successo comuni: Dopo aver profuso molto lavoro nel vostro piano DevSecOps, dovreste essere in grado di dimostrare che questo sta effettivamente funzionando. Dovreste dotarvi di alcune metriche o KPI, come il Mean Time To Know, per mostrare i miglioramenti quantitativi dalla vostra implementazione DevSecOps. Soprattutto, questi dovrebbero essere KPI condivisi tra i team.
Quali ostacoli si incontrano nell’implementare DevSecOps
La necessità di DevSecOps è probabilmente meglio evidente dal fatto che moltissime organizzazioni che hanno subito una violazione della sicurezza avrebbero potuto evitare l’incidente con una patch o una modifica di una configurazione. Per quali ragioni?
1 Non c’è abbastanza personale
È esperienza comune che le professioni legate alla sicurezza in particolare e all’ICT in generale stanno sperimentando una massiccia carenza di talenti. Anche una fornitura illimitata di esseri umani di talento, tuttavia, non potrebbe risolvere le sfide della sicurezza di oggi. I sistemi sono molto complessi e i criminali stanno diventando più veloci.
2 La velocità e l’adozione degli strumenti hanno la priorità sulla sicurezza
I team operativi si preoccupano assolutamente della sicurezza, ma vivono in un mondo governato dall’innovazione, dalla crescita e dall’uptime a cinque nove. I team operativi sono responsabili non solo di mantenere ambienti in rapida crescita e sempre più ingombranti, spesso composti da decine di migliaia di sistemi individuali, ma anche di utilizzarli per fornire sempre più valore all’azienda ed ai suoi clienti.
I team di sicurezza e quelli operativi lavorano con strumenti e flussi di lavoro completamente separati che richiedono la traduzione delle informazioni ogni volta che vengono scambiate tra i team. Questo rende quasi impossibile la verifica ed il reporting.
3 L’innovazione supera in velocità la sicurezza
Mentre le innovazioni di prodotto e servizio avanzano a velocità frenetica spinte dal mercato, la sicurezza rimane affannosamente indietro. Questo non significa che non ci siano state innovazioni di sicurezza, ma la maggior parte di esse sono state una reazione alle vulnerabilità e alle lacune create dal mutevole panorama ICT, piuttosto che sforzi proattivi per contribuire a modellarlo in modo sicuro.
I vantaggi di DevSecOps
Possiamo di seguito evidenziare i principali vantaggi che derivano dall’incorporazione di DevSecOps nel processo di sviluppo:
- Ritorno sull’investimento: Il beneficio numero uno è il Return on investment (ROI) rispetto all’adozione di misure di sicurezza secondo le organizzazioni a silos;
- Miglioramento della produttività: Con le procedure di sicurezza dispiegate nell’intero processo di sviluppo, le operazioni sono nel complesso più produttive;
- Risorse ridotte: Il miglioramento delle prestazioni fornisce un migliore utilizzo dello storage e dei servizi cloud, riducendo o utilizzando meglio le risorse;
- Meno problemi di sicurezza nel cloud: Le operazioni DevSecOps adottano misure per migliorare la sicurezza delle piattaforme cloud e diminuire il rischio di problemi e minacce legate a queste piattaforme;
- Meno interruzioni delle applicazioni: Migliori implementazioni di sicurezza si tradurranno probabilmente in meno problemi con l’applicazione sviluppata. Meno tempi di inattività significa una migliore esperienza utente e un migliore ambiente di sviluppo;
- Migliori procedure di controllo: In Agile e altri metodi di sviluppo, i controlli di sicurezza avvengono verso la fine del processo di sviluppo. DevSecOps fornisce valutazioni più ponderate e fluide;
- Riduzione degli errori di configurazione: Implementando un’organizzazione DevSecOps scende l’incidenza degli errori di configurazione;
- Gestione proattiva delle vulnerabilità conosciute;
- Conformità agli standard: Le politiche per la conformità con gli standard appropriati sono automaticamente controllate e applicate;
- Automazione: Le procedure di sicurezza chiave, così come i compiti delle figure coinvolte, in DevSecOps sono automatizzate;
- Migliore sicurezza in ambienti cloud: DevSecOps è meno legato a specifiche soluzioni basate sull’hardware. Piuttosto, si concentra su pratiche di sicurezza ben definite che possono essere automatizzate in particolare negli ambienti cloud;
- Migliore comunicazione tra i team: La collaborazione tra team significa meno casi di perdita di informazioni chiave con riferimento alla sicurezza.
Conclusioni
La velocità del business sta sollecitando cambiamenti radicali nel modo in cui si affrontano lo sviluppo del software, la gestione delle Operations IT e la Security. Vi è infatti l’esigenza di accorciare i tempi della messa in produzione e di aggiornamento continuo del software, un problema affrontabile solo con la piena sinergia dei processi coinvolti, attraverso metodi come DevSecOps.
In fondo non si tratta di una scelta. Lo scenario dettato dal mercato e dalle possibili minacce suggerisce un’inevitabile adesione al modello completo DevSecOps.
Se la vostra azienda costituisce un nuovo team di sviluppo, o qualora si costituisca una nuova azienda, la scelta più opportuna è sicuramente quella di aderire fin dall’inizio alla metodologia DevSecOps. In questo caso, il vantaggio competitivo nei confronti della concorrenza è determinante nel successo sul mercato.
Da ultimo sottolineo come il dimenticare di mettere in atto, sin dalla progettazione e prima che inizi il trattamento dei dati, tutte le misure tecniche ed organizzative necessarie ad attuare i principi di protezione dei dati, si configuri essenzialmente come un’inosservanza dell’art. 25 del GDPR.
Autore: David Licursi