Sicuro by design: lo sviluppo software con DevSecOps

triangolo

DevSecOps Tool e approccio alla sicurezza by design del software

A fronte della crescita dell’attenzione rispetto agli aspetti legati alla sicurezza informatica, all’approccio DevOps si affianca sempre più spesso il concetto di DevSecOps per evidenziare la necessità di assicurare l’automazione della security sin dalla fase di progettazione del software.

Development Security Operations è una metodologia finalizzata all’integrazione nativa della sicurezza informatica nelle applicazioni, a partire dalle fasi di sviluppo, proseguendo lungo il loro intero ciclo di vita. Si pone in linea di continuità rispetto a DevOps, condividendone gli obiettivi di base, ma il suo focus è prevalentemente orientato a garantire una sicurezza “by design” del software.

Approfondisci il tema: scarica il white paper “DevOps e DevSecOps: approccio innovativo e collaborativo allo sviluppo software”!

SCARICA

L’obiettivo è quello di creare software in maniera più rapida e sicura, facilitando i processi di sviluppo, gestione e manutenzione. Ciò avviene grazie ad una metodologia capace di automatizzare il ciclo di CI/CD (Continuous Integration / Continuous Deploy), come del resto già avviene da diversi anni con DevOps.

Durante tutto il ciclo di development, il codice viene revisionato e testato e se sono presenti problemi lato sicurezza, questi vengono rilevati e risolti prima di passare alla fase successiva e prima di aggiungere nuove dipendenze.

DevSecOps significa spostare nelle prime fasi l’attenzione sugli aspetti legati alla sicurezza: per questo motivo, a questo termine è spesso abbinato il concetto di “Shift left”, ossia la strategia di spostare la fase di test nei primi step (su una linea retta, idealmente, verso sinistra).

Come per il DevOps, anche in questo caso parliamo in primis di un cambiamento sul piano culturale e organizzativo: i tre reparti devono collaborare in maniera efficace tra di loro, condividendo la responsabilità. Questo approccio snellisce i tempi, evita ai vari reparti di dover ripetere determinate attività (e la frustrazione che ne consegue) e migliora nel tempo la qualità del lavoro e del software.

All’interno di questo nuovo modello vengono attivati dei controlli automatici sulla qualità del codice scritto e sullo stato di aggiornamento del codice di terze parti che viene utilizzato. In questo modo si contribuisce a garantire la sicurezza dell’applicativo, ormai percepita come un valore intrinseco da utenti e fornitori di servizi. Inoltre, il nuovo paradigma permette di velocizzare i tempi di verifica. Nel caso in cui il team di cyber security non venga coinvolto nello sviluppo dell’applicativo, si assiste infatti ad una sequenza di rinvii di attività tra sviluppatori ed analisti, che rallenta il time-to-market, ed aumenta la frammentazione dei task.

Ma cosa serve per passare all’approccio DevSecOps? Nonostante sia un approccio e, come visto poco fa, una questione di cultura e metodologia lavorativa, è vero che per assicurare la security sin dalle prime fasi, è necessario un set di strumenti, principalmente basati sull’Artificial Intelligence per permettere il monitoraggio e l’individuazione di eventuali vulnerabilità informatiche.

Approfondisci il tema: scarica il white paper “DevOps e DevSecOps: approccio innovativo e collaborativo allo sviluppo software”!

SCARICA

Sin dalla prime fasi di sviluppo, vengono integrati test e controlli di sicurezza automatici, in modo da garantire la rapida distribuzione delle applicazioni. Il codice viene analizzato già nella fase di compilazione ed eventuali problemi lato sicurezza vengono evidenziati già in questa fase.

Per rispondere a questa necessità sono stati sviluppati alcuni strumenti di scansione automatica degli applicativi o del loro codice sorgente (come Trivy o il nuovissimo Docker Scout) che producono un report sul numero e gravità della vulnerabilità di cui si sospetta la presenza.

DevSecOps Pipeline: best practice per garantire la sicurezza 

Alle pipeline CI/CD devono essere applicate una serie di misure lato sicurezza tipiche del DevSecOps, utilizzando strumenti automatici per la protezione dei dati, ma non solo. Vanno considerate una serie di best practice degli ambienti di runtime e a livello infrastrutturale, implementando specifici accorgimenti in base alle esigenze.

Nel caso auspicato dell’esecuzione degli applicativi su container, è consigliato:

  • La configurazione di un image registry privato così da evitare possibili attacchi alle immagini, attacchi che sono difficili da rilevare e che comportano la propagazione di vulnerabilità;
  • Implementare un sistema di aggiornamento automatico delle base image per eliminare le vulnerabilità tempestivamente da quando sono state scoperte o patchate;
  • Configurare l’ambiente di deploy affinché ogni applicativo rispetti determinati vincoli, ad esempio per l’accesso alle risorse (fisiche o di rete);
  • l’installazione di uno scanner di vulnerabilità integrato nel processo di build dell’immagine. In questo modo, agli sviluppatori è segnalato la presenza di eventuali vulnerabilità e code smell già durante il ciclo di sviluppo. In più, integrando questo scanner nel flusso CI/CD è possibile interrompere lo stesso nel caso in cui le policy di sicurezza aziendali non sono rispettate;
  • nella fase di runtime, è importante applicare politiche di monitoraggio per identificare eventuali picchi di lavoro anomali nell’applicazione dovuti a tentativi di attacco.

Il DevSecOps è l’approccio di sviluppo da adottare per prevenire gli attacchi informatici, intercettando step by step eventuali vulnerabilità in ogni fase, spingendo il team a responsabilizzarsi e a dare la giusta importanza agli aspetti legati alla security.

 

Richiedi una consulenza