Visualizar o risco de reidentificação com o Looker Studio

Este tópico mostra como medir o anonimato k de um conjunto de dados através da Proteção de dados confidenciais e visualizá-lo no Looker Studio. Ao fazê-lo, também pode compreender melhor o risco e ajudar a avaliar as concessões na utilidade que pode estar a fazer se ocultar ou desidentificar dados.

Embora o foco deste tópico seja a visualização da métrica de análise de risco de reidentificação de k-anonimato, também pode visualizar a métrica de l-diversidade através dos mesmos métodos.

Este tópico pressupõe que já conhece o conceito de anonimato k e a sua utilidade para avaliar a reidentificação de registos num conjunto de dados. Também é útil ter alguma familiaridade com a forma de calcular a anonimização k através da proteção de dados confidenciais e com a utilização do Looker Studio.

Introdução

As técnicas de desidentificação podem ser úteis para proteger a privacidade dos seus sujeitos enquanto processa ou usa dados. Mas como é que sabe se um conjunto de dados foi suficientemente anonimizado? Como é que sabe se a desidentificação resultou numa perda de dados excessiva para o seu exemplo de utilização? Ou seja, como pode comparar o risco de reidentificação com a utilidade dos dados para ajudar a tomar decisões baseadas em dados?

O cálculo do valor de k-anonimato de um conjunto de dados ajuda a responder a estas perguntas através da avaliação da capacidade de reidentificação dos registos do conjunto de dados. A proteção de dados confidenciais contém uma funcionalidade incorporada para calcular um valor de k-anonimato num conjunto de dados com base nos quase identificadores que especificar. Isto ajuda a avaliar rapidamente se a desidentificação de uma determinada coluna ou combinação de colunas vai resultar num conjunto de dados com maior ou menor probabilidade de ser reidentificado.

Exemplo de conjunto de dados

Seguem-se as primeiras linhas de um exemplo de conjunto de dados grande.

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

Para os efeitos deste tutorial, user_id não vai ser abordado, uma vez que o foco é nos quase identificadores. Num cenário do mundo real, deve garantir que user_id é ocultado ou que é gerado um token de forma adequada. A coluna score é proprietária deste conjunto de dados e é pouco provável que um atacante a consiga descobrir por outros meios, pelo que não a vai incluir na análise. O seu foco vai estar nas colunas age e title restantes, com as quais um atacante pode potencialmente saber mais sobre um indivíduo através de outras fontes de dados. As perguntas às quais está a tentar responder para o conjunto de dados são:

  • Que efeito terão os dois quase identificadores, age e title, no risco geral de reidentificação dos dados desidentificados?
  • Como é que a aplicação de uma transformação de desidentificação afeta este risco?

Quer certificar-se de que a combinação de age e title não é mapeada para um pequeno número de utilizadores. Por exemplo, suponhamos que existe apenas um utilizador no conjunto de dados cujo título é Programador I e que tem 69 anos. Um atacante pode conseguir fazer uma referência cruzada dessas informações com dados demográficos ou outras informações disponíveis, descobrir quem é a pessoa e saber o valor da respetiva pontuação. Para mais informações acerca deste fenómeno, consulte a secção "IDs de entidades e computação k-anonimato" no tópico conceptual Análise de riscos.

Passo 1: calcule o k-anonimato no conjunto de dados

Primeiro, use a proteção de dados confidenciais para calcular o anonimato k no conjunto de dados enviando o seguinte JSON para o recurso DlpJob. Neste JSON, define o ID da entidade para a coluna user_id e identifica os dois quase identificadores como as colunas age e title. Também está a instruir a proteção de dados confidenciais para guardar os resultados numa nova tabela do BigQuery.

Entrada 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"
            }
          }
        }
      }
    ]
  }
}

Assim que a tarefa de k-anonimato estiver concluída, a proteção de dados confidenciais envia os resultados da tarefa para uma tabela do BigQuery denominada dlp-demo-2.dlp_testing.test_results.

Passo 2: associe os resultados ao Looker Studio

Em seguida, associa a tabela do BigQuery que criou no passo 1 a um novo relatório no Looker Studio.

  1. Abra o Looker Studio.

    Abra o Looker Studio

  2. Clique em Criar > Relatório.

  3. No painel Adicionar dados ao relatório, em Associar a dados, clique em BigQuery. Pode ter de autorizar o Looker Studio a aceder às suas tabelas do BigQuery.

  4. No seletor de colunas, selecione Os meus projetos. Em seguida, escolha o projeto, o conjunto de dados e a tabela. Quando terminar, clique em Adicionar. Se vir um aviso a indicar que está prestes a adicionar dados a este relatório, clique em Adicionar ao relatório.

Os resultados da análise de k-anonimato foram adicionados ao novo relatório do Looker Studio. No passo seguinte, vai criar o gráfico.

Passo 3: crie o gráfico

Faça o seguinte para inserir e configurar o gráfico:

  1. No Looker Studio, se for apresentada uma tabela de valores, selecione-a e prima Delete para a remover.
  2. No menu Inserir, clique em Gráfico combinado.
  3. Clique e desenhe um retângulo na tela onde quer que o gráfico seja apresentado.

Em seguida, configure os dados do gráfico no separador Dados para que o gráfico mostre o efeito da variação dos intervalos de tamanho e valor dos contentores:

  1. Limpe os campos nos seguintes títulos apontando para cada campo e clicando no X, como mostrado aqui:
    Detalhes do campo de indicação de tempo com o botão Eliminar ativado.
    • Dimensão do intervalo de datas
    • Dimensão
    • Métrica
    • Ordenar
  2. Com todos os campos limpos, arraste o campo upper_endpoint da coluna Campos disponíveis para o cabeçalho Dimensão.
  3. Arraste o campo upper_endpoint para o cabeçalho Ordenar e, de seguida, selecione Ascendente.
  4. Arraste os campos bucket_size e bucket_value_count para o cabeçalho Métrica.
  5. Aponte para o ícone à esquerda da métrica bucket_size e é apresentado um ícone de edição. Clique no ícone Editar e, de seguida, faça o seguinte:
    1. No campo Nome, escreva Unique row loss.
    2. Em Tipo, escolha Percentagem.
    3. Em Cálculo de comparação, escolha Percentagem do total.
    4. Em Cálculo em execução, escolha Soma em execução.
  6. Repita o passo anterior para a métrica bucket_value_count, mas no campo Nome, escreva Unique quasi-identifier combination loss.

Quando terminar, a coluna deve aparecer conforme mostrado aqui:

Captura de ecrã da lista de campos.

Por último, configure o gráfico para apresentar um gráfico de linhas para ambas as métricas:

  1. Clique no separador Estilo no painel à direita da janela.
  2. Para a Série n.º 1 e a Série n.º 2, escolha Linha.
  3. Para ver o gráfico final sozinho, clique no botão Ver no canto superior direito da janela.

Segue-se um exemplo de gráfico após a conclusão dos passos anteriores.

Gráfico final

Interpretar o gráfico

O gráfico gerado representa, no eixo y, a percentagem potencial de perda de dados para linhas únicas e combinações de quase identificadores únicos para alcançar, no eixo x, um valor de anonimato k.

Os valores de anonimato k mais elevados indicam um menor risco de reidentificação. No entanto, para alcançar valores de anonimato k mais elevados, teria de remover percentagens mais elevadas do total de linhas e combinações de quase identificadores únicos mais elevadas, o que pode diminuir a utilidade dos dados.

Felizmente, ignorar dados não é a única opção para reduzir o risco de reidentificação. Outras técnicas de desidentificação podem encontrar um melhor equilíbrio entre a perda e a utilidade. Por exemplo, para resolver o tipo de perda de dados associado a valores de anonimato k mais elevados e a este conjunto de dados, pode experimentar agrupar idades ou cargos para reduzir a singularidade das combinações de idade/cargo. Por exemplo, pode experimentar agrupar as idades em intervalos de 20 a 25, 25 a 30, 30 a 35 e assim sucessivamente. Para mais informações sobre como o fazer, consulte os artigos Generalização e agrupamento e Remoção da identificação de dados sensíveis em conteúdo de texto.