Diventa Autore per CoreTech | Scopri di più
07/07/22 CoreTech Blog
DevSecOps sta per sviluppo, sicurezza e operazioni. Simile a DevOps o SecOps, è un concetto che unisce due ruoli precedentemente separati in un ambiente unificato. I team DevSecOps hanno la responsabilità di fornire le condizioni per lo sviluppo continuo di software sicuro.
Essendo un concetto più recente di DevOps, DevSecOps è stato coniato per sottolineare l'importanza dei processi di sicurezza IT e dell'automazione della sicurezza nel ciclo di vita dello sviluppo del software. Sebbene l'idea di unire i team di sviluppo e i team operativi IT non sia così nuova, fino a qualche tempo fa le policy di sicurezza erano spesso trattate solo come compito dei team di sicurezza. Tuttavia, le crescenti preoccupazioni sulla sicurezza informatica hanno reso necessario chiarire che i controlli di sicurezza sono un aspetto chiave della fornitura continua e che tutti dovrebbero esserne responsabili, non solo i team di sicurezza dedicati.
I presupposti chiave delle pratiche DevSecOps (al contrario delle pratiche DevOps tradizionali) sono:
In passato, lo sviluppo del software seguiva principalmente il modello a cascata. C'è stata una lunga fase di analisi, una lunga fase di progettazione, una lunga fase di sviluppo e infine il software è stato compilato, testato e rilasciato. Per il rilascio della prossima versione, il processo richiederebbe mesi se non anni. Pertanto, non c'era bisogno di automazione e i team lavoravano in silos. Gli sviluppatori compilavano manualmente i programmi, li collegavano, li caricavano in un ambiente di test (di solito un server fisico), il controllo qualità eseguiva suite di test manuali, la sicurezza testava il prodotto finale, ecc.
Oggi viviamo nell'era delle metodologie agili. Ciò significa che i team di sviluppo introducono regolarmente piccole modifiche e le nuove versioni dei prodotti (sia interne che ufficiali) vengono rilasciate su base settimanale o talvolta anche giornaliera. Ciò significa che il software deve essere compilato/costruito, collegato, pubblicato e testato regolarmente. Se ciò dovesse essere fatto manualmente, consumerebbe così tante risorse da rendere impossibile lo sviluppo agile. Per essere agile, devi automatizzare il più possibile i cicli di rilascio.
Questo è il motivo per cui è emersa la necessità di DevOps: soluzioni che consentissero di snellire e automatizzare il più possibile la consegna del software e persone che gestissero l'automazione. Un team DevOps utilizza soluzioni di integrazione continua/distribuzione continua (CI/CD) per creare pipeline di sviluppo. Una pipeline CI/CD implica il prelievo del codice sorgente da un repository come git, la creazione di un ambiente virtuale con le impostazioni corrette (macchina virtuale o container), la creazione dell'applicazione lì, la pubblicazione in quell'ambiente virtuale, l'esecuzione di unit test automatizzati (compreso l'utilizzo di strumenti come Selenium) e fornire il risultato a tutte le parti interessate.
Il problema è che il concetto originale di DevOps non includeva affatto la sicurezza. Le pipeline DevOps contenevano sempre test per verificare se l'applicazione si comportava in base alle aspettative. Tuttavia, di solito non contenevano test per verificare se l'applicazione è sicura e non può essere attaccata. I team di sicurezza (SecOps) lavoravano dopo il rilascio dell'applicazione e spesso verificavano manualmente potenziali vulnerabilità. Se viene rilevata una tale vulnerabilità, la versione dovrebbe tornare spesso allo sviluppatore da un ambiente di staging o (peggiore) di produzione. Questo non era agile e quindi la necessità di integrazione della sicurezza con DevOps, ovvero DevSecOps, a volte chiamato shift-left a causa dell'espansione della sicurezza sul lato sinistro dei diagrammi SDLC.
Esistono molti strumenti di sicurezza che aiutano le aziende a mantenere la sicurezza delle applicazioni web. Tuttavia, solo pochissimi di essi possono essere utilizzati come parte di DevSecOps. Questi sono gli strumenti del futuro perché le aspettative del mercato richiedono sempre più automazione e integrazione, quindi DevSecOps è il futuro per tutto lo sviluppo di applicazioni Web, inclusi API, servizi Web, microservizi e altro ancora.
Le uniche soluzioni considerate strumenti DevSecOps sono gli scanner SAST (test di sicurezza delle applicazioni statiche), DAST (test di sicurezza delle applicazioni dinamiche) e IAST (test interattivo di sicurezza delle applicazioni) di classe enterprise: