Visualizzazione del rischio di reidentificazione utilizzando Looker Studio

Questo argomento mostra come misurare l'k a k di un set di dati utilizzando la Protezione dei dati sensibili e come visualizzarla in Looker Studio. In questo modo, potrai anche comprendere meglio i rischi e valutare i compromessi in termini di utilità che potresti fare se oscurate o anonimizzate i dati.

Sebbene l'obiettivo di questo argomento sia la visualizzazione della metrica di analisi del rischio di reidentificazione con l'anonimizzazione K, puoi anche visualizzare la metrica l-diversity utilizzando gli stessi metodi.

Questo argomento presuppone che tu abbia già familiarità con il concetto di k e con la sua utilità per valutare la reidentificabilità dei record all'interno di un set di dati. Inoltre, sarà utile avere almeno una certa familiarità con il modo in cui calcolare l'anonimizzazione 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 anonimizzato in modo sufficiente? E come farai a sapere se la spersonalizzazione ha comportato una perdita eccessiva di dati per il tuo caso d'uso? In altre parole, come puoi confrontare il rischio di reidentificazione con l'utilità dei dati per contribuire a prendere decisioni basate sui dati?

Il calcolo del valore di k-anonimità 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 valore di k-anonimità in un set di dati in base ai quasi-identificatori specificati. In questo modo, puoi valutare rapidamente se l'anonimizzazione di una determinata colonna o combinazione di colonne comporterà un set di dati più o meno probabile 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à affrontato, in quanto l'attenzione è rivolta ai quasi identificatori. In uno scenario reale, ti consigliamo di assicurarti che user_id venga oscurato o tokenizzato in modo appropriato. La colonna score è di proprietà di questo set di dati ed è improbabile che un malintenzionato possa rilevarla con altri mezzi, pertanto non la includerai nell'analisi. La tua attenzione sarà rivolta alle colonne age e title rimanenti, con le quali un malintenzionato potrebbe potenzialmente ottenere informazioni su una persona tramite altre fonti di dati. Le domande a cui stai cercando di rispondere per il set di dati sono:

  • Quale sarà l'effetto dei due quasi-identificatori, age e title, sul rischio complessivo di reidentificazione dei dati anonimizzati?
  • In che modo l'applicazione di una trasformazione di anonimizzazione influisce 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 sia presente un solo utente il cui titolo è Programmatore I e che abbia 69 anni. Un malintenzionato potrebbe essere in grado di eseguire un controllo incrociato di queste informazioni con dati demografici o altre informazioni disponibili, capire chi è la persona e conoscere il valore del suo punteggio. Per ulteriori informazioni su questo fenomeno, consulta la sezione "ID entità e calcolo dell'k" nell'argomento concettuale Analisi del rischio.

Passaggio 1: calcola k-anonymity nel set di dati

Innanzitutto, utilizza Sensitive Data Protection per calcolare l'k nel set di dati inviando il seguente JSON alla risorsa DlpJob. In questo JSON, imposta l'ID entità nella colonna user_id e identifica i due quasi-identificatori come colonne age e title. Inoltre, indichi 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 anonimizzazione k, 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

A questo punto, dovrai collegare la tabella BigQuery creata nel passaggio 1 a un nuovo report in Looker Studio.

  1. Apri Looker Studio.

    Apri Looker Studio

  2. Fai clic su Crea > Report.

  3. Nel riquadro Aggiungi dati al report, fai clic su BigQuery in Connetti ai dati. Potresti dover autorizzare Looker Studio ad accedere alle tue tabelle BigQuery.

  4. Nel selettore delle colonne, seleziona I miei progetti. Quindi scegli il progetto, il set di dati e la tabella. Al termine, fai clic su Aggiungi. Se viene visualizzata una notifica che ti informa che stai per aggiungere dati a questo report, fai clic su Aggiungi a report.

I risultati della scansione di anonimizzazione k 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:

  1. In Looker Studio, se viene visualizzata una tabella di valori, selezionala e premi Elimina per rimuoverla.
  2. Nel menu Inserisci, fai clic su Grafico combinato.
  3. Fai clic e disegna un rettangolo sul canvas 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:

  1. Cancella i campi sotto le seguenti intestazioni posizionando il puntatore del mouse su ciascun campo e facendo clic sulla X , come mostrato di seguito:
    Dettaglio del campo timestamp con il pulsante Elimina attivo.
    • Dimensione intervallo di date
    • Dimensione
    • Metrica
    • Ordina
  2. Dopo aver cancellato tutti i campi, trascina il campo upper_endpoint dalla colonna Campi disponibili all'intestazione Dimensione.
  3. Trascina il campo upper_endpoint all'intestazione Ordina, quindi seleziona In ordine crescente.
  4. Trascina i campi bucket_size e bucket_value_count nell'intestazione Metrica.
  5. Passa il mouse sopra l'icona a sinistra della metrica bucket_size e viene visualizzata l'icona Modifica. Fai clic sull'icona Modifica e poi segui questi passaggi:
    1. Nel campo Nome, digita Unique row loss.
    2. In Tipo, scegli Percentuale.
    3. In Calcolo del confronto, scegli Percentuale sul totale.
    4. In Calcolo progressivo, scegli Somma progressiva.
  6. 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 apparire come mostrato di seguito:

Screenshot dell'elenco dei campi.

Infine, configura il grafico in modo che mostri un grafico a linee per entrambe le metriche:

  1. Fai clic sulla scheda Stile nel riquadro a destra della finestra.
  2. Per la serie 1 e la serie 2, scegli Linea.
  3. Per visualizzare il grafico finale da solo, fai clic sul pulsante Visualizza nell'angolo in alto a destra della finestra.

Di seguito è riportato un esempio di grafico dopo aver completato i passaggi precedenti.

Grafico finale

Interpretazione del 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, nonché sull'asse x un valore di k-anonimità.

Valori di k-anonimità più elevati indicano un rischio inferiore di reidentificazione. Tuttavia, per ottenere valori di k-anonimità più elevati, devi rimuovere percentuali più elevate di righe totali 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 identificazione nuovamente. 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-anonimità più elevati e a questo set di dati, puoi provare a raggruppare le età o i titoli di lavoro per ridurre l'unicità delle combinazioni di età/titolo di lavoro. Ad esempio, puoi provare a raggruppare le età in fasce di 20-25, 25-30, 30-35 e così via. Per maggiori informazioni su come eseguire questa operazione, consulta Generalizzazione e tasca e Anonimizzazione dei dati sensibili nei contenuti di testo.