Negli ultimi anni si è fatta largo tra le aziende la tendenza ad abbracciare un modello organizzativo che integri al suo interno
test continui di sicurezza, in ogni fase del processo di sviluppo del software.
Acronimo dei termini
development,
security e
operations, con
DevSecOps ci si riferisce alla possibilità di sfruttare l'automazione, più comunemente l'infrastruttura come codice (IaC), per creare un
ciclo di vita di sviluppo software che vede nella security uno dei suoi capisaldi, senza interrompere mai il lavoro di creazione e controllo.
DevSecOps mira ad applicare sicurezza, scansione, monitoraggio e correzione in tutto il ciclo progettuale. Tuttavia perseguire questa direzione metodologica richiede un cambio di passo decisivo, con vantaggi concreti che vanno dalla riduzione dei costi di sicurezza e conformità al consentire alle organizzazioni di rilasciare software sicuri più rapidamente.
Infatti partendo, sin dall’inizio, con il considerare i temi della sicurezza (invece che alla fine del processo di sviluppo),
DevSecOps semplifica di fatto la risposta alle criticità, appena si presentano. Ciò rende la correzione dei bug una procedura più semplice, veloce ed economica, visto che le falle vengono risolte prima di aggiungere ulteriori elementi al prodotto in fase di sviluppo. Questa pratica sposta la sicurezza delle applicazioni e dell'infrastruttura dal compito esclusivo del dipartimento di sicurezza a una responsabilità condivisa dai team di sviluppo, sicurezza e operazioni IT.
Strumenti
Per implementare tutte queste pratiche, affinché abbiano un impatto reale sull’attività, c’è bisogno di una serie di strumenti di base
- Test statico della sicurezza delle applicazioni (SAST): questi strumenti scansionano il codice personalizzato alla ricerca di eventuali errori, che potrebbero generare vulnerabilità sfruttabili.
- Analisi della composizione del software (SCA): ricerca di bug noti nel codice open source o di terze parti. Possono essere facilmente integrati nei processi di creazione per una mitigazione più rapida.
- Test di sicurezza delle applicazioni interattive (IAST): può essere utilizzato per esaminare il comportamento e il flusso di dati del runtime delle applicazioni Web.
- Test dinamico della sicurezza delle applicazioni (DAST): questo tipo di test riproduce il modo in cui un criminale potrebbe interagire con l’applicazione in fase di sviluppo.
Le pratiche DevSecOps aiutano i team di sviluppo a fornire
codice migliore, in un periodo di
tempo più breve. L'implementazione di questo modello può favorire il consolidamento di una nuova mentalità in azienda, secondo cui tutti sono responsabili della sicurezza di un prodotto con tutti i vantaggi che conseguono.
Rapidità
Effettuare una valutazione della sicurezza solo alla fine del processo di sviluppo può portare a enormi ritardi nella consegna, poiché potrebbe essere necessario ripetere alcune fasi del ciclo di vita per correggere i bug riscontrati alla fine. Quindi correggere le vulnerabilità man mano che emergono, senza interrompere il ciclo di sviluppo, può far risparmiare molto tempo.
Riduzione dei costi
La sicurezza integrata elimina le revisioni e le ricostruzioni ridondanti, quindi è più conveniente. La correzione del codice già creato può essere molto costosa per chi si occupa di sviluppo, con rallentamenti sia in termini di tempo che di costi, per la necessità di ripartire quasi da zero, a ogni criticità rilevata.
Migliore risposta agli incidenti
Avere una migliore collaborazione tra reparti come sviluppo, sicurezza e operazioni aiuta un'organizzazione a ottenere una risposta più rapida e forte quando si verificano problemi. Visto che l'applicazione delle patch di vulnerabilità è molto più agevole con la cooperazione tra team incoraggiata da DevSecOps, i reparti IT avranno un carico di lavoro più leggero quindi più gestibile.
Patch di vulnerabilità più veloce
Le vulnerabilità e le Common Vulnerabilities and Exposures (CVE) vengono identificate più rapidamente e corrette nel più breve tempo possibile grazie all'automazione. Questo tipo di comportamento lascia meno opportunità ai criminali informatici di trarre vantaggio da un errore commesso durante lo sviluppo del software.
Test automatizzati
I test di sicurezza possono essere eseguiti automaticamente da un'organizzazione, in base alle sue esigenze, e hanno l’opportunità di aiutare lo sviluppo del prodotto, con processi quali l'analisi statica e dinamica. Molti dei test, delle attività e dei servizi di sicurezza possono inoltre essere integrati con altri processi automatizzati, così da creare un flusso aziendale coerente e lineare, che metta la security al centro.
Un processo malleabile
Man mano che un’organizzazione cambia, cambiano anche le sue esigenze di sicurezza. Fortunatamente, DevSecOps è un processo malleabile che può adattarsi a nuove dinamiche. Un obiettivo che può essere raggiunto, ancora una volta, tramite automazione, ma anche con la gestione intelligente e centralizzata delle configurazioni, con l’orchestrazione e l’uso dei container.
Best practice DevSecOps
In sintesi, le pratiche DevSecOps non dovrebbero pesare sui processi interni, ma essere una naturale incorporazione della sicurezza durante tutto il ciclo di sviluppo di una nuova applicazione. Per farlo, è sempre utile seguire alcune linee guida. Un punto, già rimarcato, è che i controlli di sicurezza dovrebbero spostarsi all'inizio del processo di sviluppo, per trovare i bug il prima possibile e correggerli.
Ne consegue che
la sicurezza non è più il “pain" del reparto IT bensì tutti coloro che sono coinvolti nel processo di creazione del software beneficiano delle pratiche di “cyber hygiene”.
Inoltre DevSecOps riguarda anche la necessità di avere una
buona
comunicazione interna. Solo se la proprietà di ogni procedura di sicurezza è nota, il processo di sviluppo può andare avanti come una macchina ben oliata in cui ognuno si assume la responsabilità del proprio lavoro. Infine, la metodologia può tornare utile anche per avere una sorta di scenario di base su come si svolgono i processi di sicurezza dell’organizzazione; sapere dove un flusso si blocca permette di ottimizzare il percorso di sviluppo, allentando le misure di sicurezza o semplicemente rendendole più fluide, senza abbassare la guardia.
DevSecOps o DevOps?
Se DevSecOps significa portare la sicurezza un passo avanti rispetto a DevOps,
i due termini non vanno confusi e nemmeno considerati contrari. DevOps si concentra sulla cooperazione dei team Dev e Operations, con il fine di creare attività e obiettivi condivisi. In questo modo le operations possono organizzare in maniera più precisa la consegna del prodotto, ricevendo informazioni costanti dal gruppo di sviluppo.
DevSecOps prende come modello il DevOps ma ne espande il coordinamento tra i team, per includere anche i temi della sicurezza nel ciclo di creazione del software. In altre parole,
DevOps dà la priorità alla consegna rapida del software, mentre
DevSecOps punta sulla sicurezza che, quando implementata correttamente, porta con sé già una riduzione dei tempi di attesa, sia in fase di sviluppo che di finalizzazione e rilascio degli aggiornamenti.
La tua organizzazione sta andando nella direzione dell’application modernization?
Scopri l’offerta Aruba Enterprise per il cloud native