Riassunto analitico
Nel mondo dello sviluppo software la sicurezza informatica assume un ruolo fondamentale. Nuove vulnerabilità software vengono scoperte ogni giorno. In alcuni casi è il produttore stesso che viene a conoscenza di tali vulnerabilità, e riesce a correggerle prima che da esse possano derivare delle conseguenze gravi. Nel caso peggiore è un qualche utente malintenzionato che scopre tali vulnerabilità e le sfrutta per il conseguimento di un vantaggio di varia natura. La realizzazione di un software privo di vulnerabilità e di difetti è un obiettivo particolarmente complesso da raggiungere se non addirittura impossibile, pertanto la sfida principale consiste nell’individuare questi difetti prima che il prodotto stesso venga portato in produzione e fornito all’utente finale.
Nella letteratura corrente esistono differenti metodi per l’individuazione delle vulnerabilità presenti all’interno di un software, a partire dai test che gli addetti a tale fase devono svolgere in seguito alla fase di sviluppo del software fino ad arrivare ad approcci che ricercano vulnerabilità in seguito alla messa del software in produzione, e quindi in fase di utilizzo. Ovviamente questi metodi hanno efficacia differente e i risultati non è detto possano portare alla completa scoperta di tutti i difetti presenti nel codice.
L’obiettivo di questo elaborato è quello di proporre un metodo per la realizzazione di software di qualità, privo di vulnerabilità, a partire dalla fase di progettazione del software stesso. Questo metodo si basa sulla security by design, un nuovo approccio proattivo, pragmatico e strategico che considera il rischio e la sicurezza dall'inizio di una qualsiasi fase del ciclo di sviluppo di un software. In particolare il piano proposto è quello di progettare e realizzare un nuovo flusso di lavoro per lo sviluppo del software che possa integrare al suo interno anche la security by design. Nel nuovo workflow aziendale trova applicazione anche la metodologia di lavoro DevSecOps, che implica la fusione dei processi di sviluppo e dei processi operativi con i processi di sicurezza. L’intero flusso di lavoro si basa sui concetti di integrazione, distribuzione e deployment continui cioè sulla metodologia CI/CD che si focalizza sull'automazione delle procedure che portano il codice dallo sviluppo all'integrazione, dal test alla distribuzione e al deployment finale.
La tesi parte dalla rappresentazione di un workflow aziendale che non integra la sicurezza informatica e porta alla progettazione e alla realizzazione di un nuovo flusso di lavoro che segue le best practices della security by design integrando la sicurezza informatica. Le varie fasi che compongono questo nuovo workflow vengono scandite all’interno di una pipeline CI/CD. Vengono presentati inoltre differenti strumenti che possono essere utilizzati per la realizzazione delle varie fasi che compongono il nuovo flusso di lavoro. Questo nuovo workflow rappresenta un buon punto di partenza per inserire la sicurezza informatica nell’intero processo di sviluppo software e per realizzare software pulito e di qualità, tuttavia è anche particolarmente flessibile e si presta benissimo a elaborazioni e migliorie differenti.
|