DevSecOps, i migliori consigli per sviluppare software sicuro e affidabile

I consigli di CrowdStrike per le aziende che sviluppano software, chiamate a implementare con successo la filosofia DevSecOps.

Durante lo sviluppo di un software e lungo il suo intero ciclo di vita non è ormai più possibile prescindere dal concetto di sicurezza informatica. DevSecOps è una pratica che integra la sicurezza informatica (Sec) nei processi di sviluppo (Dev) e nelle operazioni (Ops) all’interno dell’organizzazione. L’obiettivo principale di DevSecOps è focalizzarsi sugli aspetti legati alla sicurezza fin dall’inizio del ciclo di un programma, senza mai trattarli come un’attività separata e successiva. È l’evoluzione della filosofia DevOps, che guarda all’integrazione di strumenti e processi automatizzati per l’analisi statica e dinamica del codice, la scansione delle vulnerabilità e la gestione degli accessi.

L’accelerazione delle minacce orientate al cloud e i loro effetti, hanno reso la sicurezza una priorità fondamentale per le aziende, in particolare per i team DevOps. Basti pensare che secondo il Global Threat Report 2023 di CrowdStrike, nel 2022 si è registrato un incremento del 95% degli exploit sul cloud.

È fondamentale ridefinire i confini della sicurezza nello sviluppo di applicazioni

Con il tradizionale approccio DevOps, la sicurezza era un problema che veniva affrontato dopo lo sviluppo. La situazione, però, sta finalmente cambiando. Ora, gli sviluppatori che in precedenza dovevano lavorare sul coding fino all’ultimo minuto senza poter disporre del tempo materiale per individuare e correggere vulnerabilità, utilizzano apposite funzionalità per assicurarsi che il codice con falle nella sicurezza non venga trasferito in produzione.

Raj Rajamani, Chief Product Officer CrowdStrike, osserva che quando la sicurezza viene presa in considerazione in ogni fase della catena di produzione, gli sviluppatori possono garantire l’individuazione e la risoluzione dei problemi in anticipo, riducendo i costi legati alle correzioni a valle. La filosofia DevSecOps aiuta i programmatori a intervenire sulle vulnerabilità nelle prime fasi del processo di sviluppo delle app.

Schema DevSecOps

Automatizzando i test, la correzione e la consegna, DevSecOps garantisce maggiore sicurezza del software, senza rallentare i cicli di sviluppo. L’obiettivo è rendere la sicurezza parte del flusso di lavoro durante lo sviluppo del software, invece di dover affrontare i problemi a runtime, aggiunge ancora Rajamani.

Cinque consigli per sviluppare applicazioni migliori e più sicure

La crescita delle applicazioni cloud-native e la richiesta di una consegna più rapida delle applicazioni – o di una continuous integration/continuous delivery (CI/CD) – ha portato a una decisa crescita nell’uso dei container. Ecco quindi che le aziende adottano la containerizzazione, strumenti serverless e servizi basati sul cloud, che seppure da un lato contribuiscano a semplificare lo e velocizzare lo sviluppo software, dall’altro introducono complessi problemi di sicurezza. Per questo motivo, CrowdStrike offre alcuni consigli chiave per lo sviluppo di applicazioni sicure ed efficienti.

  1. Automatizzare le revisioni e i test di sicurezza. Ogni catena di produzione DevSecOps, osserva Rajamani, dovrebbe ricorrere a una soluzione automatizzata e unificata per godere di un’ampia visibilità sui problemi rilevati lato software. Queste le attività che tale strumento dovrebbe consentire di svolgere:
    • SAST: Test statico di sicurezza delle applicazioni per individuare il codice sorgente a rischio prima che venga utilizzato.
    • SCA: Analisi della composizione del software per la rilevazione di vulnerabilità della libreria prima della produzione.
    • CSA: Scansione dei container per rilevare le debolezze delle librerie del sistema operativo e limitare i rischi.
    • IaC scanning: Scansione delle infrastructure-as-code per rilevare le vulnerabilità dell’infrastruttura
    • ASPM: Gestione della sicurezza dell’applicazione per rilevare le fragilità e i rischi dell’applicazione una volta messa in distribuzione.
  2. Integrazione con le toolchain degli sviluppatori. Gli sviluppatori e i team di sicurezza dovrebbero concentrarsi su un’unica interfaccia capace di integrare sicurezza e sviluppo delle app. La perfetta integrazione con Jenkins, Jira, Bamboo, GitLab e altre soluzioni in-cloud, consente ai team DevOps di rispondere con rapidità e risolvere i problemi in modo tempestivo.
  3. Condividere conoscenze sulla sicurezza tra team. “DevSecOps è un percorso abilitato dalla tecnologia, ma è un processo che parte dalle persone“, si spiega da CrowdStike. Il team dovrebbe condividere le informazioni apprese assieme agli step per limitare le minacce, una volta risolto il problema. Alcune aziende individuano una figura di riferimento per la sicurezza che possa coordinare i vari individui e responsabilizzare il team.
  4. Misurate il livello di sicurezza del software. CrowdStrike invita inoltre a individuare i punti critici nelle proprie attività di sviluppo del software e i rischi per la sicurezza. È essenziale anche tracciare e misurare i risultati, come il tempo speso per affrontare le vulnerabilità dopo l’inserimento del codice. Il passaggio seguente consiste nell’identificazione di schemi nei tipi o nelle cause delle vulnerabilità introdotte lato software. Questi sforzi aiutano a introdurre un piano condiviso da integrare nelle fasi di creazione e produzione.
  5. Shift right” e “shift left. Sono concetti chiave nello sviluppo DevSecOps e si riferiscono alla posizione temporale delle attività di sicurezza nel ciclo di vita dello sviluppo software. “Shift left” si riferisce all’espletamento delle attività di sicurezza nelle prime fasi dello sviluppo: l’obiettivo consiste nell’identificare e risolvere le vulnerabilità e i problemi di sicurezza il più presto possibile.
    L’approccio “Shift right” si riferisce all’esecuzione delle attività di sicurezza verso le fasi successive del ciclo di vita del software, inclusa la fase di produzione e oltre. L’obiettivo è concentrarsi sulla rilevazione tempestiva di minacce e violazioni di sicurezza in ambienti operativi reali e nella fase post-implementazione.

Mentre un tempo la sicurezza e lo sviluppo erano separati, ora i confini sono decisamente più sfumati. Nella nuova ottica, i team aziendali sono riuniti sotto un unico ombrello, favorendo la crescita del business. “La sicurezza non deve essere un ostacolo sulla strada verso il raggiungimento degli obiettivi aziendali, o causa di rallentamento nello sviluppo del software“, conclude CrowdStrike. “Invece, deve consentire di raggiungere tali obiettivi in modo sicuro e con il minimo rischio“.

Credit immagine in apertura: iStock.com – Visual Generationcredit immagine nell’articolo: iStock.com – chokkicx

Ti consigliamo anche

Link copiato negli appunti