Visualizzazione del rischio di reidentificazione utilizzando Data Studio

Questo argomento mostra come misurare la k-anonimato di un set di dati utilizzando Sensitive Data Protection e visualizzarla in Data Studio. In questo modo, potrai anche comprendere meglio il rischio e valutare i compromessi in termini di utilità che potresti dover fare se oscuri o anonimizzi i dati.

Sebbene l'argomento si concentri sulla visualizzazione della metrica di analisi dei rischi di reidentificazione della k-anonymity, puoi anche visualizzare la metrica della ℓ-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à utile anche avere una certa familiarità con il calcolo della k-anonimato utilizzando Sensitive Data Protection e con l'utilizzo di Data Studio.

Introduzione

Le tecniche di anonimizzazione possono essere utili per proteggere la privacy dei soggetti mentre elabori o utilizzi i dati. Ma come fai a sapere se un set di dati è stato sufficientemente anonimizzato? E come fai a sapere se l'anonimizzazione ha comportato una perdita di dati eccessiva per il tuo caso d'uso? In altre parole, 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 valore di k-anonymity su 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 genererà un set di dati con maggiori o minori 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, poiché l'attenzione è concentrata sui 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 utente malintenzionato possa apprenderla con altri mezzi, quindi non la includerai nell'analisi. Ti concentrerai sulle colonne rimanenti age e title, con le quali un malintenzionato potrebbe potenzialmente ottenere informazioni su un individuo tramite altre fonti di dati. Le domande a cui stai cercando di rispondere per il set di dati sono:

  • Quale effetto avranno i due quasi-identificatori, age e title, 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. Ad esempio, supponiamo che nel set di dati sia presente un solo utente con il titolo Programmer I e l'età di 69 anni. Un malintenzionato potrebbe essere in grado di fare un controllo incrociato di queste informazioni con dati demografici o altre informazioni disponibili, capire chi è la persona e scoprire il valore del suo punteggio. Per ulteriori informazioni su questo fenomeno, consulta la sezione "ID entità e calcolo della k-anonimità" nell'argomento concettuale Analisi dei rischi.

Passaggio 1: calcola 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 risorsa DlpJob. All'interno di questo JSON, imposti l'ID entità sulla colonna user_id e identifichi i due quasi-identificatori come colonne age e title. Inoltre, stai indicando 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"
            }
          }
        }
      }
    ]
  }
}

Una volta completato il job di k-anonimato, 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 Data Studio

Successivamente, collegherai la tabella BigQuery che hai generato nel passaggio 1 a un nuovo report in Data Studio.

  1. Apri Data Studio.

    Apri Data Studio

  2. Fai clic su Crea > Report.

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

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

I risultati della scansione di anonimato k sono stati aggiunti al nuovo report di Data Studio. Nel passaggio successivo, creerai il grafico.

Passaggio 3: crea il grafico

Per inserire e configurare il grafico:

  1. In Data 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 nel punto in cui deve comparire 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 su ciascun campo e facendo clic sulla X, come mostrato qui:
    Dettaglio del campo del timestamp con il pulsante Elimina attivato.
    • 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 nell'intestazione Ordina, quindi seleziona Crescente.
  4. Trascina i campi bucket_size e bucket_value_count nell'intestazione Metrica.
  5. Posiziona il puntatore del mouse sull'icona a sinistra della metrica bucket_size per visualizzare un'icona di modifica . Fai clic sull'icona Modifica, quindi segui questi passaggi:
    1. Nel campo Nome, digita Unique row loss.
    2. In Tipo, scegli Percentuale.
    3. In Calcolo del confronto, scegli Percentuale del 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 Serie 1 e 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 grafico di esempio dopo aver completato i passaggi precedenti.

Grafico finale

Interpretazione del grafico

Il grafico generato mostra, sull'asse y, la percentuale potenziale 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 inferiore di reidentificazione. Tuttavia, per ottenere valori di k-anonymity più elevati, dovresti rimuovere percentuali più elevate di righe totali e combinazioni univoche di quasi-identificatori più elevate, il che potrebbe ridurre l'utilità dei dati.

Per fortuna, 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 associata a valori di k-anonimato più elevati e a questo set di dati, puoi provare a raggruppare le età o le qualifiche professionali per ridurre l'unicità delle combinazioni di età/qualifica professionale. Ad esempio, potresti provare a raggruppare le età in intervalli di 20-25, 25-30, 30-35 e così via. Per saperne di più su come eseguire questa operazione, consulta Generalizzazione e bucketing e Anonimizzazione dei dati sensibili nei contenuti di testo.