Il software gestisce le nostre attività, alimenta operazioni, transazioni, comunicazioni: praticamente ogni aspetto dell’organizzazione digitale. Ne consegue che garantire la sicurezza delle applicazioni e dei sistemi operativi è una priorità importante per i team di sviluppo e sicurezza. È qui che DevSecOps gioca un ruolo chiave.

Sviluppo, sicurezza e operazioni

DevSecOps è l’abbreviazione di sviluppo, sicurezza e operazioni. Si tratta di un’estensione del modello DevOps per lo sviluppo del software e comporta l’applicazione di misure di sicurezza durante tutto il ciclo di vita dello sviluppo del software (SDLC). DevSecOps richiede che tutti coloro che sono coinvolti nel processo di sviluppo siano consapevoli della necessità che ci sia un alto livello di sicurezza. Come modello, DevSecOps comprende una serie di procedure per aumentare la collaborazione tra i team di sicurezza, sviluppo e operazioni, con l’obiettivo finale di rendere il software più sicuro.

Esempi di procedure DevSecOps includono revisioni della progettazione della sicurezza, scansione del codice per vulnerabilità della sicurezza e correzione di bug che presentano minacce legittime. Introducendo la protezione nel ciclo SDLC, DevSecOps garantisce che l’organizzazione prenda sul serio la sicurezza piuttosto che trattarla come un elemento secondario. Inoltre, parte dell’attuazione del modello DevSecOps include l’implementazione dei necessari cambiamenti di processo, culturali e tecnologici.

Perché è importante

Le vulnerabilità del software possono diventare punti di ingresso per i criminali informatici per lanciare attacchi che possono colpire intere supply chain. Un esempio recente è una vulnerabilità scoperta in Apache Log4j alla fine del 2021. Log4j, un pacchetto Java che si trova nei sistemi di registrazione Java, semplifica la registrazione dei dati da parte delle applicazioni Java. È ampiamente usato e altamente pervasivo. Alla fine dello scorso anno, gli ingegneri hanno scoperto un difetto di esecuzione del codice remoto in Log4j che consentiva agli hacker di assumere il controllo dei sistemi e dei loro dati. Il bug ha messo a rischio milioni di dispositivi e, data la sua pervasività, si tratta di una minaccia seria.

Log4j è però solo un esempio. Dato che le aziende digitali dipendono fortemente dalle applicazioni, garantire la sicurezza del software è estremamente importante e DevSecOps è un modello nato proprio per questo scopo. Jim Mercer, direttore della ricerca, DevOps e DevSecOps presso International Data Corp (IDC), osserva che la sicurezza delle applicazioni e la sicurezza della supply chain del software stanno ricevendo molta attenzione a causa di vulnerabilità di alto profilo come Log4j, La società di ricerca prevede una crescita a due cifre del mercato degli strumenti DevSecOps fino al 2026.

Vantaggi di DevSecOps

Le organizzazioni possono trarre vantaggio in vari modi dall’adozione del modello DevSecOps. Forse il più ovvio è una maggiore sicurezza del software. Mettendo in atto controlli di sicurezza nelle prime fasi di sviluppo e continuando a concentrarsi sulla sicurezza fino alla produzione, i team di sviluppo possono fornire prodotti più sicuri. Un altro vantaggio è la maggiore collaborazione tra i team di sviluppo e sicurezza. Questi team a volte possono essere in disaccordo a causa dei loro diversi obiettivi e l’attrito che ne deriva può influire sulla produttività. Lavorare insieme verso obiettivi collaborativi è un modo per mitigare l’attrito. Per gli sviluppatori, c’è anche l’opportunità di acquisire nuove conoscenze relative alla sicurezza informatica.

Un altro vantaggio è la consegna più rapida del software. DevSecOps incoraggia infatti i team a valutare, rivedere e testare il codice in ogni fase del processo di sviluppo, piuttosto che rimandare questa parte del ciclo di sviluppo a un secondo momento. I test spesso aiutano i team a evitare revisioni complesse e dispendiose in termini di tempo per correggere le vulnerabilità di sicurezza.

DevSecOps

DevSecOps sostituisce DevOps?

DevSecOps non è tanto un sostituto di DevOps quanto un’evoluzione di quel modello. DevSecOps, in pratica, evolve i concetti fondamentali di DevOps ponendo l’accento sulla sicurezza. DevOps è un approccio allo sviluppo software che evidenzia la collaborazione, la comunicazione e la stretta integrazione tra lo sviluppo software di un’organizzazione e le funzioni operative IT. In DevOps, l’obiettivo è produrre software in modo più rapido ed efficiente. Come suggerisce il nome, DevSecOps aggiunge un livello di sicurezza ai processi di sviluppo e operazioni inclusi in DevOps.

C’è comunque una notevole sovrapposizione tra i due modelli: entrambi, ad esempio, enfatizzano l’automazione e la collaborazione in team. Ma nel caso di DevSecOps, la collaborazione è tra professionisti dello sviluppo e della sicurezza, mentre in DevOps è tra sviluppo e operazioni.

Strumenti DevSecOps

Le organizzazioni possono distribuire una serie di strumenti tecnologici per supportare i loro programmi DevSecOps. Questi strumenti consentono di ridurre al minimo i rischi nelle pipeline di sviluppo software senza rallentare la produzione. Lo fanno individuando e correggendo le vulnerabilità attraverso test di sicurezza continui. Gli strumenti DevSecOps consentono inoltre ai team di sicurezza di gestire in modo efficiente la sicurezza dei progetti di sviluppo senza dover rivedere e approvare manualmente ogni versione.

Un esempio di strumento DevSecOps è lo scanner di vulnerabilità. Questi strumenti eseguono automaticamente la scansione del software nelle varie fasi di sviluppo per cercare vulnerabilità note. La scansione delle vulnerabilità open source, o analisi della composizione del software (SCA), identifica e confronta i componenti open source del software con database di vulnerabilità, avvisi dei fornitori di software e altre fonti di sicurezza per rilevare difetti.

Un altro strumento DevSecOps è il test di sicurezza delle applicazioni statiche (SAST), che consente agli sviluppatori di eseguire la scansione del codice sorgente per cercare codice debole o non sicuro. Questo tipo di test può identificare possibili problemi di sicurezza che devono essere affrontati. L’integrazione di SAST in DevSecOps aiuta a garantire che i componenti vulnerabili vengano riparati prima che si spostino lungo le varie fasi della pipeline.

Come diventare un ingegnere DevSecOps

Uno dei ruoli chiave in questo ambito è l’ingegnere DevSecOps. Dice.com rileva che la necessità di codice sicuro è alla base della domanda per questi professionisti. Una delle competenze più importanti per un ingegnere DevSecOps è la capacità di testare le applicazioni per i difetti di sicurezza. Gli ingegneri DevSecOps devono anche conoscere a fondo i vari strumenti DevSecOps.

Altre possibili competenze necessarie includono la conoscenza dei principi DevOps e la comprensione dei linguaggi di programmazione più diffusi come Java, Ruby, Perl, Python e PHP. Inoltre, questi ingegneri dovrebbero rimanere aggiornati sulle ultime minacce alla sicurezza informatica, oltre a disporre di funzionalità di analisi per determinare perché il codice funziona o non funziona e quali vulnerabilità potrebbero essere emerse durante il processo di sviluppo.

Gli sviluppatori che lavorano nella sicurezza del software possono aumentare le loro conoscenze e possibilmente avanzare nella loro carriera ottenendo una certificazione DevSecOps. Ad esempio, DevSecOps Foundation offre programmi di certificazione tramite il DevOps Institute che trattano argomenti quali il motivo per cui DevSecOps è necessario e la cultura e la gestione DevSecOps, considerazioni generali sulla sicurezza, gestione delle identità e degli accessi, sicurezza delle applicazioni e sicurezza operativa. Il programma prepara le persone per posizioni di project manager, ingegnere dell’affidabilità del sito, ingegnere DevOps, ingegnere del software, personale di manutenzione e supporto, responsabile del rilascio, scrum master e altro ancora.