Se conosci la filosofia DevOps avrai sicuramente sentito parlare di DevSecOps. Si tratta di un approccio alla sicurezza che sta prendendo sempre più piede, in linea con la crescente consapevolezza - da parte delle grandi imprese - delle minacce alla security. Abbiamo recentemente parlato di come introdurre DevSecOps. In questo articolo, vedremo il concetto di Cloud DevSecOps e ci concentreremo sui vantaggi e sugli strumenti utili. Partiamo da una definizione.
DevSecOps è il risultato dell’integrazione della sicurezza all’interno della metodologia DevOps. Il Cloud DevSecOps, non è altro che lo stesso concetto di DevSecOps, calato però nel contesto specifico del Cloud.
Questo approccio cerca di avvicinare il più possibile le pratiche di sicurezza alla fase di delivery, invece di isolarle in una fase separata e successiva a ogni ciclo di rilascio del software. Il beneficio principale del modello DevSecOps è che rende la security un requisito noto a tutti gli stakeholder e non solo agli specialisti di settore e a un team dedicato. Se tutti sono, in diversa misura, responsabili della sicurezza, l’affidabilità e la qualità del software prodotto non potrà che migliorare.
I principali vantaggi di un modello DevSecOps sono la velocità con cui è possibile iterare sul software prodotto e la velocità con cui è possibile migliorare il punteggio della sicurezza applicativa che ne deriva. (Sia che si tratti di applicazioni Cloud Native o meno.) Questi due benefici, tuttavia, non vengono innescati in una fase specifica, ma piuttosto sono la conseguenza di pratiche che portano vantaggi riscontrabili in tutto il processo di sviluppo, vediamole di seguito.
Quando il software viene sviluppato in un ambiente che esula dai principi DevSecOps, i problemi di sicurezza possono portare ad enormi ritardi. Anticipare alla fase di coding i feedback atti alla verifica della security posture del codice riduce l’overhead di una risoluzione tardiva.
L’approccio “shift left” aumenta la proattività dei team devops. Vedendo immediatamente le metriche relative alla sicurezza, i team di sviluppo vengono progressivamente sensibilizzati a risolvere potenziali problemi prima di considerare il codice “pronto”.
Uno scanning continuo e proattivo permette di individuare e sistemare eventuali vulnerabilità/CVE con un ritmo nettamente più veloce rispetto ad un meccanismo di analisi pianificato.
Tutti i principali strumenti sono integrabili all’interno delle pipeline di Continuous Delivery e Continuous Integration.
L’estensibilità degli strumenti e il determinismo garantito dalle soluzioni di mercato permette di ottimizzare il livello di sensibilità degli strumenti rispetto alle segnalazioni più critiche secondo gli standard e le policy dell’organizzazione. In questo modo si ha la certezza che la stessa porzione di codice, analizzata in istanti differenti, venga classificata nello stesso modo.
Il valore di una strategia di application lifecycle management che include DevSecOps è ormai indubbio. Tuttavia, all’interno dell’industria IT, sta emergendo un nuovo punto di vista che mette in discussione la priorità con cui i concetti di “security” si insediano all’interno della vita di un prodotto.
Il termine SecDevOps estremizza lo shift-left, andando a definire una metodologia di delivery di applicazioni che prima di qualsiasi altra considerazione (tecnologica, di design o di metodo) si pone la domanda di quanto una determinata scelta impatti la security. La differenza, dunque, non è tanto nella qualità del software prodotto, ma più che altro nel percorso con cui si arriva a prendere una decisione.
Per semplificare possiamo dire che nel modello DevSecOps l'accento è sull'automazione, in SecDevOps, invece, l'accento è sulla pianificazione dello sviluppo.
Così come per le best practice Devops, anche per DevSecOps ci sono delle linee guida che ne semplificano l’adozione e ne incrementano i benefici per tutti gli stakeholder coinvolti. Abbiamo descritto nel dettaglio sei di queste linee guida all’interno dell’articolo DevSecOps: 6 principi per introdurlo in azienda. Gli stessi principi valgono anche nel contesto più specifico di Cloud DevSecOps e sono:
Ti consigliamo di approfondire nell’articolo sopra citato.
In aggiunta a questi temi, nei contesti Cloud, è importante anche il concetto di Cloud Security Automation. Si tratta della possibilità di automatizzare determinate operazioni durante la gestione dei servizi attivati on-Cloud, al fine di migliorare la governabilità e il monitoraggio dei workloads ospitati on Cloud.
Un’altra pratica importante, è il “tagging” delle risorse, ovvero l’associazione di metadati personalizzati (in maniera automatica tramite strumenti e script) alle istanze dei workload applicativi o infrastrutturali che vengono attivati. Questi “tag” possono poi essere usati come indicatori o filtri per attività di controllo in fase di audit di sicurezza.
Forse conosci già alcuni dei più famosi DevOps tools, puoi dire lo stesso per l’approccio DevSecOps? Anche in questo caso esistono strumenti in grado di aiutare un’organizzazione ad adottare le pratiche DevSecOps che abbiamo appena ricordato. Per Atlassian, la classificazione di questi strumenti si orienta in base alle varie fasi del ciclo DevSecOps, nel dettaglio:
Tra gli strumenti per DevSecOps troviamo BridgeCrew: offre tool specifici per la parte di configurazione e IaC, tra cui segnaliamo in particolare Checkov. Poi c’è Trivy, uno degli scanner di vulnerabilità e configurazione errata più conosciuti, e KICS, una soluzione open source per l'analisi del codice statico della IaC. Un altro DevSecOps tool è SonarQube, oltre alla parte di scan dei container, vulnerabilità di dipendenze e IaC, questo strumento è in grado di fare un'analisi anche sul codice.
In conclusione, DevSecOps continua ad essere un trend in forte crescita all’interno delle organizzazioni, la sua adozione è in grado di migliorare la qualità del software prodotto e il livello di sicurezza di tutta la value chain associata allo sviluppo del software. Le best practice ne semplificano l’adozione e l’utilizzo di nuove tecnologie e strumenti specifici permettono di standardizzare l’implementazione tecnologica.
Per un’azienda che vuole rimanere competitiva nel mercato, iniziare un cammino di DevSecOps Strategy - ovvero uno studio approfondito del vantaggio competitivo che questa metodologia può portare all’organizzazione - può essere una mossa vincente. Se ti interessa in particolare il contesto del Cloud, puoi iniziare dalla nostra Guida gratuita alla Cloud Native Security.