Questo argomento mostra come misurare la k-anonymity di un set di dati utilizzando Sensitive Data Protection e visualizzarla in Looker Studio. In questo modo, potrai anche comprendere meglio il rischio e valutare i compromessi in termini di utilità che potresti fare se oscuri o anonimizzi i dati.
Sebbene l'argomento si concentri sulla visualizzazione della metrica di analisi del rischio di reidentificazione k-anonymity, puoi anche visualizzare la metrica l-diversity utilizzando gli stessi metodi.
Questo argomento presuppone che tu abbia già familiarità con il concetto di k-anonymity e la sua utilità per valutare la reidentificabilità dei record all'interno di un set di dati. Sarà anche utile avere almeno una certa familiarità con il calcolo della k-anonymity utilizzando Sensitive Data Protection e con l'utilizzo di Looker Studio.
Introduzione
Le tecniche di anonimizzazione possono essere utili per proteggere la privacy dei soggetti durante l'elaborazione o l'utilizzo dei dati. Ma come fai a sapere se un set di dati è stato anonimizzato a sufficienza? E come fai a sapere se l'anonimizzazione ha comportato una perdita di dati eccessiva per il tuo caso d'uso? Ovvero, come puoi confrontare il rischio di reidentificazione con l'utilità dei dati per prendere decisioni basate sui dati?
Il calcolo del valore di k-anonymity di un set di dati aiuta a rispondere a queste domande valutando la reidentificabilità dei record del set di dati. Sensitive Data Protection contiene funzionalità integrate per calcolare un k-anonymity value su un set di dati in base agli identificatori quasi che specifichi. In questo modo, puoi valutare rapidamente se l'anonimizzazione di una determinata colonna o combinazione di colonne comporterà un set di dati con una probabilità maggiore o minore di essere reidentificato.
Set di dati di esempio
Di seguito sono riportate le prime righe di un set di dati di esempio di grandi dimensioni.
user_id |
age |
title |
score |
|---|---|---|---|
602-61-8588 |
24 |
Biostatistician III |
733 |
771-07-8231 |
46 |
Executive Secretary |
672 |
618-96-2322 |
69 |
Programmer I |
514 |
... |
... |
... |
... |
Ai fini di questo tutorial, user_id non verrà trattato, in quanto l'attenzione è rivolta agli identificatori quasi. In uno scenario reale, dovresti assicurarti
che user_id sia oscurato o tokenizzato in modo appropriato. La colonna score è di proprietà di questo set di dati ed è improbabile che un attaccante possa apprenderla con altri mezzi, pertanto non la includerai nell'analisi. Ti concentrerai sulle colonne age e title rimanenti, con le quali un utente malintenzionato potrebbe potenzialmente apprendere informazioni su una persona tramite altre origini dati. Le domande a cui stai cercando di rispondere per il set di dati sono:
- Quale effetto avranno i due identificatori quasi,
ageetitle, sul rischio complessivo di reidentificazione dei dati anonimizzati? - In che modo l'applicazione di una trasformazione di anonimizzazione influirà su questo rischio?
Devi assicurarti che la combinazione di age e title non venga mappata a un numero ridotto di utenti. Supponiamo, ad esempio, che nel set di dati sia presente un solo utente con il titolo Programmer I e che abbia 69 anni. Un utente malintenzionato potrebbe essere in grado di eseguire un controllo incrociato a queste informazioni con i dati demografici o altre informazioni disponibili, scoprire l'identità della persona e apprendere il valore del suo punteggio.
Per ulteriori informazioni su questo fenomeno, consulta la sezione "ID entità e calcolo della
k-anonymity" nell'argomento concettuale Analisi
del rischio.
Passaggio 1: calcolare la k-anonymity sul set di dati
Innanzitutto, utilizza Sensitive Data Protection per calcolare la k-anonymity sul set di dati
inviando il seguente JSON alla
DlpJob risorsa. All'interno
di questo JSON, imposta l'ID entità sulla
user_id colonna e identifica i due identificatori quasi come le colonne age e
title. Stai anche chiedendo a Sensitive Data Protection di salvare i risultati in una nuova tabella BigQuery.
Input JSON:
POST https://dlp.googleapis.com/v2/projects/dlp-demo-2/dlpJobs
{
"riskJob": {
"sourceTable": {
"projectId": "dlp-demo-2",
"datasetId": "dlp_testing",
"tableId": "dlp_test_data_kanon"
},
"privacyMetric": {
"kAnonymityConfig": {
"entityId": {
"field": {
"name": "id"
}
},
"quasiIds": [
{
"name": "age"
},
{
"name": "job_title"
}
]
}
},
"actions": [
{
"saveFindings": {
"outputConfig": {
"table": {
"projectId": "dlp-demo-2",
"datasetId": "dlp_testing",
"tableId": "test_results"
}
}
}
}
]
}
}Al termine del job di k-anonymity, Sensitive Data Protection invia i risultati del job
a una tabella BigQuery denominata
dlp-demo-2.dlp_testing.test_results.
Passaggio 2: collegare i risultati a Looker Studio
Ora collegherai la tabella BigQuery che hai creato nel passaggio 1 a un nuovo report in Looker Studio.
Apri Looker Studio.
Fai clic su Crea > Report.
Nel riquadro Aggiungi dati al report , in Connetti ai dati , fai clic su BigQuery. Potresti dover autorizzare Looker Studio ad accedere alle tue tabelle BigQuery.
Nel selettore di colonne, seleziona I miei progetti. Quindi scegli il progetto, set di dati e la tabella. Al termine, fai clic su Aggiungi. Se visualizzi un messaggio che ti informa che stai per aggiungere dati a questo report, fai clic su Aggiungi al report.
I risultati della scansione di k-anonymity sono stati aggiunti al nuovo report di Looker Studio. Nel passaggio successivo, creerai il grafico.
Passaggio 3: creare il grafico
Per inserire e configurare il grafico:
- In Looker Studio, se viene visualizzata una tabella di valori, selezionala e premi Elimina per rimuoverla.
- Nel menu Inserisci, fai clic su Grafico combinato.
- Fai clic e disegna un rettangolo sul canvas nel punto in cui vuoi visualizzare il grafico.
Ora configura i dati del grafico nella scheda Dati in modo che il grafico mostri l'effetto della variazione delle dimensioni e degli intervalli di valori dei bucket:
- Cancella i campi sotto le seguenti intestazioni puntando a ogni campo
e facendo clic sulla X, come mostrato qui:
- Dimensione intervallo di date
- Dimensione
- Metrica
- Ordina
- Con tutti i campi cancellati, trascina il campo upper_endpoint dalla colonna Campi disponibili all'intestazione Dimensione.
- Trascina il campo upper_endpoint nell'intestazione Ordina, quindi seleziona Ascendente.
- Trascina i campi bucket_size e bucket_value_count nell'intestazione Metrica.
- Punta all'icona a sinistra della metrica bucket_size e viene visualizzata un'icona di modifica Edit.
Fai clic sull'icona Edit
e poi:
- Nel campo Nome, digita
Unique row loss. - In Tipo, scegli Percentuale.
- In Calcolo di confronto, scegli Percentuale del totale.
- In Calcolo progressivo, scegli Somma cumulativa.
- Nel campo Nome, digita
- Ripeti il passaggio precedente per la metrica bucket_value_count, ma nel campo
Nome, digita
Unique quasi-identifier combination loss.
Al termine, la colonna dovrebbe essere visualizzata come mostrato qui:
Infine, configura il grafico in modo che visualizzi un grafico a linee per entrambe le metriche:
- Fai clic sulla scheda Stile nel riquadro a destra della finestra.
- Per la serie 1 e la serie 2, scegli Linea.
- Per visualizzare il grafico finale da solo, fai clic sul pulsante Visualizza nell'angolo in alto a destra della finestra.
Di seguito è riportato un grafico di esempio dopo aver completato i passaggi precedenti.
Interpretare il grafico
Il grafico generato traccia, sull'asse y, la potenziale percentuale di perdita di dati sia per le righe univoche sia per le combinazioni di identificatori quasi univoci per ottenere, sull'asse x, un valore di k-anonymity.
Valori di k-anonymity più elevati indicano un rischio minore di reidentificazione. Per ottenere valori di k-anonymity più elevati, tuttavia, dovresti rimuovere percentuali maggiori del totale delle righe e combinazioni di identificatori quasi univoci più elevate, il che potrebbe ridurre l'utilità dei dati.
Fortunatamente, l'eliminazione dei dati non è l'unica opzione per ridurre il rischio di reidentificazione. Altre tecniche di anonimizzazione possono trovare un equilibrio migliore tra perdita e utilità. Ad esempio, per risolvere il tipo di perdita di dati associato a valori di k-anonymity più elevati e a questo set di dati, potresti provare a raggruppare le età o i titoli di lavoro per ridurre l'unicità delle combinazioni di età/titolo di lavoro. Ad esempio, potresti provare a raggruppare le età in intervalli di 20-25, 25-30, 30-35 e così via. Per ulteriori informazioni su come eseguire questa operazione, consulta Generalizzazione e raggruppamento e Anonimizzazione dei dati sensibili nei contenuti di testo.