Metodologia DevSecOps: un cambiamento della cultura aziendale che mette al centro la sicurezza

ARTICOLO/ 27 FEBBRAIO 2024

 

Metodologia DevSecOps: un cambiamento della cultura aziendale che mette al centro la sicurezza

Contesto

In un'epoca in cui l'evoluzione tecnologica corre a ritmi vertiginosi e la scalabilità delle applicazioni cloud si intreccia con rischi di sicurezza sempre più articolati, si afferma un'innovativa metodologia di sviluppo software: il DevSecOps. Questa pratica, che armonizza lo sviluppo (Dev), la sicurezza (Sec) e le operazioni (Ops), si erge come soluzione vitale per fondere la sicurezza nel DNA del processo di sviluppo software, incentivando una collaborazione stretta tra i team di sviluppo, operazioni e sicurezza.

La rilevanza di questo approccio si manifesta con forza negli ambienti cloud, sia pubblici che privati, dove le caratteristiche dinamiche e modulabili delle infrastrutture esaltano potenziali rischi di sicurezza. Attraverso l'automazione e l'incorporazione della sicurezza sin dalle fasi preliminari dello sviluppo, il DevSecOps si propone come difesa contro le minacce, assicurando applicazioni più sicure e resilienti.
Ma facciamo un passo indietro per avere una overview più ampia.

La metodologia DevSecOps è nata come evoluzione naturale del movimento DevOps, che ha avuto origine a metà degli anni 2000.

Quando si parla di DevOps s’intende un approccio altamente collaborativo e interdisciplinare che si concentra sull'ottimizzazione di tutto il flusso di sviluppo. Offre una maggiore velocità nel time to market abbracciando una filosofia collaborativa che abbatte i tradizionali silos tra sviluppo e operazioni.

Timeline evoluzione della metodologia DevOps

Timeline evoluzione metodologia

La differenza tra metodologia DevOps e DevSecOps

Le principali differenze tra la filosofia DevOps e quella DevSecOps sono:

  • la prima rappresenta un cambiamento della cultura IT, dove il focus sta nell’agilità di tutto il processo di sviluppo garantito dalla collaborazione dei team di lavoro;
  • la seconda rappresenta l’integrazione della sicurezza all’interno di processi agili garantendo la continuità e la trasparenza nello sviluppo

Nel primo caso i team coinvolti sono due, mentre nel secondo caso i team coinvolti toccano più aree di un’organizzazione: quella di business, quella di sviluppo, quella delle operazioni, quella della sicurezza e quello della compliance.

Dalla ricerca del 2022 “Walking the Line: GitOps and Shift Left Security” emerge che la maggior parte degli attacchi subiti dalle organizzazioni è legata a configurazioni errate, vulnerabilità del software nel codice proprietario e open source, oppure a problemi di accesso. Si tratta di errori evitabili, se si hanno gli strumenti giusti per identificare e correggere i problemi, prima che le applicazioni vengano distribuite nel cloud. Questo passaggio, evidentemente necessario, non consiste solo in un test o in scansioni da effettuare prima della distribuzione. Perché sia efficace, è necessario fare qualcosa di più. Per esempio, affiancare gli sviluppatori, aiutandoli a porre rimedio ai problemi riscontrati nelle applicazioni in esecuzione.

Secondo la stessa ricerca, oltre metà delle organizzazioni (68%) sta preferendo prodotti di sicurezza incentrati sugli sviluppatori, per responsabilizzarli maggiormente. Una certa parte (31%) non ne riconosce pienamente l’importanza, ma solo l’1% non sta vagliando l’idea di passare a un approccio DevSecOps.

Identifichiamo 4 principali fattori che hanno contribuito alla nascita della metodologia DevSecOps:


  • l’aumento del numero e della gravità degli attacchi informatici
  • la maggiore consapevolezza dell'importanza della sicurezza del software
  • l’adozione di metodologie di sviluppo agili
  • la crescita del cloud computing e dei container

DevSecOps Manifesto


Come mostrato nella time line prima nel 2013 viene pubblicato il DevSecOps manifesto con le seguenti best practice, che poi andremo ad approfondire:

  1. Leaning in over Always Saying “No” (Guardare oltre a chi dice sempre NO)
  2. Data & Security Science over Fear, Uncertainty and Doubt (Scienza dei dati e della sicurezza invece di paura, incertezza e dubbio)
  3. Open Contribution & Collaboration over Security-Only Requirements (Contributo aperto e collaborazione invece che requisiti di sola sicurezza)
  4. Consumable Security Services with APIs over Mandated Security Controls & Paperwork (Servizi di sicurezza fruibili grazie alle API invece che controlli di sicurezza obbligatori e documentazione cartacea)
  5. Business Driven Security Scores over Rubber Stamp Security (Controlli di sicurezza automatizzati e orientati al business al posto delle approvazioni in blocco non automatizzate)
  6. Red & Blue Team Exploit Testing over Relying on Scans & Theoretical Vulnerabilities (Test di exploit del team Red & Blue invece di affidarsi a scansioni delle vulnerabilità teoriche)
  7. 24x7 Proactive Security Monitoring over Reacting after being Informed of an Incident (Monitoraggio della sicurezza proattivo 24 ore su 24, 7 giorni su 7, invece che la sola reattivita’ a fatto accaduto)
  8. Shared Threat Intelligence over Keeping Info to Ourselves (Informazioni sulle miancce condivise in maniera trasparente anziché obsolescenza di tali informazioni)
  9. Compliance Operations over Clipboards & Checklists (Analisi di conformità invece che documentazioni e liste di controllo non centralizzate

L'evoluzione della metodologia DevSecOps


Adottare il DevSecOps porta benefici concreti. L'automazione e l'integrazione di linee guida e controlli di sicurezza elevano la qualità delle applicazioni, minimizzando gli errori umani e accelerando l'identificazione e la correzione delle vulnerabilità.

La sinergia tra i team migliora non solo l'efficienza operativa ma anche la sicurezza complessiva, creando un clima lavorativo dove la sicurezza è un obiettivo comune.

Tuttavia, la transizione al DevSecOps presenta delle sfide, come la resistenza al cambiamento e il bisogno di formazione continuo per aggiornare le prassi e gli strumenti in uso.

Questo cambio di paradigma richiede un'evoluzione culturale in cui la sicurezza è integrata per valore e non percepita come un freno allo sviluppo.

Il DevSecOps secondo Var Group


Attraverso un ampio insieme di servizi e strumenti di sicurezza, Var Group esemplifica i principi del DevSecOps, enfatizzando un modello di sicurezza proattivo che si allinea con la filosofia "Shift Left". Un concetto centrale, infatti, nella strategia di sicurezza è il principio di minimo privilegio, che è in linea con l'approccio zero trust; questo significa che le politiche e le autorizzazioni sono progettate per garantire che ogni componente, servizio o utente disponga solamente delle autorizzazioni strettamente necessarie per svolgere le proprie funzioni.

Var Group integra la sicurezza in modo nativo in ogni fase dello sviluppo e dell'operatività, automatizzando i controlli di sicurezza e incoraggiando una cultura di sicurezza condivisa tra i team. Utilizzando servizi come AWS Security Hub, i clienti possono centralizzare la gestione della sicurezza e ottenere visibilità e controllo su ampia scala, migliorando la compliance e prevenendo violazioni dei dati e attacchi informatici.

Che cos'è la filosofia Shift Left?


Il termine Shift Left si riferisce all'idea di integrare la sicurezza nelle fasi iniziali del ciclo di vita dello sviluppo software.

Tradizionalmente, la sicurezza veniva considerata solo nelle fasi finali dello sviluppo, spesso come un passaggio separato prima del rilascio del prodotto. Shift Left ribalta questo modello, promuovendo l'integrazione della sicurezza a partire dalla progettazione e dalla codifica. Questo permette di identificare e risolvere le vulnerabilità prima, quando il costo per affrontarle è minore, e di prevenire problemi più gravi nella fase di produzione.

I 5 step di adozione della filosofia Shift Left

  1. Formazione iniziale: Investire nella formazione dei team di sviluppo per far loro comprendere i principi fondamentali della sicurezza informatica.
  2. Analisi delle esigenze di sicurezza: Incorporare requisiti di sicurezza sin dalla fase di raccolta dei requisiti e durante la progettazione delle architetture.
  3. Sviluppo guidato dai test: Adottare pratiche di sviluppo guidate dai test che includano la sicurezza come aspetto critico da valutare.
  4. Integrazione di strumenti di sicurezza: Utilizzare strumenti di analisi statica e dinamica del codice (SAST/DAST), e di gestione delle dipendenze vulnerabili (SCA) nelle prime fasi dello sviluppo.
  5. Automazione del testing di sicurezza: Inserire test di sicurezza automatici all'interno delle pipeline CI/CD per identificare problemi in tempo reale.

I principi del DevSecOps di Var Group

Var Group propone al mercato un modello di progettualità DevSecOps basata su 6 principi cardine:

  1. Identificazione del punto di partenza

    Prima di avvicinare un'organizzazione al DevSecOps, è fondamentale comprendere il livello di maturità digitale attuale e le pratiche di sviluppo e sicurezza in uso. Questo passaggio iniziale aiuta a identificare gli ambiti di intervento prioritari e a personalizzare il percorso di adozione in base alle specificità dell'azienda.

  2. Fase di sensibilizzazione e formazione

    Il successo dell'adozione del DevSecOps dipende fortemente dalla cultura aziendale. È essenziale promuovere una mentalità che vede la sicurezza come una componente integrante dello sviluppo software, non come un ostacolo. Programmi di formazione e workshop possono facilitare questo cambiamento culturale, sensibilizzando tutti i livelli dell'organizzazione sull'importanza della sicurezza informatica.

  3. Integrazione graduale

    L'introduzione del DevSecOps in un'organizzazione dovrebbe seguire un approccio incrementale. Partire con piccoli progetti pilota, permette di raccogliere feedback e apportare le necessarie modifiche prima di estendere la pratica a tutta l'organizzazione. Questo approccio riduce la resistenza al cambiamento e permette di evidenziare i benefici concreti.

  4. Strumenti e automazione

    La scelta degli strumenti adatti gioca un ruolo cruciale nell'efficacia del DevSecOps. Strumenti di scanning automatico delle vulnerabilità (Macie, Inspector, CodeGuru), integrazione continua (CI/CD,CodePipeline, CodeBuild) e gestione delle configurazioni devono essere selezionati in base alle esigenze specifiche dell'azienda e integrati nelle pipeline di sviluppo. L'automazione è la chiave per rendere la sicurezza una parte fluida e costante del ciclo di vita dello sviluppo software.

  5. Monitoraggio continuo e feedback

    L'adozione del DevSecOps non si conclude con l'implementazione degli strumenti e dei processi. È indispensabile stabilire un sistema di monitoraggio continuo che permetta di identificare e risolvere tempestivamente eventuali nuove vulnerabilità (CloudWatch, Security Hub, GuardDuty, ecc). Il feedback ciclico tra i team di sviluppo, operations e sicurezza è fondamentale per migliorare continuamente le pratiche e ridurre i costi nel lungo termine.

  6. Inserimento nel percorso di digitalizzazione

    Il DevSecOps si inserisce idealmente in una fase iniziale del percorso di digitalizzazione di un'azienda, quando si sta definendo o rivedendo l'architettura delle applicazioni e l'infrastruttura IT. Integrare il DevSecOps fin dall'inizio consente di costruire su fondamenta solide, dove la sicurezza è intrinseca al processo di sviluppo e non un’aggiunta tardiva. Tuttavia, anche le organizzazioni in una fase avanzata di digitalizzazione possono beneficiare dell'adozione, attraverso un percorso di trasformazione, che miri a integrare la sicurezza nei processi esistenti.

Il tema del DevSecOps, benchè come altri sia uno dei temi cardine della Digital Transformation è anche uno dei più complessi in quanto implica un cambiamento metodologico e progettuale all’interno dell’azienda. Principali fattori deterrenti all’adozione di una metodologia DevSecOps sono solitamente:

  • Economici: i costi iniziali per l’implementazione di nuovi strumenti e per la formazione di risorse interne su tali strumenti potrebbero non essere a budget o ritenuti elevati
  • Organizzativi: un modello innovativo percepito come complesso o distante crea resistenze al cambiamento interne in azienda
  • Progettuali: la metodologia DevSecOps su progetti già iniziati ed in itinere come fattore ritardante e non accelerante in quanto si inserisce in cicli di sviluppo già attivi stravolgendo l’approccio al Development.


Nonostante queste difficoltà, l'esperienza dimostra che implementare il DevSecOps porta a risultati significativi: dalla diminuzione dei tempi di scoperta delle vulnerabilità all'incremento della fiducia da parte dei clienti, fino al rafforzamento della compliance.

I fattori economici non vanno considerati come costi bensì come investimento iniziale per una evoluzione che porterà benefici di sicurezza, gestione e operatività. Il costo sostenuto in precedenza è ripagato dalla capacità di prevedere con largo anticipo i problemi; quindi, si tratta di un impatto iniziale che però porta ad una riduzione dei costi nel lungo termine.
D’altro canto, è necessario prevedere un percorso di adozione di questi strumenti corredato da formazione specifica e roadmap di inserimento, così da non andare ad impattare negativamente i progetti esistenti. Riconosciamo un miglioramento della qualità del prodotto, poiché i team lavorano in maniera più agile e automatizzata è evidente che questo porti ad accelerazione del time to market e ad un incremento della qualità in termini di sicurezza dell’applicazione sviluppata.

Ovviamente quando si parla di sicurezza non si può che identificare come beneficio quello dell’aumento della fiducia dei clienti. Nella metodologia DevSecOps la sicurezza diventa una responsabilità condivisa tra tutti i team. Viene messa al centro, tutto viene costruito su di essa, questo non può che essere un punto a favore per chi decide di implementarla.

Questi successi sottolineano l'importanza di un approccio preventivo alla sicurezza, evidenziando il valore di integrare le pratiche di sicurezza sin dalle prime fasi dello sviluppo, un concetto noto come Shift Left.

Conclusione

In conclusione, l'adozione del DevSecOps, con un occhio di riguardo verso un approccio proattivo come quello di Var Group, non è solo una strategia di sicurezza; è una strategia aziendale che abilita le organizzazioni a navigare con successo nell'ecosistema digitale odierno. Attraverso la continua evoluzione culturale, l'adozione di strumenti avanzati e il rafforzamento delle collaborazioni inter-funzionali, le aziende possono garantire che la sicurezza sia tessuta in modo indissolubile nello sviluppo software, portando a soluzioni più sicure, affidabili e resilienti nell'era del cloud.

AUTORE:

Mattia Martucci -DevOps Developer Var Group