DevSecOps - forma abbreviata dei termini inglesi development, security e operations (sviluppo, sicurezza e operazioni) - automatizza l'integrazione della sicurezza in ogni fase del ciclo di vita dello sviluppo del software, dalla progettazione iniziale all'integrazione, test, implementazione e fornitura del software.
DevSecOps rappresenta un'evoluzione naturale e necessaria nel modo in cui le organizzazioni di sviluppo si approcciano alla sicurezza. In passato, la sicurezza veniva "aggiunta in un secondo momento" al software alla fine del ciclo di sviluppo (quasi fosse un aspetto secondario) da un team di sicurezza separato e veniva testato da un team di controllo qualità (quality assurance, QA) separato.
Ciò era gestibile quando gli aggiornamenti software venivano rilasciati solo una o due volte all'anno. Con l'adozione però da parte degli sviluppatori di software di prassi Agile e DevOps , con l'obiettivo di ridurre i cicli di sviluppo del software a settimane o anche a giorni, il tradizionale approccio alla sicurezza come un qualcosa da "aggiungere in un secondo momento" ha creato un collo di bottiglia inaccettabile.
DevSecOps integra senza soluzione di continuità la sicurezza delle applicazioni e delle infrastrutture negli strumenti e nei processi Agile e DevOps. Si occupa dei problemi di sicurezza man mano che si presentano, quando sono più facili, veloci ed economici da correggere (e prima che vengano messi in produzione). Inoltre, DevSecOps rende la sicurezza delle applicazioni e delle infrastrutture una responsabilità condivisa dei team di sviluppo, sicurezza e operazioni IT, piuttosto che l'esclusiva responsabilità di un silos di sicurezza. Consente "software, più sicuro, prima" - il motto di DevSecOps - automatizzando la fornitura di software sicuro senza rallentare il ciclo di sviluppo del software.
I due principali vantaggi di DevSecOps sono la velocità e la sicurezza. I team di sviluppo forniscono codice migliore e più sicuro in tempi più rapidi e, pertanto, più economico.
"Lo scopo e l'intento di DevSecOps è quello di basarsi sulla mentalità che ognuno è responsabile della sicurezza con l'obiettivo di distribuire in modo sicuro le decisioni di sicurezza velocemente e su larga scala a coloro che detengono il più alto livello di contesto senza sacrificare la sicurezza richiesta", descrive Shannon Lietz, co-autrice del "Manifesto di DevSecOps".
Quando il software viene sviluppato in un ambiente non DevSecOps, i problemi di sicurezza possono portare a enormi ritardi. Correggere il codice e i problemi di sicurezza può risultare oneroso sia in termini di tempo che di costi. La fornitura rapida e sicura di DevSecOps consente un risparmio di tempi e costi riducendo al minimo la necessità di ripetere un processo per risolvere i problemi di sicurezza dopo che sono stati riscontrati.
Questo diventa più efficiente e conveniente dal momento che la sicurezza integrata riduce le revisioni duplicate e le riesecuzioni di build non necessarie, producendo così un codice più sicuro.
DevSecOps introduce i processi di sicurezza informatica dall'inizio del ciclo di sviluppo. Durante tutto il ciclo di sviluppo, il codice viene revisionato, verificato, analizzato e testato per rilevare eventuali problemi di sicurezza. Questi problemi vengono affrontati non appena vengono identificati. I problemi di sicurezza sono corretti prima che vengano introdotte ulteriori dipendenze. I problemi di sicurezza diventano meno costosi da correggere quando la tecnologia protettiva viene identificata e implementata presto nel ciclo.
Inoltre, una migliore collaborazione tra team di sviluppo, sicurezza e delle operazioni migliora la risposta di un'organizzazione a situazioni e problemi, quando si verificano. Le prassi DevSecOps riducono il tempo per applicare correzioni alle vulnerabilità e consentono ai team di sicurezza di potersi concentrare su attività a più elevato valore. Queste prassi, inoltre, garantiscono e semplificano la conformità, consentendo così di non dovere riadattare i progetti di sviluppo di applicazioni per la sicurezza.
Un vantaggio fondamentale di DevSecOps è la velocità con cui riesce a gestire le vulnerabilità di sicurezza appena rilevate. Poiché DevSecOps integra l'analisi e l'applicazione di patch alle vulnerabilità nel ciclo di release, la capacità di identificare e correggere le vulnerabilità ed esposizioni comuni (CVE, common vulnerabilites and exposures) è ridotta. Questo limita la finestra a disposizione di un attore di minacce per sfruttare le vulnerabilità nei sistemi di produzione rivolti al pubblico.
I test di sicurezza informatica possono essere integrati in una suite di test automatizzata per i team delle operazioni se un'organizzazione utilizza una pipeline CI/CD ( continuous integration/continuous delivery ) per fornire il proprio software.
L'automazione dei controlli di sicurezza dipende in larga misura dagli obiettivi del progetto e dell'organizzazione. I test automatizzati possono garantire che le dipendenze software incorporate siano ai livelli di patch appropriati e confermare che il software superi i test delle unità di sicurezza. Inoltre, sono in grado di verificare e proteggere il codice con un'analisi statica e dinamica prima che l'aggiornamento finale venga promosso in produzione.
Le organizzazioni e i loro profili di sicurezza maturano insieme. DevSecOps si presta a processi ripetibili e adattivi. Questo garantisce che la sicurezza venga applicata in modo coerente in tutto l'ambiente man mano che cambia e si adatta ai nuovi requisiti. Un'implementazione matura di DevSecOps includerà una solida automazione, la gestione della configurazione, l'orchestrazione, i container, un'infrastruttura immutabile e anche ambienti di calcolo serverless.
DevSecOps dovrebbe essere l'integrazione naturale dei controlli di sicurezza nei tuoi processi di sviluppo, di distribuzione e operativi.
"Shift left" è un mantra di DevSecOps: incoraggia gli ingegneri del software a spostare la sicurezza del processo (di distribuzione) DevOps da destra (alla fine) a sinistra (all'inizio). In un ambiente DevSecOps, la sicurezza è parte integrante del processo di sviluppo dall'inizio. Un'organizzazione che utilizza DevSecOps coinvolge i suoi architetti e ingegneri di sicurezza informatica come parte del team di sviluppo. Il loro lavoro consiste nel garantire che a ogni componente e ogni elemento di configurazione nello stack siano applicate le patch, che siano configurati in modo sicuro e che siano documentati.
L'approccio shift left consente al team DevSecOps di identificare i rischi e le esposizioni di sicurezza precocemente e garantisce che queste minacce alla sicurezza siano affrontate immediatamente. Il team di sviluppo non solo si occupa di realizzare il prodotto in modo efficiente ma anche di implementare la sicurezza durante il processo di creazione.
La sicurezza è una combinazione di progettazione e conformità. Le organizzazioni devono stringere una collaborazione tra gli ingegneri dello sviluppo, i team delle operazioni e i team di conformità per garantire che tutte le figure nell'organizzazione comprendano il profilo di sicurezza dell'azienda e rispettino gli stessi standard.
Tutte le figure coinvolte nel processo di distribuzione devono avere dimestichezza con i principi basilari della sicurezza delle applicazioni, la OWASP (Open Web Application Security Project) Top 10, i test di sicurezza delle applicazioni e altre prassi di ingegneria della sicurezza. Gli sviluppatori devono comprendere i modelli di threading, i controlli di conformità e avere una conoscenza operativa di come misurare i rischi e le esposizioni e di come implementare i controlli di sicurezza
Una buona leadership favorisce una buona cultura che promuova il cambiamento all'interno dell'organizzazione. È importante ed essenziale in DevSecOps comunicare le responsabilità della sicurezza dei processi e della proprietà dei prodotti. Solo così gli sviluppatori e gli ingegneri possono diventare proprietari di processi e assumersi la responsabilità per il loro lavoro.
I team delle operazioni di DevSecOps devono creare un sistema che funzioni per loro, utilizzando le tecnologie e i protocolli adatti al loro team e al progetto sul quale stanno lavorando. Consentendo loro di creare l'ambiente di flusso di lavoro che si adatta alle loro esigenze, i team diventano parti interessate coinvolte nell'esito del progetto.
Implementare la tracciabilità, la verificabilità e la visibilità in un processo DevSecOps consente di fornire insight più approfonditi e un ambiente più sicuro:
Esplora il portfolio IBM completo di funzionalità di integrazione, AI e automazione progettate per fornire il ROI di cui hai bisogno.
IBM® UrbanCode può velocizzare e ottimizzare la distribuzione del software per qualsiasi combinazione di applicazioni on-premise, cloud e mainframe.
Un potente software DevOps per creare, distribuire e gestire applicazioni sicure e native del cloud su più dispositivi, ambienti e cloud.
Accedi a un report esclusivo dell'analista Gartner e scopri in che modo l'AI per l'IT migliora i risultati di business, porta a un aumento dei ricavi e riduce sia i costi che i rischi per le organizzazioni.
Scopri in che modo l'AIOps (Artificial Intelligence for IT Operations) utilizza i dati e il machine learning per migliorare e automatizzare la gestione dei servizi IT.
Scarica l'infografica di IBM® Cloud che mostra i vantaggi dell'automazione basata sull'AI per le operazioni IT.