DevSecOps che significato ha per il business? Comprendere la definizione aiuta a capire gli obiettivi: il termine DevSecOps nasce dall’unione di DEVelopment (l’attività di programmazione che include tutte le funzioni di sviluppo), SECurity (l’attività di messa in sicurezza dell’applicazione a livello funzionale e operativo) e OPerationS (l’attività di messa in produzione di un’applicazione, generalmente definita come operatività informatica).
Si tratta dunque dell’estensione di DevOps, il modello più adottato dai dipartimenti IT per ottimizzare e accelerare il ciclo di vita del software, mettendo insieme sviluppo e operation, o ora aggiungendo anche la security.
Infatti, la gran parte dei bug che mettono a rischio la cybersecurity delle applicazioni in produzione ha origine nella progettazione iniziale, il che rende difficoltoso rilevarli e mitigarli nelle fasi successive. Sostituire il modello a cascata con uno ciclico permette di anticipare la risoluzione dei problemi, ridurre il time-to-market e i relativi costi di correzione a valle.
Perché parlare di DevSecOps alle linee di business?
Perché l’evoluzione digitale oggi impone ai manager di occuparsi di tematiche ad alto tasso tecnologico: capire terminologie e funzionalità ICT aiuta a orientare meglio decisioni e strategie. A questo proposito va ricordato anche che c’è stato un tempo in cui gli IT manager hanno fatto il primo passo, quando hanno dovuto imparare il linguaggio del business per rispondere in maniera più adeguata alla domanda crescente di prodotti e servizi che arrivavano dalle varie divisioni aziendali. Oggi è arrivato il momento in cui sono le LOB a dover imparare il linguaggio dell’IT per innescare una collaborazione virtuosa, orientata all’innovazione. Conoscere i tech topic, infatti, non è più solo roba da nerd: è una questione culturale. Per essere davvero agile un’azienda deve poter contare su infrastrutture adeguate ma anche su risorse più preparate a cogliere le dinamiche dello sviluppo. Imparare a conoscere il significato di molte tecnologie favorisce una cultura illuminata da cui potrà dipendere il successo (o l’insuccesso) aziendale.
Come riconoscere il valore della programmazione
Perché portare all’attenzione delle LOB il tema del DevSecOps? La risposta è semplice: perché dalla qualità e dalla sicurezza delle applicazioni dipende il successo del business. I clienti non solo si aspettano di interagire senza problemi con i servizi aziendali ma vogliono poterlo fare, operando su più canali e su più dispostivi senza problemi. Una della principali caratteristiche della digital transformation, infatti, è garantire agli utenti/clienti un’esperienza funzionale, multimediale e omnicanale. Il che significa garantire applicazioni di qualità. Questo vale sia a livello di front end, ad esempio nel caso delle app o dei browser mobile fruiti dai clienti finali, sia a livello di back end, ovvero nell’ambito di tutti i servizi applicativi, legati al funzionamento delle infrastrutture di supporto all’operatività aziendale.
Come funziona un processo DevSecOps
Il flusso di lavoro tipico di un approccio DevSecOps prevede che il software venga sviluppato utilizzando un sistema di controllo della versione a livello funzionale e poi analizzato da un altro responsabile del team preposto a individuare eventuali punti deboli della sicurezza, verificando la qualità del codice e i possibili bug.
L’applicazione viene poi rilasciata e testata utilizzando dei tool automatizzati. Se l’applicazione supera i test, viene spostata nell’ambiente di produzione, dove viene monitorata da applicazioni che presidiano il monitoraggio della sicurezza.
Quando i controlli di sicurezza vengono integrati nella pipeline di sviluppo in modo che il software venga testato in modo continuo e automatizzato si va ad ottimizzare il flusso CI/CD (Continuous Integration/Continuos Delivery). Questo significa che l’approccio DevSecOps fa sì che:
- Le modifiche al software possano essere implementate rapidamente e in modo sicuro, senza interrompere il flusso di lavoro dei team di sviluppo e di operazioni
- Le aziende possono identificare e risolvere i problemi di sicurezza in modo tempestivo, riducendo il rischio di violazioni della sicurezza e di perdita di dati sensibili
Adattarsi ai vecchi metodi di sicurezza
L’implementazione della sicurezza nelle pipeline CI/CD può essere complicata. In generale, la sicurezza è sempre stata pensata come qualcosa che arriva alla fine del ciclo di sviluppo.
Affinché l’adozione dell’approccio DevSecOps abbia successo, i team non possono aspettarsi che i processi e gli strumenti DevOps si adattino ai vecchi metodi di sicurezza.
Integrando i controlli di sicurezza nei flussi di lavoro DevOps, le organizzazioni possono sfruttare appieno il potenziale di CI/CD. Quando le aziende implementano tecnologie di sicurezza o controllo degli accessi fin dall’inizio, assicurano che tali controlli siano in linea con un flusso CI/CD.
Dietro alle quinte della filosofia DevOps
Le organizzazioni non devono cadere nell’errore di aspettarsi che i metodi di sicurezza usati in passato si adattino automaticamente e funzionalmente ai processi DevOps.
Va ribadito come anche il DevSecOps richieda un importante cambio culturale all’interno delle organizzazioni.
In sintesi, il DevOps è una filosofia che:
- Promuove una migliore comunicazione e collaborazione tra i vari team all’interno ma anche all’esterno di un’organizzazione
- Descrive l’adozione di sviluppo software iterativo, automazione e distribuzione e manutenzione dell’infrastruttura programmabile
I cambiamenti culturali, come la creazione di fiducia e coesione tra sviluppatori e amministratori di sistema e l’allineamento dei progetti tecnologici ai requisiti aziendali, con l’aggiunta della componente di Security abilitano un nuovo livello di integrazione e specializzazione dei team che devono lavorare insieme anziché in modo indipendente e clusterizzato. Il che non è affatto scontato, in quanto i team di sicurezza generalmente non lavorano insieme ai programmatori.
Per questo deve essere chiaro a tutti che portare in azienda un approccio DevSecOps significa utilizzare dell’automazione e dei processi continui per stabilire cicli collaborativi di sviluppo armonizzando il lavoro di più professionisti.
Quali sono le competenze DevSecOps
I team DevSecOps triangolano competenze tecniche diverse:
- Professionisti dello sviluppo e dell’IT
- Esperti della metodologia DevOps
- Professionisti della sicurezza informatica, costantemente aggiornati sulle minacce e i trend cyber
Tra le principali competenze di cui hanno bisogno i team DevSecOps:
- Comprensione dei principi e della cultura DevOps
- Conoscenza dei linguaggi di programmazione, quali Bash, Go, Python e C
- Spiccate capacità comunicative e di lavoro di gruppo
- Comprensione delle tecniche di valutazione del rischio e modellazione delle minacce
- Conoscenza aggiornata delle minacce alla sicurezza informatica, del software e delle migliori pratiche
- Comprensione degli strumenti DevOps e DevSecOps come Kubernetes, Ansible, Chef, Puppet e Aqua
I vantaggi e le sfide di un approccio DevSecOps
Riassumendo, l’adozione di DevSecOps può portare numerosi benefici alle aziende, tra cui un miglioramento della qualità e della sicurezza del software, una consegna più rapida, una maggiore comunicazione e collaborazione tra i team, un ripristino più rapido dagli incidenti di sicurezza. Tra le sfide da affrontare, la selezione e integrazione tra i team ma anche degli strumenti più adatti.
Abituati ai loro processi consolidati di sviluppo, i team Dev, Sec e Ops tradizionalmente hanno sempre lavorato separatamente, utilizzando metriche e strumenti diversi.
Il management deve prepararsi a gestire il cambio di marcia di un approccio DevSecOps anticipando i possibili disallineamenti che possono esserci tra i vari professionisti rispetto a dove integrare gli strumenti.
Obiettivamente, non è facile far convergere gli strumenti utilizzati dai vari reparti per integrarli su un’unica piattaforma.
DevSecOps come chiave strategica di uno sviluppo agile
Fornire nuovo valore ai clienti in modo rapido e sicuro richiede nuove tecnologie e nuovi modi di lavorare. Negli ambienti statici tradizionali, i team applicativi possono fare affidamento su metriche di base come l’uptime e l’utilizzo della CPU per valutare lo stato di salute di un’applicazione. Negli ambienti più dinamici e innovativi, questa attività si declina in una complessa rete di servizi che tengono conto anche dell’esperienza lato utente. Comprendere la salute dell’applicazione richiede un approccio olistico che include i risultati di business generati dall’applicazione. La velocità di rilascio da cui dipende il time to market del business, dunque, non è e non deve essere l’unica condizione della programmazione: una chiave di valore è la qualità. La digital transformation, infatti, è un percorso evolutivo che impone alle applicazioni di essere essere sempre aggiornate ma anche sempre protette. Solo così si garantisce la soddisfazione e la fidelizzazione degli utenti. Questo significa che non è più possibile prevedere un’unica fase di testing all’interno del ciclo di sviluppo del software. Ed ecco perché il DevSecOps fa la differenza.
Testing, sicurezza e metriche: le cose da sapere
Secondo Gartner, oltre la metà delle iniziative DevOps aziendali incorporano nella personalizzazione del codice i test per la sicurezza delle applicazioni (AST – Application Security Testing).
Il mercato dell’AST è in forte crescita. Include prodotti e servizi progettati per analizzare e testare le applicazioni per le vulnerabilità della sicurezza. Quello che i manager devono sapere è che il mondo della programmazione non è univoco e universale: nell’elaborazione del codice, infatti, ogni programmatore segue un proprio stile e un proprio modello di sviluppo. Per aiutare a fare chiarezza gli analisti di Gartner hanno segmentato il mercato dell’AST in 4 categorie: SAST, DAST, IAST e MAST. Di seguito che cosa significano.
SAST – Static Application Security Testing
La tecnologia AST statica (SAST) rileva la vulnerabilità di un’applicazione analizzando il codice sorgente, il codice bytecode o il codice binario durante tutte le fasi di programmazione e / o i test durante il ciclo di vita del software (SLC – Software Lifecycle Management).
DAST – Dynamic Application Security Testing
La tecnologia AST dinamica (DAST) analizza in modo dinamico il funzionamento delle applicazioni sia durante le fasi di test che durante le fasi operative. L’attività prevede simulazioni di attacchi contro l’applicazione (soprattutto nel caso di applicazioni e servizi abilitati al web), analizzando anche le reazioni dell’applicazione in modo da determinare nel dettaglio il livello di vulnerabilità.
IAST – Interactive Application Security Testing
La tecnologia AST (IAST) è interattiva, combinando elementi del SAST e del DAST contemporaneamente. In genere viene implementata come agente, nel momento in cui un programma viene eseguito in fase di test (questa fase è detta fase di runtime NdR), consentendo così di osservare operazioni o attacchi che aiutano a identificare le possibili vulnerabilità applicative.
MAST – Mobile Application Security Testing
Il Mobile AST esegue analisi SAST, DAST, IAST e / o comportamentali su codice byte o binario per identificare le vulnerabilità nelle applicazioni mobili.
DevSecOps: sviluppare informati
Riassumendo, l’unico modo che le aziende hanno di ottenere applicazioni di qualità è di continuare a testare il codice. I controlli non possono più essere prerogativa dei soli addetti QA (Quality Assurance), bensì anche gli sviluppatori devono avere la possibilità di effettuare i loro test sul codice in fase di produzione, in modo da verificare quanto del loro codice è protetto e sicuro. Seguendo una strategia DevSecOps, le organizzazioni possono accrescere notevolmente la loro agilità in ambito digitale, riducendo allo stesso tempo rischi e costi derivanti dalle nuove tecnologie.
Articolo originariamente pubblicato il 09 Dic 2020