◇ OpenCyber Academy
Tecnólogo · Capítulo 17 · Português

Capítulo 17 — Privacidade e proteção de dados: ferramentas

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Capítulo 17 — Privacidade e proteção de dados: ferramentas

Mapa da aula

Aula 17 publicada. Mapa, exemplo, EX049.

flowchart TD
  N0["17.1 O varredor"]
  N1["17.2 Resultados"]
  N2["17.4 Ações"]
  N3["Laboratório — Varredura de padrões em arquivos compa"]
  N0 --> N1 --> N2 --> N3
  N3 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX049"]

Desenho lógico

flowchart LR
  N0["17.1 O varredor"]
  N1["17.2 Resultados"]
  N2["17.4 Ações"]
  N3["Laboratório — Varredura de padrões em arquivos compa"]
  N0 --> N1 --> N2 --> N3 --> Q["EX049"]
[17.1 O varredor]
    |
    v
[17.2 Resultados]
    |
    v
[17.4 Ações]
    |
    v
[Laboratório — Varredura de padrões em arquivos compa]
    |
    v
[Exemplo resolvido] --> [Exercício EX049]

Objetivos de aprendizagem

Você vai (1) usar um varredor simples para encontrar dados pessoais em arquivos; (2) interpretar seus limites; (3) agir sobre os resultados.

17.1 O varredor

Aisha escreve um varredor em Python, só com a biblioteca padrão, que usa expressões regulares para e-mails, telefones e números de cartão. Ela o roda em cinco arquivos sintéticos de um drive compartilhado, cópias modeladas nos tipos reais encontrados ali. O varredor lê cada arquivo linha a linha, aplica três padrões e conta as ocorrências sem imprimir os valores encontrados, para que o próprio relatório não espalhe dados pessoais. Os números de cartão são conferidos com um padrão simples de dígitos; ela observa que uma ferramenta de produção acrescentaria um teste de dígito verificador para reduzir os falsos positivos.

17.2 Resultados

O laboratório encontra padrões em três de cinco arquivos: uma exportação antiga de alunos com dois e-mails e dois telefones, anotações de um trainer com um telefone e um arquivo de reembolsos com um número de cartão. As anotações também mencionam uma lesão no joelho, que a expressão regular não detecta. A exportação foi criada para uma promoção três anos antes e esquecida; o arquivo de reembolsos foi salvo por um assistente financeiro para trabalhar offline; as anotações foram compartilhadas para cobrir aulas. Cada arquivo tem uma história plausível, o que mostra que os dados pessoais se espalham pelo trabalho comum, e não por descuido.

17.3 Limites

Aisha explica que os varredores de padrões deixam passar informações de saúde em texto livre e podem gerar falsos positivos. As expressões regulares encontram padrões estruturados, como e-mails, mas a saúde aparece em palavras comuns: lesão no joelho, asma, grávida. Uma lista de palavras-chave poderia ajudar, mas geraria muitos alarmes falsos numa academia, onde palavras como coração e lesão aparecem nas descrições das aulas. Por isso, é preciso revisão humana dos arquivos sinalizados e das anotações em geral. Aisha recomenda usar o varredor para priorizar essa revisão, e não para declarar que um arquivo está limpo.

17.4 Ações

A exportação antiga é excluída, o arquivo de reembolsos vai para o sistema de pagamentos e as anotações dos trainers passam para o aplicativo, com controles de acesso. Antes de excluir a exportação, Aisha confirma com o encarregado que não há retenção judicial. Ela pergunta ao financeiro por que precisava de uma cópia offline e descobre que o sistema de pagamentos não tinha um relatório de reembolsos, que a TI acrescenta. Os trainers ganham no aplicativo um campo de anotações que só os trainers do próprio aluno leem. O Sr. Reilly observa que as ferramentas ajudam, mas não substituem o julgamento.

Laboratório — Varredura de padrões em arquivos compartilhados

# Scan synthetic shared-drive files for personal data patterns (email, phone, card-like numbers).
import re
files = {"class_timetable.csv": "Mon,Spin,Studio 2\nTue,Yoga,Studio 1",
         "member_export_old.csv": "name,email,phone\nAna Lima,ana@example.org,+44 7700 900123\nRui Sousa,rui@example.org,+44 7700 900456",
         "trainer_notes.txt": "Client J. knee injury, avoid squats. Call 07700 900789.",
         "refunds_march.txt": "Refund to card 4111 1111 1111 1111 approved",
         "poster.txt": "Summer challenge! Join at the front desk."}
pat = {"email": r"[\w.]+@[\w.]+", "phone": r"(?:\+44 ?|0)7700 ?\d{6}", "card": r"\b(?:\d{4} ?){3}\d{4}\b"}
hits = 0
for f, t in files.items():
    found = {k: len(re.findall(p, t)) for k, p in pat.items() if re.findall(p, t)}
    hits += bool(found); print(f"{f:22s} {found if found else '-'}")
print(f"files with personal data patterns: {hits} of {len(files)}")

Execute com python3 lab_scan.py. Saída verificada:

class_timetable.csv    -
member_export_old.csv  {'email': 2, 'phone': 2}
trainer_notes.txt      {'phone': 1}
refunds_march.txt      {'card': 1}
poster.txt             -
files with personal data patterns: 3 of 5

Exemplo resolvido

O varredor de Aisha sinaliza três de cinco arquivos e deixa passar a anotação sobre a lesão no joelho, e ela exclui, move e protege os arquivos.

Caso sintético. Os arquivos são sintéticos.

Erros e limites

Varredores por expressões regulares não captam o contexto nem formatos incomuns.

Exercícios

Continue estudando — aula 17 (capítulo 17 de 30)

← Capítulo 16 · Índice das aulas · Capítulo 18 →

Continue para a próxima aula já escrita.