DevSecOps, le procedure automatizzate alleviano la pressione sul triage
L’automazione è una componente fondamentale della metodologia DevSecOps (Development Security Operations), ed è grazie ad essa che le organizzazioni possono raggiungere un alto livello di sicurezza, prioritizzando le vulnerabilità scoperte arrivando alla loro gestione e correzione in tempi brevi.
Nel 2022, Synopsys ha commissionato al SANS Institute uno studio per esaminare come si possa migliorare la security posture e l’efficacia operativa attraverso il coinvolgimento dei team di sviluppo; team di sicurezza e team operativi verso una responsabilità collettiva tramite l’awareness delle pratiche e degli strumenti delle DevSecOps.
Il sondaggio SANS DevSecOps 2022 dimostra come l’implementazione delle pratiche DevSecOps è in grado di aiutare le organizzazioni a scrivere codice sicuro senza sacrificare la velocità di sviluppo, a stabilire politiche e test per l’automatizzazione della sicurezza e ad aiutare tutti coloro che vengono coinvolti nel triage e nella correzione delle vulnerabilità con lo scopo di lavorare in modo più efficiente. Di seguito vedremo gli insegnamenti utili che emergono dallo studio SANS sull’uso dell’automazione e delle integrazioni al fine di realizzare una prioritizzazione ed un triage in grado di garantire la rapida correzione delle problematiche.
Prioritizzare significa implementare l’automazione nel front end affinché vengano rilevate le vulnerabilità conosciute capaci di nuocere al tuo business, mentre in ambito triage, implementare l’automazione nel back end è utile ad avvisare i proprietari del progetto, gli sviluppatori o il personale di sicurezza rendendoli così in grado di correggere le vulnerabilità in modo tempestivo.
Automazione delle DevSecOps
L’automazione risulta un argomento fondamentale all’interno del sondaggio SANS, i partecipanti provenienti dai diversi settori industriali hanno notato che aumenta di importanza man mano che la delivery cadence del software continua a crescere. Le conclusioni del rapporto affermano che il 32% dei partecipanti applica quotidianamente e in modo continuo importanti cambiamenti al software, mentre il 61% lo fa più volte alla settimana. Si tratta di tanto codice che cambia ad una velocità molto elevata e i partecipanti al sondaggio SANS hanno notato che, con l’aumentare della interrelazione tra sviluppatori ed ingegneri di sicurezza, automatizzare i test di sicurezza nella pipeline CI/CD è l’unico modo per valutare ogni singolo aggiornamento di codice rintracciando eventuali vulnerabilità.
L’automazione è l’unica strada percorribile per il DevSecOps che vuole tenere il passo con la velocità di sviluppo del software e del business, l’83,3% delle realtà intervistate dal rapporto SANS ha dichiarato di aver implementato l’automazione per gestire proprio questo tipo di esigenze. E poiché il concetto di “Shift Left Security” porta la sicurezza all’interno dell’intero ciclo di vita dello sviluppo software (SDLC), la responsabilità di individuare e correggere i problemi di sicurezza pesa sempre più sulle spalle dei programmatori. Ciò significa che i programmatori stanno avendo un impatto sempre maggiore sulla sicurezza.
Questo obbliga le organizzazioni, che vogliono alleggerire il carico di responsabilità e di errore, ad impostare efficientemente flussi di lavoro automatizzati all’interno dei sistemi utilizzati dai programmatori. La maggior parte dei programmatori utilizzano già strumenti avanzati per tenere traccia dei problemi, ma quando oltre il 30% degli intervistati dichiara di effettuare aggiornamenti di codice quotidiani o continui, la rilevazione dei problemi di sicurezza non può che non essere automatizzata e applicata attraverso politiche AppSec precedentemente stabilite dai team di sicurezza. I flussi di lavoro automatizzati dovrebbero essere in grado di notificare ai programmatori quei problemi che richiedono una correzione nel minor tempo possibile, è importante che ciò avvenga anche durante la scrittura del codice e mentre si applicano gli aggiornamenti. Per l’80% dei partecipanti che già lavora con compilazioni automatiche, l’analisi statica rimane uno strumento di sicurezza altamente efficace che può essere eseguito automaticamente su larga scala nella pipeline nativa o in una pipeline parallela per le attività computazionalmente intensive.
Gli intervistati hanno anche segnalato la necessità di repository in cui la cronologia del triage per la rilevazione di vulnerabilità sconosciute possa essere conservata e integrata per evitare che gli sviluppatori apportino modifiche capaci di danneggiare il codice, o determino dei falsi positivi e altri problemi noti. Tale cronologia del triage deve essere disponibile all’interno degli strumenti che i programmatori utilizzano durante la scrittura del codice.
Le policy automatizzate sono alla base dell’efficacia della prioritizzazione e del triage
Una policy automatizzata è il modo migliore per comunicare i requisiti di sicurezza, gli obiettivi operativi e le esigenze di conformità normativa che influiscono sul progetto e sulle attività che lo compongono. Definire le policy è il modo in cui un piccolo gruppo, come ad esempio un team di sicurezza, può comunicare efficacemente con i C-suite, i proprietari del progetto o gli sviluppatori su un insieme complesso di questioni riguardanti la sicurezza. Poiché ciascuno di questi team ha un ruolo diverso e potrebbe prioritizzare le questioni in modo diverso, le politiche automatizzate rendono possibile la creazione di best practice anche quando un collaboratore non è presente o non può partecipare al progetto. Le violazioni delle policy diventano quindi un modo per comunicare agli stakeholder che un aspetto del progetto o del flusso di lavoro ha un problema avvisandoli che è necessario intervenire.
L’automazione delle policy-as-code consente agli addetti della sicurezza di definire le questioni a cui l’organizzazione dovrebbe prestare attenzione e di stabilire come e quando dovrebbero essere risolte. Ciò significa che gli sviluppatori responsabili della risoluzione dei problemi non perdono tempo a capire cosa e quando risolverlo, ma possono immediatamente mettersi al lavoro.
Automatizzando l’applicazione delle policy, le organizzazioni possono:
- Definire la strategia di sicurezza in base al profilo di rischio dell’applicazione
- Adattare la strategia di sicurezza ai profili di rischio dell’applicazione
- Impostare e utilizzare metriche e KPI per implementare il miglioramento continuo e guidare misure di sicurezza efficienti
- Rafforzare i cicli di feedback tra i team di sviluppo e di sicurezza
Automatizzare l’applicazione delle policy è un modo produttivo di gestire i risultati e gli insegnamenti ottenuti attraverso tutti i test e gli strumenti utilizzati. Lo strumento di gestione delle informazioni normalizza e correla i risultati in modo da prioritizzare gli sforzi e ottenere così la massima efficacia.
Cavalcare l’onda delle scoperte automatizzate
Con i test automatizzati aumenta notevolmente il numero delle problematiche scoperte, perciò diventa indispensabile, volendo eseguire un programma DevSecOps efficace, trovare un modo per non sommergere gli sviluppatori con la grande mole di dati. L’utilizzo di strumenti in grado di ordinare e prioritizzare i risultati dei test automatizzati permette agli sviluppatori di processare tutte queste informazioni sfruttando al meglio la velocità operativa incorporata nei flussi di lavoro e nelle pipeline.
La prima sfida consiste nel dare priorità alle scoperte classificandole attraverso criteri che rispondano alle necessità dell’azienda. I criteri di prioritizzazione possono includere elementi come:
- Punteggi di rischio standardizzati (CVSS, ecc.)
- Varchi sì / no per l’exploitability
- Se un’applicazione è protetta da un firewall
- Se il file viene utilizzato solo per lo sviluppo o se andrà in produzione
- Se l’applicazione interessata è rivolta ai clienti e genera entrate
I test possono essere automatizzati, ma la priorità è determinata da ciò che conta di più per la tua attività. Una volta stabilite le priorità aziendali, ci si rivolge nuovamente all’automazione con l’obiettivo di far rispettare le policy create, utili a gestire le attività e la tolleranza al rischio sia prima che dopo le scansioni.
La sfida successiva, per gestire i risultati dei test senza rallentare la velocità dell’attività, è determinare come classificare l’insieme di dati, poiché, anche dopo averli prioritizzati, potrebbe essere impossibile affrontare tutti i problemi emersi. Diventa necessario quindi categorizzare quali problemi risolvere a seconda del proprio orizzonte temporale, la tolleranza al rischio e di altri fattori organizzativi e operativi. Impostare policy di triage è fondamentale per permettere agli sviluppatori di gestire le problematiche scoperte, invece di essere sommersi da esse.
Una volta stabilite le policy di prioritizzazione e di selezione, gli sviluppatori potranno affrontare la risoluzione seguendo i passi che conosciamo tutti: tornare al lavoro di sviluppo, aprire automaticamente un ticket nel sistema di gestione dei problemi, inviare notifiche automatizzate dei nuovi problemi da risolvere, evidenziare le violazioni delle policy e i rischi prioritari nell’ambiente di sviluppo integrato (IDE), ecc. L’automazione consente di accelerare tutti questi processi senza stressare gli sviluppatori.
Synopsys dispone di una serie di tool per automatizzare i processi, dalla prioritizzazione alla selezione, alla correzione/risoluzione, all’automazione, che si integrano con quelli già utilizzati dai team aziendali. Gli strumenti Synopsys includono:
- Intelligent Orchestration semplifica l’integrazione degli strumenti ed elimina la congestione della pipeline, stabilendo politiche ben definite in grado di garantire che i test giusti vengano eseguiti al momento giusto.
- Code Dx unifica i risultati di tutti i test automatizzati e i manuali in un unico posto, rimuove i doppioni e seleziona i problemi, permettendo al team di concentrare gli sforzi su un insieme più ridotto di problematiche ad alta priorità capaci di avere un grande impatto sul business.
- Seeker IAST trasforma i test funzionali in test di sicurezza monitorando le interazioni delle web app in background e identificando i veri rischi che si manifestano durante l’esecuzione.
- Code Sight sposta la rilevazione e la selezione dei rischi di sicurezza direttamente nell’IDE degli sviluppatori, dove individua le violazioni di sicurezza e fornisce dettagliate indicazioni per la correzione. Dopotutto, il modo più importante per prioritizzare la risoluzione delle vulnerabilità nel codice è prevenirle fin dall’inizio.
Il sondaggio SANS DevSecOps del 2022 palesa la necessità sia di automazione che di policy per la sicurezza delle applicazioni. Una DevSecOps intelligente, guidata dalle policy, è capace di eseguire i test giusti al momento giusto, raccoglie informazioni sui rischi che vengono automaticamente verificate e ripulite, assicura che le squadre di sviluppo ricevano solo le priorità più impattanti.
Investendo per rendere gli sviluppatori più consapevoli sulle problematiche di sicurezza, si arriva a raggiungere un ciclo DevOps sempre più sicuro nel tempo. Una DevSecOps di successo garantisce una protezione del codice in tempi sempre più brevi soddisfando così i crescenti bisogni del business.
Articolo a cura di Steven Zimmerman, solution manager, Synopsys Software Integrity Group