Il GDPR ha introdotto una disciplina in merito al trattamento e alla conservazione dei dati sui sistemi aziendali, rendendo non soltanto auspicabile, ma obbligatorio ai sensi della legge, l’adozione di tutte le misure tecniche e organizzative necessarie per garantire la protezione delle informazioni sensibili.

In questo frangente, una disciplina come il data masking assume un ruolo fondamentale nel garantire che, in caso di un data breach, i dati che finiscono nelle mani dei criminali o vengono illegalmente divulgati attraverso canali di pubblico dominio non possano essere in alcun modo ricondotti al loro aspetto sensibile, individuando ad esempio l’identità del loro legittimo proprietario.

Il data masking assume per le aziende pubbliche e private una duplice valenza, nel rispetto della normativa GDPR e della protezione dei dati in funzione di tutelare il proprio business per quanto concerne i possibili danni reputazionali che un data breach finisce inevitabilmente per comportare, a prescindere dalle conseguenze legali che ne derivano.

Vediamo in cosa consiste il data masking, quali sono le tecniche che vengono adottate per mascherare i dati e perché, se tale procedura viene eseguita in maniera corretta, un data breach può rivelarsi addirittura indolore per le sorti dell’azienda.

Cos’è il data masking

Il data masking è una disciplina che consente di creare una versione simile, ma non autentica, dei dati reali conservati da un’organizzazione, in modo che mantengano la loro valenza funzionale, ma non consentano di risalire all’identità dei proprietari nel caso in cui avvenga un data breach.

In altri termini, il data masking ha l’obiettivo di proteggere i dati reali mettendo a disposizione dei processi aziendali un alter ego perfettamente funzionale nel soddisfare tutte le funzioni che non necessitano nello specifico dei dati reali.

L’esigenza di un data masking deriva dal fatto che anche il sistema di sicurezza informatico aziendale più sicuro, non sarà mai sicuro al 100%, per cui le organizzazioni non possono escludere a priori la possibilità di una violazione dei dati di cui dispongono, e di cui sono fermamente responsabili. Molte volte, anche il più blindato dei sistemi può cadere vittima di una data breach, per colpe di fatto non sue.

A complicare ulteriormente lo scenario consolidato, che potremmo identificare fino alla pandemia Covid-19, è intervenuto un ulteriore fattore: oggi non ha più alcun senso pratico parlare di perimetro di sicurezza, la circolazione dei dati nella rete rappresenta un concetto assolutamente fluido. Per rendercene conto, è sufficiente porci una domanda: chi ha accesso ai dati? Sicuramente i dipendenti delle varie linee di business dell’azienda stessa, ma non solo.

Nel novero di attori coinvolti nella supply chain aziendale rientrano anche tutti i partner, i fornitori e tutti quei consulenti in outsourcing che, oltretutto in un contesto di lavoro ibrido, dispongono di autenticazioni per accedere ai sistemi aziendali, con policy e autorizzazioni di accesso ai dati non sempre semplici da definire. I rischi ci sono, sono evidenti e in continua crescita, di pari passo con il fronte della minaccia informatica.

Il data masking ci viene in aiuto con una logica molto semplice: togliere valore ai dati, ai fini di renderli meno profittevoli possibile per gli eventuali malintenzionati. Per raggiungere questo scopo, il data masking utilizza un’ampia varietà di tecniche per mascherare i dati sensibili originali, rendendoli fittizi e assolutamente non correlabili con le identità di partenza. Tra queste ritroviamo le procedure di offuscamento, anonimazione e pseudonimazione. Le esamineremo a breve. Per ora ci basti sapere che il data masking non modifica il formato dei dati conservati nei sistemi aziendali; pertanto, non ne pregiudica l’impiego da parte delle applicazioni che vi accedono con le opportune autorizzazioni. A prescindere dal metodo scelto, vengono semplicemente variati i valori ai fini di renderli non riconoscibili, nemmeno impiegando i più avanzati processi di reverse engineering.

Il data masking si riferisce a molti tipi di dati. I principali sono convenzionalmente siglati come segue:

  • PII (Personally Identifable Information), genericamente intesi quali i dati personali
  • PHI (Protected Health Information), equivalenti ai dati di carattere sanitario
  • PCI-DSS (Payment Card Information Data Security Standard), equivalenti dai dati di natura finanziaria
  • ITAR (Intellectual Property), a cui fa riferimento l’ampio contesto correlabile alla proprietà intellettuale.

Il data masking generalmente si applica ai cosiddetti non-production environment, come lo sviluppo software, in particolare per quanto concerne il testing, in cui è fondamentale la relazione tra l’applicazione e il database, così come la formazione del personale ed altre situazioni in cui non è fondamentale conoscere il dato reale. Affinché un’applicazione funzioni, il più delle volte non mi interessa conoscere gli estremi dell’identità del soggetto a cui si riferiscono i dati, ma la semplice relazione tra i dati stessi.

Le tipologie di data masking

Accomunate dal medesimo obiettivo, esistono varie tipologie di data masking, vediamo quali sono i più diffusi.

Data masking statico (Static Data Masking – SDM)

Il data masking statico è definito come tale in quando prevede solitamente una copia del database in produzione, dove vengono sostituiti i valori relativi ai dati sensibili, in modo da non rivelare le informazioni reali senza pregiudicare la funzionalità per le applicazioni (sviluppo, test, training, ecc.). Si applica il principio del “copy then mask”.

Il data masking statico solitamente prevede almeno le seguenti fasi operative:

  • Backup del database e conservazione in un ambiente separato e differente rispetto a quello della produzione
  • Rimozione dei dati non necessari e offuscazione dei dati sensibili
  • Salvataggio della copia soggetta a data masking, a disposizione per le funzioni previste.

Data masking dinamico (Dynamic Data Masking – DDM)

Il data masking dinamico avviene direttamente durante la fase di esecuzione di un’applicazione, con uno streaming che non richiede il salvataggio dei dati utilizzati su alcun sistema. Si tratta pertanto, come prevedibile, di un sistema utilizzato quando si ha a che fare con quantità di dati, anche importanti, in condizione di sola lettura. Il fatto di non dover salvare alcuna modifica consente di mascherare il dato senza l’esigenza di doverlo nuovamente archiviare. Si applica il principio del “mask while copy”.

A livello tecnico è possibile implementare un data masking dinamico utilizzando un database in proxy, in cui avviene una modifica alle query che interrogano il database originale, ai fini di fornire all’applicazione che li richiede dei dati mascherati. A differenza del data masking statico, il data masking dinamico si manifesta più snello in quanto non richiede una preparazione dei dati specifica, come la copia del database, ma interroga in maniera differente il database in produzione.

Data masking “on the fly” (On-the-fly Data Masking)

Il data masking “al volo” rappresenta una variante incrementale del data masking statico, in quanto prevede il progressivo trasferimento di dati dall’ambiente di produzione ad altri ambienti, come quelli in cui vengono eseguiti il test e le altre fasi di sviluppo di un’applicazione.

Non avrebbe alcun senso effettuare una copia integrale per mascherare ogni volta tutti i dati, per cui si prevede un processo selettivo, finalizzato a mettere a disposizione dell’applicazione un subset di dati soltanto quando vengono effettivamente richiesti. Si tratta di una tipologia di data masking particolarmente utilizzata nell’ambito delle organizzazioni focalizzate sullo sviluppo software con metodologie CI/CD con integrazioni di dati molto frequenti o di grande entità.

Offuscazione dati statistici (Statistical Data Obfuscation)

La statistical data obfuscation è una variante di data masking che interviene quando i dati di produzione contengono varie informazioni di carattere statistico, che vanno mascherate in maniera selettiva. In termini pratici, si tratta di tecniche che intervengono sui data set per condividere in maniera differenziale le informazioni, senza rivelare alcuna informazione di carattere sensibile, né consentirne l’individuazione.

Data masking deterministico (Deterministic Data Masking)

Il data masking deterministico è una variante del data masking statico che prevede la sostituzione di una colonna in un database con il medesimo valore. Tale accorgimento risulta particolarmente comodo, ad esempio, quando si sostituisce un nome con un uno pseudonimo, in quanto la modifica si applica a tutte le tabelle correlate alla colonna in questione, a prescindere dall’ambiente in cui viene eseguita l’applicazione che richiede i dati da mascherare.

Le principali tecniche di data masking

Nel corso degli anni sono stati sviluppati vari metodi di data masking, ciascuno valido entro le condizioni e gli obiettivi che vengono determinati. Vediamo pertanto quali sono i metodi di data masking più diffusi e cosa consentono di realizzare.

Pseudonimizzazione

La pseudonimizzazione rappresenta il metodo di data masking per eccellenza, al punto da essere enfatizzato e suggerito in varie occasioni anche nel testo del GDPR. La sua applicazione consente di nascondere a terzi l’identità del soggetto che si intende tutelare, riducendo al tempo stesso che i dati vengano collegati a domini diversi. Ciò avviene sostituendo il dato reale con uno pseudonimo, che non può essere in alcun modo ricondotto al dato originale se non mediante informazioni aggiuntive, conservate in separata sede rispetto ai dati sensibili, seguendo adeguate logiche di sicurezza.

Nella sua generica contestualizzazione, la pseudonimizzazione dei dati può avvenire eseguendo varie tecniche di sostituzione, tra cui:

  • Contatore incrementale: al dato reale viene associato un numero fornito da un contatore che genera dei valori con una logica incrementale (es. 001, 002, ecc.), conservando in separata sede una tabella di associazione;
  • Generazione di numeri casuali: tecnica di per sé identica rispetto all’impiego di un contatore incrementale, rispetto a cui l’unica differenza risiede nella generazione casuale dei valori associati al dato reale per la sua mascheratura (es. 001, 004, 014, ecc.);
  • Variazione di numero e data: vengono modificati i valori entro un intervallo specificato, in modo da non consentire la sua identificazione. Ad esempio, il campo relativo alla data di nascita può essere variato dal 10 dicembre al 6 gennaio, applicando un range di +/- 30 giorni rispetto al valore reale.

A prescindere dalla tecnica impiegata, il data masking per pseudonimizzazione viene solitamente eseguita dal titolare del trattamento dei dati, in conformità con le disposizioni del GDPR, durante la raccolta dei dati, ancor prima della loro elaborazione. Nulla esclude che il data masking venga eseguito da soggetti terzi, delegati al trattamento dei dati dal legittimo titolare, a patto rispettare le condizioni normative e di policy vigenti.

Anonimizzazione

Rispetto alla pseudonimizzazione, l’anonimizzazione risolve il problema alla radice, eliminando qualsiasi possibile correlazione tra il dato reale e il dato reso anonimo. In questo caso, viene infatti a mancare proprio lo pseudonimo che consente l’associazione con il dato originale. Esistono moltissime tecniche di anonimizzazione del dato, tra cui:

  • Generalizzazione: consente nel variare la scala di grandezza degli attributi, mediante la loro estensione. Torrente diventa fiume, nazione diventa continente, e così via;
  • Scrambling: si tratta di un metodo che impiega un algoritmo in grado di mescolare le lettere dell’alfabeto, per rendere del tutto irriconoscibile la fonte originale;
  • Rumore statico: analogamente allo scrambling, vengono utilizzati algoritmi in grado di alterare la natura degli attributi, rendendoli irriconoscibili rispetto alla condizione originale, senza tuttavia pregiudicare il loro impiego da parte delle applicazioni;
  • Annullamento / cancellazione: il dato sensibile viene risolto con la sua totale eliminazione, che equivale alla sua sostituzione con un valore nullo. È facile intuire la robustezza di tale metodo che, a causa della definitiva perdita di integrità referenziale, rende il dato inutilizzabile per le applicazioni.

Shuffling

Sotto il generico cappello di shuffling vengono ricondotte tutte le tecniche di data masking che consistono nel mischiare in modo del tutto casuale i dati contenuti all’interno di un database, pur mantenendo le relazioni logiche che consentono di utilizzare funzionalmente i dati stessi all’interno delle applicazioni.

Rispetto ai precedenti metodi analizzati, che eliminano dichiaratamente qualsiasi possibile correlazione, lo shuffling si caratterizza per il fatto di poter mantenere intatte alcune relazioni tra gli attributi, con tutti i pro (maggiori informazioni) e i contro (minor robustezza) del caso. Esiste tuttavia la possibilità di eseguire uno shuffling totalmente casuale, al punto da eliminare qualsiasi relazione all’origine, anche se questa equivale probabilmente alla condizione meno interessante.

Le due varianti di data shuffling “non casuali” più diffuse sono:

  • Designazione dei gruppi: le colonne del database vengono associate in base all’appartenenza allo stesso gruppo, mescolando contestualmente i valori interessati. La colonna automobile può essere ad esempio collegata a marca e modello. I valori iniziali non vengono tuttavia modificati;
  • Designazione delle partizioni: i dati vengono mischiati all’interno delle partizioni, mantenendo in maniera più o meno evidente i collegamenti originali tra gli attributi. Ad esempio, è possibile effettuare lo shuffling di tutte le righe che prevedono il valore automobile sotto la colonna veicolo, e via dicendo;

Crittografia

Seconda la sua definizione più diffusa, la crittografia informatica consente di rendere illeggibile un set di dati, a meno di utilizzare un’apposita chiave, generata durante il processo crittografico. Tale informazione va ovviamente conservata in separata sede rispetto ai dati trattati.

Dal punto di vista informatico, la crittografia impiega degli appositi algoritmi di cifratura, la cui natura rende più o meno robusta la mascheratura del dato. In base alle sue caratteristiche, la chiave di cifratura generata viene definita simmetrica o asimmetrica:

  • Cifratura a chiave simmetrica: la simmetria è data dal fatto che la medesima chiave viene impiegata sia per cifrare che per decodificare i dati. Si tratta di un processo veloce, ma poco robusto dal punto di vista della sicurezza, in quanto, utilizzando determinate tecniche, può risultare anche piuttosto semplice intercettare la chiave stessa;
  • Cifratura a chiave asimmetrica (double hash): come il nome stesso lascia presumere, questo metodo crittografico applica due differenti chiavi, una privata e una pubblica, rendendo indispensabile il possesso di entrambe per poter decifrare i dati. Le due chiavi generate sono tra loro funzionali grazie ad una correlazione di tipo matematico.

Il processo di data masking

A prescindere dalla sua natura, statica o dinamica, il data masking prevede solitamente un processo ciclico, la cui natura è il risultato di una precisa scelta in termini di design da parte degli specialisti. In una condizione generalizzata, potremmo descrivere un processo di data masking attraverso le seguenti fasi:

  • Selezione dei dati: prima di procedere alla mascheratura in senso stretto, è necessario analizzare i database ai fini di capire quali sono i dati sensibili che vanno necessariamente offuscati. Tale fase risulta essenziale per il fatto che comporta la scelta di quali relazioni e vincoli di integrità referenziale vadano o meno conservati ai fini della fruibilità dei dati da parte delle applicazioni a cui il database è connesso, per svolgere correttamente tutti i test e le analisi che si rendono necessarie;
  • Scelta della tecnica di data masking: funzionalmente agli obiettivi e ai requisiti contestuali, viene scelta la tecnica di data masking in grado di dare le migliori risposte sia dal punto di vista della qualità operativa che dei termini di impegno che necessariamente comporta, in termini di tempi e budget a disposizione;
  • Esecuzione del data masking: applicazione della tecnica statica o dinamica prescelta, con l’obiettivo di mascherare i dati attraverso procedure ripetitibili e irreversibili come quelle che abbiamo precedentemente illustrato, ai fini di ottenere dati equivalenti dal punto di vista della struttura, ma numericamente differenti rispetto al dato reale. Tale condizione è infatti quella che offre le maggiori garanzie di fruibilità da parte delle applicazioni. Ad esempio, un numero di carta di credito offuscato presenterà dei valori mescolati o del tutto differenti rispetto al dato reale, ma la struttura caratteristica rimarrà invariata, altrimenti nessuna applicazione predisposta per tale scopo sarebbe mai in grado di riconoscerla.

Data masking e GDPR: il ruolo della pseudonimizzazione dei dati

Il data masking vanta un rapporto speciale con il GDPR, il Regolamento Europeo sulla Protezione dei Dati, la cui normativa ha costretto le aziende a prendere atto di una precisa responsabilità nei confronti dei dati sensibili. L’origine di qualsiasi possibile implicazione in merito risiede nel famigerato articolo 32 del GDPR, che non lascia spazio ai dubbi quando afferma che vadano messe in atto tutte le “misure tecniche e organizzative adeguate a garantire un livello di sicurezza adeguato al rischio”.

In altri termini, se un’azienda vittima di un data breach dovesse finire di fronte ad un giudice, per non incorrere in pesanti conseguenze, anche dal punto di vista della possibile rivalsa esercitata da un proprio cliente che ha visto i propri dati finire altrove, deve essere in grado di dimostrare di aver fatto tutto il possibile per evitare la violazione dei dati, sia a livello tecnico che a livello organizzativo. Il resto diventa materia per periti, ma quanto ci preme mettere in evidenza è come il GDPR non si limiti ad indicazioni di carattere generico, ma entra nel dettaglio delle procedure che possono favorire la protezione dei dati. Il Considerando 28 del GDPR identifica nella pseudonimizzazione una pratica efficace per ridurre i rischi derivanti da un possibile data breach.

Nel contesto dell’articolo 34, il GDPR precisa come, proprio quando si verifica un data breach, l’azienda titolare del trattamento dei dati non sia tenuta a comunicare l’episodio ai diretti interessati, soltanto se aveva proattivamente adoperato le misure tecniche ed organizzative di cui all’articolo 32, in quanto utili a rendere i dati sensibili del tutto incomprensibili anche a chi volesse disporne per utilizzi illeciti.

I tre punti citati evidenziano chiaramente l’intento del legislatore nel favorire una condotta in cui il dato sia effettivamente fruibile soltanto dal titolare del trattamento e riconoscono nella pseudonimizzazione la procedura ideale per dare atto ad una strategia operativa in cui, normativa alla mano: “i dati personali non possano più essere attribuiti a un interessato specifico senza l’utilizzo di informazioni aggiuntive, a condizione che tali informazioni siano conservate separatamente e soggette a misure tecniche e organizzative intese a garantire che tali dati personali non siano attribuiti a una persona fisica identificata o identificabile”.

La procedura di pseudonimizzazione dei dati viene ritenuta ottimale dal GDPR, al punto da essere ribadita in varie circostanze nella descrizione normativa, anche nel contesto degli artt. 25, 40 e 89.

La pseudonimizzazione del dato viene utilizzato in molti contesti in cui si rende necessaria la garanzia della privacy degli individui, come nel caso delle procedure concorsuali pubbliche, in cui i punteggi vanno divulgati pubblicamente, senza tuttavia essere riconducibili al candidato, se non da parte della commissione giudicatrice e, ovviamente, dal candidato stesso.

In questi casi si adotta una procedura di pseudonimizzazione molto semplice, che consiste nell’assegnare al dato reale (il nome del candidato) uno pseudonimo (numero di protocollo della domanda di iscrizione). In questo modo, qualsiasi comunicazione e qualsiasi graduatoria consentiranno la piena funzionalità della procedura di concorso, senza tuttavia consentire al pubblico di sapere quali risultati sono stati prodotti dai candidati, almeno fino al termine della procedura.

L’identificazione del candidato è possibile soltanto in due modi, che sono quelli effettivamente utili allo svolgimento del concorso: il registro di protocollo, che viene fornito alla commissione giudicatrice, in cui è presente l’associazione del nominativo del candidato con il numero di protocollo della pratica. Tale informazione è inoltre nota a monte al candidato.

Questo esempio mira a mettere in evidenza come il data masking sia utile non soltanto in caso di un data breach, ma in generale per garantire le condizioni di privacy nel contesto del trattamento dei dati sensibili, anche in contesti assolutamente leciti e consensuali, come nel caso del concorso pubblico.

Il GDPR, nell’ambito del Considerando 26, considera esplicitamente anche la procedura di anonimizzazione, affermando come i principi di protezione dei dati non siano in tal caso applicabili, in quanto il dato è reso anonimo e pertanto non consente di identificare in alcun modo l’interessato. L’unico accorgimento da tenere, in questo caso, è un’adeguata attenzione nella possibile combinazione dei dati anonimizzati. L’associazione di più dati genera infatti un’informazione, la cui interpretazione non esclude il possibile riconoscimento.