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.
DevSecOps, come abbiamo visto in DevOps, SecOps e DevSecOps: Di cosa si tratta?, nasce per facilitare la collaborazione tra la sicurezza IT e i team operativi ed integrare la tecnologia ed i processi che utilizzano per mantenere sicuri i sistemi e i dati. Il tutto nel tentativo di ridurre il rischio e migliorare l’agilità del business.
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. DevSecOps è molto simile al sistema di sviluppo del software noto come DevOps. DevOps è la nuova generazione di quello che è noto come il metodo di sviluppo software Agile. Nell’ultimo decennio, DevOps e Agile sono stati utilizzati per gestire l’accelerazione del versioning del software e migliorare l’output di molti team di programmazione.
Gli obiettivi di un programma DevSecOps sono, ad alto livello:
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.
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 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.
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?
È 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.
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.
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. Ci conforta il fatto che, negli ultimi anni, il tempo medio per sfruttare una vulnerabilità nota è diminuito da 45 giorni a 3.
Un recente studio eseguito da Enterprise Management Associates (EMA)1, ha identificato tre principali vantaggi che derivano dall’incorporazione di DevSecOps nel processo di sviluppo:
Altre ragioni per implementare SecOps sono:
La differenza più evidente tra DevSecOps e altre filosofie di programmazione (ad esempio, Agile, DevOps) è che ogni membro del ciclo di sviluppo è consapevole e responsabile della sicurezza. Qualunque membro dell’organizzazione può segnalare un’e-mail sospetta, qualunque tecnico di supporto può notare un tentativo di SQL injection.
I più coinvolti da un passaggio al metodo DevSecOps saranno le risorse coinvolte nello sviluppo e nella sicurezza. I programmatori e il personale di sicurezza passeranno infatti dal lavorare in gran parte in modo indipendente, a collaborare piuttosto strettamente con gli altri membri del team in tutte le fasi dello sviluppo. Distribuire le responsabilità della sicurezza permette ai team di sicurezza di scalare.
Tutti nell’azienda dovrebbero avere una comprensione di base di come il loro lavoro impatta sulla sicurezza. Tuttavia, chiunque abbia un qualsiasi ruolo, grande o piccolo che sia, nello sviluppo del software dovrebbe essere incluso in DevSecOps.
Oltre alle procedure di sviluppo a cui la maggior parte dei team è abituata, i maggiori cambiamenti apportati da DevOps sono:
Le persone sono importanti, ma i cambiamenti culturali non avvengono (in DevSecOps 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.
Allo stesso modo, una volta che i team di sicurezza ed operativi hanno deciso di voler implementare SecOps, devono trovare o costruire strumenti che consentano loro di farlo.
I team DevSecOps dovrebbero cercare soluzioni tecnologiche che permettano loro di definire politiche di sicurezza che possono essere applicate automaticamente e globalmente ad ogni nuova risorsa IT fornita.
Queste politiche dovrebbero essere abbastanza rigide da proteggere l’azienda dalle minacce e garantire la corretta conformità, ma abbastanza dinamiche da permettere all’innovazione aziendale di continuare.
I team DevSecOps devono anche standardizzare il monitoraggio degli incidenti di sicurezza in un formato che sia attivabile.
In un mondo ideale, questo significa che la scansione, la prioritizzazione ed il rimedio avvengono su una singola piattaforma. Come minimo, i dati degli strumenti di sicurezza e delle operazioni devono confluire in un sistema di registrazione. Questo permetterà ai team di ridurre il tempo di risoluzione e garantire che, in primo luogo, una minaccia identificata è legittima e, in secondo luogo, è stata effettivamente risolta secondo gli standard del team di sicurezza.
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.
Ciò richiede che i team si coordinino strettamente e mettano in atto controlli di accesso basati sui ruoli, che consentano alla sicurezza di identificare i problemi e applicare rapidamente le correzioni approvate, dando al tempo stesso alle operazioni la supervisione e il controllo per testare e garantire che le correzioni di sicurezza proposte non ostacolino le operazioni aziendali critiche.