Il concetto di “sicurezza fin dalla progettazione”, o “Security by Design”, è ormai parte fondamentale del lessico IT ed è una best practice in tutte le moderne metodologie di analisi, pianificazione e realizzazione di architetture software, sistemi e servizi informatici.
Contesto generale
Le ragioni della rapida diffusione di questo approccio, la cui definizione è mutuata dal più celebre paradigma noto come Privacy by Design (utilizzato per la prima volta nel1995 e recentemente incorporato nell’art. 25 del GDPR), non sono difficili da comprendere: negli ultimi anni abbiamo assistito a un incremento esponenziale degli attacchi informatici, come ampiamente testimoniato dai dati presenti in tutti i principali report di settore. Il rapporto Clusit 2023, ad esempio, mostra chiaramente come gli attacchi informatici in Italia siano aumentati del 40% nel primo semestre del 2023 rispetto allo stesso periodo dell’anno precedente.
Una tendenza che, peraltro, risulta particolarmente preoccupante se confrontata con i dati relativi al resto del mondo, analizzando i quali si evince come la crescita percentuale del panorama italiano sia considerevolmente superiore alla media.
Tenendo conto di un simile scenario, risulta evidente come l’adozione di un approccio progettuale che consenta di minimizzare i rischi determinati dalla probabilità e dall’impatto di questo tipo di minacce sia quanto mai auspicabile e necessario. Per conseguire questo obiettivo, è fondamentale identificare correttamente le misure tecniche e organizzative che è opportuno adottare all’interno della propria realtà aziendale.
Strumenti e linee guida
In termini pratici, sviluppare software sicuro a partire dalla progettazione vuol dire, per un’azienda, assumersi il compito (e la responsabilità) di tenere in considerazione gli aspetti legati alla sicurezza informatica fin dalle fasi iniziali dello sviluppo. Da un punto di vista prettamente gestionale, questo significa dotarsi del know-how e degli strumenti necessari per identificare e mitigare le potenziali vulnerabilità connesse non soltanto agli aspetti prettamente tecnico/implementativi del software, sistema o servizio, ma anche alle dinamiche aziendali che determinano la suddivisione dei compiti e l’organizzazione del lavoro.
Tutto ciò è valido sia nel caso di un’azienda che sviluppa software per i propri clienti o terze parti,sia nel caso di un’azienda ad alta densità di automazione che sviluppa software solo per uso interno. In entrambi i casi il mix di azioni necessario a soddisfare il paradigma “security by design” comprende:
- Formazione, che ha due aspetti:l’acquisizione di nuove capacità tecniche e operative per tutti i soggetti coinvolti e il miglioramento della consapevolezza (awareness) nell’uso responsabile delle tecniche e degli strumenti oggi a disposizione
- Riassetto organizzativo atto a implementare un’adeguata separazione dei compiti nei team di sviluppo, manutenzione e supporto
- Adozione di modelli architetturali dei sistemi più “robusti” e “resilienti”, con più strati di difesa contro le intrusioni.
- Contromisure applicative logiche, fisiche e organizzative da attuare prima, durante e dopo la fase di sviluppo del codice per mantenere tutta la filiera sotto controllo. Ciò comporta un rimodellamento di tutto il ciclo di vita del software.
- Automazione del processo di sviluppo, necessaria soprattutto perché l’overhead inevitabilmente introdotto per l’adesione al paradigma “security by design” (maggiore complessità, maggiori controlli, maggiore specializzazione e suddivisione dei compiti, necessità di compliance a standard), influisce pesantemente sui costi del ciclo produttivo; l’unico modo per aumentare l’efficienza del ciclo è automatizzarlo il più possibile.
Formazione
Il punto di partenza ideale per la corretta adozione di questo approccio “olistico” è senza dubbio la formazione, intesa come serie di attività volte ad incentivare l’acquisizione e lo sviluppo di competenze specifiche tra i dipendenti. Nel caso della sicurezza informatica la formazione va necessariamente declinata in due macro-categorie, la cui rilevanza dipende dalla tipologia, dalla struttura e dal core business dell’organizzazione:
- Skill acquisition: attività finalizzate allo sviluppo, acquisizione e condivisione delle capacità tecnico-operative necessarie per progettare e realizzare progetti sicuri. Si articola in di corsi di formazione, team programming, tech coaching, mentorship, etc.
- Awareness: tecniche volte ad aumentare la consapevolezza del personale sui principi alla base della sicurezza IT e sulle caratteristiche dei principali vettori di attacco, con particolare riguardo alle moderne tecniche di social engineering.Questo tipo di formazione viene tipicamente erogata mediante corsi a cura di docenti interni o esterni, in modalità frontale o online, webinar, software di e-learning, tecniche di gamification, simulazioni situazionali, materiale informativo realizzato ad-hoc, etc.
Mentre le attività finalizzate all’acquisizione di skill e know-how tecnico-operativo comportano tipicamente un investimento verticale, rivolto allo staff IT, quelle legate all’awareness devono essere concepite in modo orizzontale, devono estendersi a tutto il personale, includendo soprattutto il management e le figure direzionali. E’ fondamentale che simili nozioni siano acquisite anche da chi, in virtù del ruolo apicale e del livello di responsabilità elevato che ricopre, ha un accesso privilegiato a servizi e sistemi critici, nonché a una grande quantità di dati e informazioni.
(*) MS Azure Certified Security Engineer, Microsoft MVP for Cloud & Datacenter Management and Developer Technologies, autore di libri di informatica. Attualmente ricopre il ruolo di CTO per un gruppo aziendale che opera nel campo dei servizi assicurativi.