Visualizzazione del rischio di reidentificazione utilizzando Looker Studio

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 e title 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.

  1. Apri Looker Studio.

    Apri Looker Studio

  2. Fai clic su Crea > Report.

  3. 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.

  4. 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:

  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 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:

  1. Cancella i campi sotto le seguenti intestazioni puntando a ogni campo e facendo clic sulla X , come mostrato qui:
    Dettaglio del campo timestamp con 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. Seleziona l'icona a sinistra della metrica bucket_size e viene visualizzata un'icona Modifica. Fai clic sull'icona Modifica e poi procedi nel seguente modo:
    1. Nel campo Nome, digita Unique row loss.
    2. In Type (Tipo), scegli Percent (Percentuale).
    3. Nella sezione 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 essere visualizzata come mostrato qui:

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 grafico di esempio dopo aver completato i passaggi precedenti.

Grafico finale

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.