◇ OpenCyber Academy
Engenharia · Capítulo 13 · Português

Capítulo 13 — Sistemas de dados

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 13 — Sistemas de dados

Mapa da aula

Aula 13 publicada. Mapa, exemplo, EX037.

flowchart TD
  N0["13.1 Minimização de dados"]
  N1["13.2 Autorização, não receitas de injeção"]
  N2["13.3 Dados sintéticos"]
  N3["13.3b Controles por linha e por coluna"]
  N4["13.1b Armadilhas do mascaramento"]
  N5["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5
  N5 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX037"]

Desenho lógico

flowchart LR
  N0["13.1 Minimização de dados"]
  N1["13.2 Autorização, não receitas de injeção"]
  N2["13.3 Dados sintéticos"]
  N3["13.3b Controles por linha e por coluna"]
  N4["13.1b Armadilhas do mascaramento"]
  N5["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX037"]
[13.1 Minimização de dados]
    |
    v
[13.2 Autorização, não receitas de injeção]
    |
    v
[13.3 Dados sintéticos]
    |
    v
[13.3b Controles por linha e por coluna]
    |
    v
[13.1b Armadilhas do mascaramento]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX037]

Objetivos de aprendizagem

Você vai (1) delimitar a avaliação de bancos de dados sem extrair dados pessoais; (2) testar a autorização na camada de consulta; (3) desenhar conjuntos de dados sintéticos para os laboratórios.

13.1 Minimização de dados

O trabalho autorizado com bancos de dados usa linhas sintéticas ou cópias mascaradas. Exportar dados pessoais de produção para o notebook de um estudante é um incidente de privacidade, não um achado. A ROE precisa declarar: nenhum SELECT de colunas marcadas como pessoais, nenhum dump de tabela inteira, limites de linhas e uma data de destruição para qualquer extração temporária. Limites de linhas e datas de destruição transformam extrações temporárias em objetos controlados, e não em suvenires. Marcar as colunas pessoais dá à ferramenta de consulta algo para recusar automaticamente. Um notebook de estudante com um dump de produção é um vazamento esperando por uma mochila perdida. A lista de verificação de ROE de Sam reprova o kickoff se qualquer uma dessas cláusulas estiver faltando.

13.2 Autorização, não receitas de injeção

A pergunta de engenharia costuma ser "o papel R consegue ler a tabela T?". Teste isso com o papel concedido. Ensinar payloads de injeção de SQL está fora do limite de segurança deste livro; se a injeção estiver no escopo de um engajamento profissional, ela fica numa linha de método separada e num plano de divulgação próprio, não num exercício de casa. Testes de papel respondem à pergunta real do cliente: quem, na equipe dele, consegue ver quais tabelas. Os payloads ficam fora deste curso porque ensinam a causar dano sem ensinar a engenharia do controle de acesso. Quando uma ROE profissional inclui injeção, ela é um método nomeado com seu próprio caminho de divulgação, nunca um exercício de laboratório. Sam registra as lacunas de autorização como achados sobre papéis e concessões.

13.3 Dados sintéticos

Gere clientes sintéticos determinísticos com regras no estilo do faker ou com sementes fixas, para que os laboratórios sejam reproduzíveis. Nunca copie um backup de produção para o repositório do curso. Sementes fixas fazem com que dois estudantes e um job de CI vejam os mesmos clientes e as mesmas verificações falhando. Backups de produção trazem o dever de privacidade e uma exposição irreversível se o repositório vazar. Sam gera os dados no script de preparação do laboratório e versiona só o gerador, nunca um dump.

Caso sintético — Riverstone Transit. Sam precisava de linhas de produtos tarifários para um teste de relatório. A equipe de operações forneceu um snapshot sintético apenas com ids de produtos e preços — sem nomes de passageiros — e uma etiqueta de destruição de 48 horas.

13.4 Erros e limites

Um mascaramento que deixa valores raros e únicos ainda pode identificar pessoas. Ao ensinar, prefira a geração sintética a um mascaramento imperfeito. Um código de doença rara ou um cargo incomum pode reidentificar alguém mesmo depois de os nomes serem removidos. Linhas sintéticas evitam completamente essa discussão no ensino. Quando um cliente ainda exige extrações mascaradas, Sam espera a aprovação de privacidade, mantém os arquivos em hosts controlados pelo cliente e registra a data de destruição no log do engajamento. Os laboratórios de ensino nunca recebem linhas de produção de cliente algum, nem mesmo mascaradas.

13.3b Controles por linha e por coluna

Data warehouses modernos oferecem políticas por linha e por coluna. As perguntas da avaliação passam a ser: o papel R vê a coluna C? O filtro de linhas F se aplica? Teste com o próprio papel. Documente a versão do motor de políticas; "rodamos SELECT *" com um papel de administrador prova pouco sobre a exposição de um analista. Um SELECT * de administrador mostra o que um administrador vê, o que é a pergunta errada para a exposição de um analista. Rodar como o papel R, com a versão do motor de políticas registrada, faz o resultado corresponder ao comportamento de produção. Negações de coluna e filtros de linha falham de maneiras diferentes, então cada um precisa de suas próprias verificações. Sam guarda o nome do papel em cada achado desse tipo.

13.1b Armadilhas do mascaramento

Substituir nomes por iniciais ou embaralhar CEPs raros ainda deixa quase-identificadores. Para o ensino e para a maioria das avaliações, a geração sintética com semente fixa é mais simples e mais segura do que discutir máscaras imperfeitas. Se o anfitrião insistir em extrações mascaradas de produção, exija uma revisão de privacidade e mantenha a extração fora dos notebooks dos estudantes. Quase-identificadores se combinam: um ano de nascimento, uma garagem e um cargo raro podem apontar para um único funcionário. A síntese com semente fixa contorna o debate e ainda exercita a lógica de autorização. Extrações mascaradas que precisem ser usadas ficam fora de dispositivos pessoais e sob as regras de retenção da revisão de privacidade. Sam prefere demonstrar o mesmo achado em linhas sintéticas sempre que o cliente permite.

Exercícios

Síntese

Minimize os dados, teste os papéis, sintetize para ensinar. O banco de dados não é uma sala de troféus.

Continue estudando — capítulo 13 de 50

← Capítulo 12 (rascunho) · Índice de capítulos do curso · Capítulo 14 (rascunho) →