DevSecOps: Di cosa si tratta?

DevSecOps: Di cosa si tratta?

Stili di leadership: il leader coercitivo
Stili di leadership: il leader coercitivo
10 Settembre 2021
Onboarding: Il primo giorno di lavoro che vorrei…
Onboarding: Il primo giorno di lavoro che vorrei…
29 Settembre 2021
DevSecOps: Di cosa si tratta?

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.

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. 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:

  • Assicurare il buy-in della gestione e l’impegno per una roadmap realistica per iterare e migliorare la sicurezza in tutta l’organizzazione;
  • Stabilire una collaborazione tra team considerando la sicurezza incorporata nel ciclo di vita dello sviluppo del software;
  • Creare una maggiore visibilità sulla sicurezza dell’infrastruttura e, in definitiva, creare una postura di sicurezza più forte.

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.

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 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 sfida

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. Ci conforta il fatto che, negli ultimi anni, il tempo medio per sfruttare una vulnerabilità nota è diminuito da 45 giorni a 3.

I vantaggi di DevSecOps nello sviluppo

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:

  • 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.

Altre ragioni per implementare SecOps sono:

  • Meno problemi di sicurezza nel cloud: Le operazioni SecOps 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. SecOps fornisce valutazioni più ponderate e fluide.
  • Riduzione degli errori di configurazione: Implementando un’organizzazione SecOps 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 SecOps sono automatizzate.
  • Migliore sicurezza in ambienti cloud: SecOps è 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;

Ruoli chiave di un team DevSecOps

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.

Componenti di base di DevSecOps

Oltre alle procedure di sviluppo a cui la maggior parte dei team è abituata, i maggiori cambiamenti apportati da DevOps sono:

  • Analisi preventiva: In molte organizzazioni, grandi segmenti di codice o interi programmi vengono controllati per problemi di sicurezza. In DevSecOps, segmenti di codice più piccoli sono controllati di routine.
  • Maggiore trasparenza: I tre componenti di DevSecOps (sviluppo, sicurezza e operazioni) sono strettamente legati insieme con una maggiore collaborazione e una maggiore trasparenza.
  • Miglioramenti della sicurezza: Mentre DevOps fornisce miglioramenti incrementali allo sviluppo, DevSecOps dovrebbe anche migliorare costantemente la sicurezza insieme alla programmazione e agli aspetti operativi.
  • Consapevolezza delle minacce: I team di sicurezza sono ben consapevoli delle minacce, mentre il resto del team sarà probabilmente meno affine a tali problematiche. La formazione sarà necessaria per garantire che tutti condividano lo stesso livello di comprensione.

La tecnologia e il cambiamento culturale per l’attuazione di DevSecOps

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.

Condividi su:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

EnglishFrenchGermanItalianRussianSpanish