Questo argomento mostra come misurare l'anonimità k 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 deidentifichi i dati.
Sebbene l'argomento si concentri sulla visualizzazione della metrica di analisi del rischio di reidentificazione dell'anonimizzazione k, puoi visualizzare anche la metrica l-diversity utilizzando gli stessi metodi.
Questo argomento presuppone che tu abbia già familiarità con il concetto di k-anonimato e la sua utilità per valutare la reidentificabilità dei record all'interno di un set di dati. Inoltre, è utile avere almeno una certa familiarità con il calcolo dell'anonimato k 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 sufficientemente anonimizzato? E come fai a sapere se la tua deidentificazione ha comportato una perdita eccessiva di dati 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 consente di rispondere a queste domande valutando la reidentificabilità dei record del set di dati. Sensitive Data Protection contiene funzionalità integrate per calcolare un valore di k-anonymity su un set di dati in base ai quasi-identificatori specificati. Ciò ti consente di valutare rapidamente se la deidentificazione di una determinata colonna o combinazione di colonne genererà un set di dati che ha più o meno probabilità 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 ai quasi-identificatori. 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 malintenzionato
possa apprenderla con altri mezzi, quindi non la includerai nell'analisi. Ti concentrerai sulle colonne age
e title
rimanenti, con
le quali un malintenzionato potrebbe potenzialmente ottenere informazioni su una persona tramite altre
origini di dati. Le domande a cui stai cercando di rispondere per il set di dati sono:
- Quale effetto avranno i due quasi-identificatori
age
etitle
sul rischio complessivo di reidentificazione dei dati anonimizzati? - In che modo l'applicazione di una trasformazione di anonimizzazione influirà su questo rischio?
Vuoi assicurarti che la combinazione di age
e title
non venga mappata a un
numero ridotto di utenti. Ad esempio, supponiamo che nel
set di dati ci sia un solo utente con il titolo Programmatore I e 69 anni. Un malintenzionato potrebbe essere in grado
di confrontare queste informazioni con dati demografici o altre informazioni disponibili,
scoprire l'identità della persona e il valore del suo punteggio.
Per saperne di più su questo fenomeno, consulta la sezione "ID entità e calcolo di
k-anonimato" nell'argomento concettuale Analisi
del rischio.
Passaggio 1: calcola k-anonymity sul set di dati
Innanzitutto, utilizza Sensitive Data Protection per calcolare la k-anonimità del set di dati inviando il seguente JSON alla risorsa DlpJob
. All'interno
di questo JSON, imposta l'ID entità sulla
colonna user_id
e identifica i due quasi-identificatori come colonne age
e
title
. Inoltre, stai 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-anonimizzazione, Sensitive Data Protection invia i risultati del job a una tabella BigQuery denominata dlp-demo-2.dlp_testing.test_results
.
Passaggio 2: collega i risultati a Looker Studio
Successivamente, 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, il set di dati e la tabella. Al termine, fai clic su Aggiungi. Se visualizzi un avviso che ti informa che stai per aggiungere dati a questo report, fai clic su Aggiungi a report.
I risultati della scansione di k-anonimato sono stati aggiunti al nuovo report di Looker Studio. Nel passaggio successivo, creerai il grafico.
Passaggio 3: crea 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.
Successivamente, 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
- Dimensione intervallo di date
- Dimensione
- Metrica
- Ordina
, come mostrato qui: - Dopo aver cancellato tutti i campi, trascina il campo upper_endpoint dalla colonna Campi disponibili all'intestazione Dimensione.
- Trascina il campo upper_endpoint nell'intestazione Ordina, quindi seleziona Crescente.
- Trascina i campi bucket_size e bucket_value_count nell'intestazione Metrica.
- Seleziona l'icona a sinistra della metrica bucket_size e viene visualizzata un'icona
- Nel campo Nome, digita
Unique row loss
. - In Type (Tipo), scegli Percent (Percentuale).
- Nella sezione Calcolo del confronto, scegli Percentuale del totale.
- In Calcolo progressivo, scegli Somma progressiva.
Modifica.
Fai clic sull'icona Modifica
e poi procedi nel seguente modo:
- 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 mostri 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 univoche di quasi-identificatori per ottenere, sull'asse x, un valore di k-anonimato.
Valori di k-anonymity più elevati indicano un rischio di reidentificazione inferiore. Per ottenere valori di k-anonimizzazione più elevati, tuttavia, dovresti rimuovere percentuali più elevate del totale delle righe e combinazioni di quasi-identificatori 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 deidentificazione possono trovare un migliore equilibrio tra perdita e utilità. Ad esempio, per risolvere il tipo di perdita di dati associato a valori di k-anonimità 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 maggiori informazioni su come farlo, consulta Generalizzazione e raggruppamento e Anonimizzazione dei dati sensibili nei contenuti di testo.