Nel precedente articolo Sviluppare la sicurezza abbiamo fornito una panoramica del paradigma “security by design” ed evidenziato la necessità di agire sulle persone con interventi formativi. Passiamo qui ad esaminare gli interventi da effettuare sui modelli organizzativi con la segregazione dei compiti e sui sistemi con il modello “a cipolla”.
Segregazione dei compiti
La formazione sulla sicurezza, grazie all’aumento del know-how e della consapevolezza sugli aspetti fondanti della sicurezza IT, mette in luce la complessità e le responsabilità connesse a tutti i ruoli coinvolti nei processi IT. Il modo migliore per affrontare questa complessità è applicare il principio noto come Segregation of Duties (SoD), traducibile in italiano come segregazione (o separazione) dei compiti. Implementare questo approccio all’interno della propria organizzazione significa distribuire le funzioni chiave e le conseguenti responsabilità tra più individui o team, in modo da prevenire conflitti di interesse, errori accidentali e frodi.
La segregazione dei compiti è una pratica fondamentale per garantire l’integrità, la sicurezza e l’affidabilità dei sistemi, e si basa sull’applicazione di tre concetti chiave a ciascun sistema, processo o servizio critico:
- Minimo Privilegio (Least Priviledge). Deve essere previsto un insieme di ruoli e permessi tale da consentire agli amministratori dei sistemi di poter concedere a ciascun operatore solo i privilegi strettamente necessari per svolgere le proprie funzioni specifiche. Anche ciascun singolo amministratore può essere autoritativo solo su alcuni gruppi di utenti o di privilegi.
- Controllo Incrociato. Ogni operazione cruciale o potenzialmente dannosa per i sistemi deve prevedere il coinvolgimento di più individui o team organizzati in modo che ciascuno controlli il lavoro dell’altro. Questo approccio riduce il rischio di errore e di frodi, in quanto qualsiasi azione malevola richiederebbe la complicità di più persone.
- Difesa in profondità (Defense-in-Depth). Il sistema deve essere protetto da molteplici livelli di sicurezza e suddiviso in sotto sistemi anch’essi isolati fra loro,così da minimizzare la probabilità che, anche in caso di cedimento di uno o più “barriere”, la minaccia riesca a espandersi oltre il punto di ingresso, arrivando a compromettere il sistema.
Nell’ambito dei servizi informatici, questi tre concetti vengono implementati mediante architetture realizzate sulla base di un modello di sicurezza detto “a cipolla” (Security Onion Model): ciascuno “strato” rappresenta un livello di protezione contraddistinto da caratteristiche comuni che,secondo il principio della Segregazione dei Compiti, è bene affidare al controllo di un individuo o gruppo separato dagli altri.
Security Onion Model
Per meglio comprendere il modello di sicurezza “a cipolla”, si consideri come esempio un’azienda che eroghi servizi IT gestiti mediante portali web accessibili solo a un ristretto numero di utenti autorizzati. Tipicamente, una moderna architettura di sistema alla base di questa tipologia di servizi dovrebbe prevedere la presenza dei seguenti “strati”:
- Difese di natura fisica. Contromisure atte a proteggere i locali che ospitano i server contenenti dati (CED, server farm, etc) dagli attacchi di natura “fisica”: furti, accessi compiuti da personale non autorizzato, tecniche di social engineering, etc.; questo strato può essere gestito localmente, mediante strumenti anti intrusione, dispositivi di sorveglianza e meccanismi di controllo accessi, oppure “esternalizzato” utilizzando server farm in cloud, generalmente già dotate nativamente di questo tipo di meccanismi.
- Difese perimetrali. Contromisure logiche (digitali) per la protezione della parte “esterna” del network aziendale, ovvero quella direttamente esposta al web: Firewall, VPN, Intrusion Prevention & Detection System (IPS/IDS) e altre tecnologie simili atte a prevenire accessi esterni non autorizzati. Per consentire l’accesso del personale autorizzato, gli standard più recenti (sia cogenti che ad adozione volontaria) impongono l’utilizzo di sistemi di autenticazione a due o più fattori (2FA, MFA) per ridurre il rischio di identity theft (furto di identità) a seguito dell’eventuale compromissione di uno o più set di credenziali.
- Difese orizzontali. Contromisure che riguardano le comunicazioni interne alla rete aziendale, o l’accesso e il trasferimento di dati tra uno o più server e/o client facenti parte del network. Lo scopo principale di questo “strato” è quello di garantire la tenuta effettiva della Segregazione dei Compiti mediante l’applicazione di rigorose regole di accesso basate su liste predeterminate (Access-Control List): queste liste sono implementate mediante sistemi di permessi, ruoli e/o gruppi gestiti da un sistema di autenticazione on-premise (Active Directory, LDAP) o su cloud (Microsoft Entra), nonché dall’utilizzo di firewall locali (Windows Firewall, firewalld, UFW) configurati sulle macchine critiche. Lo scopo essenziale di queste contromisure non è soltanto limitare l’accesso al personale non autorizzato, ma anche impedire potenziali attività malevole compiute utilizzando endpoint non autorizzati connessi alla rete aziendale (rogue devices) o “movimenti orizzontali” a partire da endpoint compromessi.
- Difese degli endpoint. Contromisure che proteggono i server dove risiedono le applicazioni, ovvero i servizi esposti tramite il web. Questo “strato” ha l’obiettivo di ridurre l’esposizione delle macchine su cui risiedono i dati o che ospitano i servizi che consentono l’accesso agli stessi, tipicamente mediante l’utilizzo di tecniche di routing, caching e/o throttling più o meno avanzate. Le implementazioni più comuni prevedono l’utilizzo combinato di Wide Application Firewall (WAF), Content-Delivery Network (CDN) e Network AddressTranslation (NAT); la maggior parte di queste contromisure possono essere implementate all’interno dell’infrastruttura IT aziendale oppure esternalizzate tramite servizi terzi, rientrando in tal modo nell’ambito delle difese perimetrali.
- Difese applicative. Contromisure volte a garantire il corretto utilizzo e funzionamento degli applicativi, per evitare accessi indesiderati e manipolazioni anomale dei dati. Si tratta dello “strato” più interno, nonché nella maggior parte dei casi quello più meritevole di attenzione, in quanto rappresenta l’ultimo baluardo di difesa. Il suo obiettivo è quello di ridurre i rischi determinati dalle tecniche di data breach più note e diffuse: gli attacchi diretti al sistema (password attack, SQL injection, requestforgery) egli attacchi basati sullo sfruttamento (exploit) di errori di configurazione o bug presenti in servizi, protocolli, framework, librerie e/o componenti esterni non sicuri o non aggiornati.
La corretta implementazione di ciascuno “strato”, unita alla definizione di altrettanti responsabili di processo (processower), formati per poter operare autonomamente, incrementa in modo significativo la security posture dell’organizzazione, in conformità con le normative in materia di sicurezza e protezione dei dati (GDPR, AGID) e con i controlli previsti dalla norma ISO 27001:2022 (Organization Controls, Physical Controls, People, Technological Controls).
(*) 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.