Cos'è la metodologia DevSecOps?

Copia URL

DevSecOps sta per "sviluppo, sicurezza e operazioni". È un approccio alla cultura, all'automazione e alla progettazione delle piattaforme che integra la sicurezza come responsabilità condivisa lungo l'intero ciclo di vita IT.

La metodologia DevOps non riguarda solo i team operativi e di sviluppo. Per sfruttare tutta l'agilità e la reattività di un approccio DevOps, occorre tenere conto anche di un altro elemento indispensabile dell'intero ciclo di vita delle applicazioni: la sicurezza IT.

Perché? In passato, il ruolo della sicurezza interessava prettamente la fase finale dello sviluppo affidata a un team specifico. Quando i cicli di sviluppo duravano mesi o persino anni, la sicurezza non aveva la stessa importanza che ha oggi. Una metodologia DevOps efficace garantisce cicli di sviluppo rapidi e frequenti (di settimane o giorni), ma anche le iniziative DevOps più efficienti possono fallire se le pratiche di sicurezza adottate sono obsolete.

 

Illustration representing a linear progression from Development to Security and then to Operations

Ora, nel framework DevOps collaborativo, la sicurezza è una responsabilità di tutti, integrata dall'inizio alla fine. Si tratta di un concetto talmente importante che alcuni hanno coniato il termine "DevSecOps" per sottolineare quanto sia fondamentale creare una base sicura per le iniziative DevOps.

 

Illustration representing collaboration between Development, Security, and Operations roles

Questo approccio è incentrato sulla sicurezza delle applicazioni e dell'infrastruttura sin dalle prime fasi e sull'automatizzazione di alcune attività di controllo della sicurezza per evitare che rallentino il flusso di lavoro DevOps. Per raggiungere tali obiettivi, è necessario scegliere gli strumenti che consentono di integrare la sicurezza in maniera costante, come un ambiente di sviluppo integrato (IDE) dotato di funzionalità di sicurezza. Tuttavia, per garantire la sicurezza DevOps non è sufficiente adottare nuovi strumenti, ma occorre sfruttare i cambiamenti culturali promossi da DevOps per integrare nel più breve tempo possibile il lavoro dei team di sicurezza.

La priorizzazione della sicurezza fin dalle prima fasi della progettazione e dello sviluppo fino al runtime è spesso definita sicurezza shift left e shift right. Implementare e automatizzare i processi DevSecOps con un approccio shift left fornisce protezioni a misura di sviluppatori che possono ridurre gli errori degli utenti in fase di sviluppo e distribuzione e proteggere i carichi di lavoro al momento del runtime. L'approccio shift right consente la continuazione della pratica di test, controllo qualità e valutazione delle prestazioni in un ambiente post-produzione.

Scopri perché scegliere Red Hat per DevSecOps

Risorse da Red Hat

Gli approcci "DevOps" o "DevSecOps" sono sempre stati la soluzione ideale per rendere la sicurezza una parte integrante dell'intero ciclo di vita delle applicazioni. Non agendo in modo perimetrale, DevSecOps garantisce l'adesione ai principi di una sicurezza integrata delle app e dei dati. Se la sicurezza continua a essere confinata alla fase finale del flusso di sviluppo, le organizzazioni che adottano la metodologia DevOps possono trovarsi di nuovo a gestire quei lunghi cicli di sviluppo che cercavano di evitare.

Con DevSecOps si concretizza in parte la necessità da parte dei team e dei partner della sicurezza di proteggere le informazioni alla nascita delle iniziative DevOps, definendo inoltre un piano di automazione. Gli sviluppatori sono chiamati a ripensare la creazione del codice tenendo conto della sicurezza, attraverso un processo che consideri la condivisione di dati, feedback e informazioni sulle vulnerabilità note ai team di sicurezza, ad esempio minacce interne o malware potenziale. L'approccio DevSecOps punta anche a identificare i rischi pertinenti alla catena di distribuzione del software, evidenziando la sicurezza dei componenti e delle dipendenze software open source sin dalle prime fasi del ciclo di sviluppo software. Questo nuovo approccio potrebbe richiedere la partecipazione degli sviluppatori a nuovi corsi di formazione sulla sicurezza, un aspetto spesso secondario nell'approccio di sviluppo tradizionale.

In cosa consiste la sicurezza integrata? Per i principianti, una buona strategia DevSecOps serve a determinare la tolleranza al rischio e a condurre un'analisi dei rischi/benefici. Quali controlli di sicurezza sono necessari per un'applicazione specifica? Quanto sono importanti i tempi di rilascio per le varie applicazioni? L'automazione delle attività ripetitive è fondamentale per DevSecOps, poiché eseguire controlli manuali può essere dispendioso in termini di tempo.

Codifica, creazione e monitoraggio con Red Hat® Trusted Software Supply Chain

La lista delle cose da fare è lunga: gestire cicli di sviluppo brevi e frequenti, integrare misure di sicurezza assicurando un'interruzione minima delle operazioni, stare al passo con le innovazioni tecnologiche come i container e i microservizi e, al tempo stesso, promuovere la stretta collaborazione tra i team generalmente isolati, un compito arduo per qualsiasi organizzazione. Tutte queste misure sono inizialmente intraprese dai team che collaborano all'interno dell'azienda, ma in un framework DevSecOps l'automazione ha l'obiettivo di agevolare tali interventi manuali.

Illustrations representing that DevOps plus Automation equals Security

Per ottenere più dettagli sul processo di automazione, puoi consultare questa utile guida. Le organizzazioni dovrebbero fare un passo indietro ed esaminare l'ambiente di sviluppo e operativo nella sua interezza, considerando, tra le altre cose, repository di controllo della sorgente, registri di container, pipeline di integrazione e distribuzione continue (CI/CD), gestione delle interfacce di programmazione delle applicazioni (API), automazione dell'orchestrazione e dei rilasci, nonché gestione e monitoraggio operativi.

Grazie alle nuove tecnologie di automazione le organizzazioni possono adottare più pratiche di sviluppo agile e implementare misure di sicurezza avanzate. Ma l'automazione non è l'unica evoluzione del panorama IT degli ultimi anni: le tecnologie cloud native come i container e i microservizi svolgono ora un ruolo chiave nella maggior parte delle iniziative DevOps, tanto che la sicurezza DevOps deve adattarsi per accoglierle.

5 modi per implementare una metodologia DevSecOps efficace utilizzando l'automazione dell'IT

Lo sviluppo e la distribuzione più scalabili e dinamici dei container hanno cambiato il modo di innovare di molte organizzazioni. A fronte di questa trasformazione, anche le pratiche di sicurezza DevOps devono allinearsi alle linee guida sulla sicurezza specifiche per i container.

I criteri e le checklist per la sicurezza statica non si prestano alle tecnologie cloud native. Al contrario, la sicurezza deve essere continua e integrata in ogni fase del ciclo di vita delle applicazioni e dell'infrastruttura.

L'approccio DevSecOps prevede che la sicurezza sia integrata nello sviluppo applicativo dall'inizio alla fine. Oltre all'adozione di nuovi strumenti, ciò richiede un cambiamento nella cultura e nelle strategie aziendali. I team DevOps, tenendo a mente tutto questo, devono automatizzare la sicurezza per proteggere l'ambiente e i dati, nonché il processo di distribuzione e integrazione continua: obiettivo che includerà con ogni probabilità anche la sicurezza dei microservizi nei container.

Red Hat® Advanced Cluster Security for Kubernetes adotta l'approccio shift left e automatizza le procedure consigliate DevSecOps. Compatibile con qualsiasi ambiente Kubernetes e integrata con gli strumenti DevOps e di sicurezza, la piattaforma aiuta i team a rendere la catena di distribuzione, l'infrastruttura e i carichi di lavoro operativi e più sicuri.

Sicurezza dell'ambiente e dei dati

  • Standardizzazione e automazione dell'ambiente: ciascun servizio dovrebbe prevedere il minor numero possibile di privilegi, per ridurre al minimo le connessioni e gli accessi non autorizzati.
  • Centralizzazione delle funzionalità di controllo degli accessi e dell'identità degli utenti: un controllo rigido degli accessi e i meccanismi di autenticazione centralizzati sono essenziali per proteggere i microservizi, poiché l'autenticazione è avviata in più punti.
  • Isolamento dei container su cui vengono eseguiti i microservizi, reciproco e dalla rete: sono inclusi dati in transito e inattivi, poiché entrambi possono costituire obiettivi preziosi per i malintenzionati.
  • Crittografia dei dati tra app e servizi: una piattaforma di orchestrazione dei container con funzionalità di sicurezza integrate contribuisce a ridurre al minimo i potenziali accessi non autorizzati.
  • Introduzione di gateway API sicuri: le API sicure aumentano la visibilità sul routing e sulle autorizzazioni. Riducendo le API esposte, è possibile limitare le superfici vulnerabili.

Sicurezza delle procedure CI/CD

  • Integrazione di scansioni della sicurezza dei container: questa pratica dovrebbe essere parte integrante della procedura di aggiunta dei container al registro.
  • Automatizzazione dei test di sicurezza nella procedura CI: sono incluse sia l'esecuzione di analisi di sicurezza statiche nelle build, sia la scansione delle immagini dei container predefinite per verificare la presenza di vulnerabilità della sicurezza quando vengono integrate nella pipeline di creazione.
  • Integrazione di test automatizzati delle funzionalità di sicurezza nei test di accettazione: automazione di test di convalida degli input, nonché di funzionalità di autorizzazione e autenticazione di verifica.
  • Automazione degli aggiornamenti di sicurezza, come le patch per le vulnerabilità note: grazie alla pipeline DevOps, gli amministratori possono evitare di accedere ai sistemi di produzione, durante la creazione di un registro delle modifiche documentato e tracciabile.
  • Automazione delle funzionalità di gestione della configurazione dei servizi e del sistema: consente la conformità con i criteri di sicurezza e l'eliminazione di errori manuali. È necessario automatizzare anche le procedure di auditing e correzione.

Scopri di più sulla sicurezza CI/CD 

L'ingegneria della piattaforma è una specializzazione dello sviluppo del software volta a migliorare la produttività, la distribuzione del software e la velocità di rilascio. È diversa dalle metodologie DevOps poiché prevede l'applicazione di diverse soluzioni a seconda del momento e della problematica. L'obiettivo generale dell'ingegneria della piattaforma è identificare le problematiche degli sviluppatori e gestirle offrendo strumenti, funzionalità e servizi condivisi e riutilizzabili attraverso una piattaforma interna per sviluppatori (Internal Developer Platform, IDP). L'ingegneria della piattaforma è di supporto agli approcci DevSecOps poiché mette a disposizione nuove funzionalità per la sicurezza, la produttività e la standardizzazione. Inoltre, semplifica l'adozione delle pratiche DevSecOps e crea processi di sviluppo e rilascio del software sicuri.

Scopri come migliorare le metodologie DevSecOps con l'ingegneria della piattaforma

Hub

Il blog ufficiale di Red Hat

Leggi gli articoli del blog di Red Hat per scoprire novità e consigli utili sulle nostre tecnologie, e avere aggiornamenti sul nostro ecosistema di clienti, partner e community.

Tutte le versioni di prova dei prodotti Red Hat

Grazie alle versioni di prova gratuite dei prodotti Red Hat potrai acquisire esperienza pratica, prepararti per le certificazioni o capire se il prodotto che hai scelto è giusto per le esigenze della tua organizzazione.

Continua a leggere

Cos'è l'autenticazione LDAP (Lightweight Directory Access Protocol)?

Il protocollo LDAP (Lightweight Directory Access Protocol) aiuta gli utenti a trovare i dati relativi a organizzazioni, persone e altro. La soluzione serve ad archiviare i dati nella directory LDAP e ad autenticare gli utenti che accedono alla directory.

Che cos'è il controllo degli accessi basato sui ruoli (RBAC)?

Il controllo degli accessi basato sui ruoli permette di gestire sistemi, reti o risorse in base al ruolo che svolgono all'interno di un team o di un'organizzazione.

Shift left e shift right a confronto

Adottare strategie shift left e shift right significa implementare test continui in ogni fase del ciclo di vita dello sviluppo del software.

Sicurezza: risorse consigliate

Articoli correlati