3. Proteção de Dados Sensíveis
Este capítulo estabelece diretrizes rigorosas para proteção de dados conforme a Lei Geral de Proteção de Dados (LGPD - Lei nº 13.709/2018) no contexto de vibecoding. A exposição inadequada de dados pessoais ou sensíveis pode resultar em multas de até R$ 50 milhões e responsabilização criminal.
3.1. Definição de Dados Sensíveis (LGPD)
3.1.1. Dados Pessoais (Art. 5, I)
Definição Legal:
"Informação relacionada a pessoa natural identificada ou identificável"
Exemplos em contexto de desenvolvimento:
- Nome completo
- Email (pessoal ou corporativo)
- Telefone/Celular
- Endereço físico
- IP associado a usuário
- Username único
- ID de usuário (quando identificável)
- Cookies de rastreamento
- Histórico de navegação
Quando são dados pessoais:
// ❌ DADOS PESSOAIS - NÃO compartilhar com IA
const user = {
name: "João Pedro Silva", // Identificável
email: "joao.silva@empresa.com", // Identificável
phone: "+55 11 98765-4321" // Identificável
};Quando NÃO são dados pessoais:
// ✅ DADOS ANONIMIZADOS - OK para IA
const user = {
id: "uuid-hash-abc123", // Não identificável
role: "admin", // Não identificável
created_at: "2024-01-01" // Não identificável
};3.1.2. Dados Pessoais Sensíveis (Art. 5, II)
Lista completa conforme LGPD:
- Origem racial ou étnica
- Convicção religiosa
- Opinião política
- Filiação a sindicato ou a organização de caráter religioso, filosófico ou político
- Dados referentes à saúde
- Dados genéticos
- Dados biométricos
- Dados sobre vida sexual ou orientação sexual
Tratamento especial necessário:
- Base legal específica (consentimento, obrigação legal, etc.)
- Proteção reforçada
- NUNCA expor a ferramentas de IA sem autorização DPO
3.1.3. Informações Financeiras Empresariais
Dados confidenciais da empresa:
- Custos de projetos e operações
- Informações de faturamento e receita
- Salários, remunerações e benefícios
- Margens de lucro
- Precificação estratégica
- Estrutura de comissões
- Informações de investimentos
Exemplo PROIBIDO:
// ❌ PROIBIDO
$projectCost = [
'development' => 150000, // Custo real do projeto
'infrastructure' => 25000,
'margin' => 0.30 // 30% de margem
];
// NÃO compartilhar com IA - informação estratégica!3.1.4. Dados de Clientes
Informações que identificam clientes:
- Razão social de empresas clientes
- CNPJs
- Endereços de empresas
- Contatos de clientes (nomes, emails, telefones)
- Informações contratuais (valores, prazos, SLAs)
- Volumes de uso ou consumo
- Histórico de compras
Princípio: Trate informações de clientes como você gostaria que seus dados fossem tratados.
3.2. Anonimização e Pseudonimização
3.2.1. Técnicas de Anonimização
1. Substituição por Dados Fictícios:
// Biblioteca Faker para PHP/Laravel
use Faker\Factory as Faker;
class DataAnonymizer
{
private $faker;
public function __construct()
{
$this->faker = Faker::create('pt_BR');
}
public function anonymizeUser(array $user): array
{
return [
'name' => $this->faker->name,
'email' => $this->faker->safeEmail,
'cpf' => $this->faker->numerify('###########'),
'phone' => $this->faker->phoneNumber,
'address' => $this->faker->address,
];
}
public function anonymizeOrder(array $order): array
{
return [
'id' => $this->faker->uuid,
'total' => $this->faker->randomFloat(2, 10, 1000),
'status' => $order['status'], // Manter enum
'created_at' => $this->faker->dateTimeBetween('-1 year', 'now'),
];
}
}2. Mascaramento de Informações:
// TypeScript - Mascaramento de dados sensíveis
interface User {
id: string;
name: string;
email: string;
cpf: string;
}
function maskSensitiveData(user: User): User {
return {
id: user.id,
name: user.name.substring(0, 3) + '***', // "João***"
email: user.email.replace(/(.{3}).*(@.*)/, '$1***$2'), // "joa***@email.com"
cpf: user.cpf.replace(/(\d{3})(\d{3})(\d{3})(\d{2})/, '***.$2.***-**') // "***.456.***-**"
};
}3. Generalização de Dados:
// Generalizar dados mantendo utilidade analítica
function generalizeAgeForAI(age: number): string {
if (age < 18) return '< 18';
if (age < 30) return '18-29';
if (age < 50) return '30-49';
return '50+';
}
function generalizeSalaryForAI(salary: number): string {
if (salary < 3000) return 'Faixa 1';
if (salary < 6000) return 'Faixa 2';
if (salary < 12000) return 'Faixa 3';
return 'Faixa 4';
}4. Supressão de Identificadores:
// Remover completamente dados identificadores
function suppressIdentifiers(array $data): array
{
$safe = $data;
unset(
$safe['cpf'],
$safe['rg'],
$safe['passport'],
$safe['email'],
$safe['phone'],
$safe['full_name']
);
return $safe;
}3.2.2. Ferramentas de Geração de Dados Fictícios
PHP/Laravel - Faker:
composer require fakerphp/fakerJavaScript/TypeScript - Faker:
npm install @faker-js/faker --save-devPython - Faker:
pip install FakerExemplo de uso:
import { faker } from '@faker-js/faker/locale/pt_BR';
const fakeUser = {
name: faker.person.fullName(),
email: faker.internet.email(),
cpf: faker.string.numeric(11),
phone: faker.phone.number(),
birthDate: faker.date.birthdate(),
address: faker.location.streetAddress(),
};
// Agora seguro para compartilhar com IA3.3. Checklist de Validação Antes de Usar IA
Validação OBRIGATÓRIA antes de compartilhar código:
// Script de validação automática
function detectSensitiveData(code: string): {
violations: string[];
safe: boolean;
} {
const patterns = {
email: {
regex: /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g,
name: 'Email'
},
cpf: {
regex: /\d{3}\.?\d{3}\.?\d{3}-?\d{2}/g,
name: 'CPF'
},
cnpj: {
regex: /\d{2}\.?\d{3}\.?\d{3}\/?\d{4}-?\d{2}/g,
name: 'CNPJ'
},
phone: {
regex: /(\+55\s?)?(\(?\d{2}\)?[\s-]?)?\d{4,5}-?\d{4}/g,
name: 'Telefone'
},
creditCard: {
regex: /\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}/g,
name: 'Cartão de Crédito'
},
apiKey: {
regex: /['\"]?(api[_-]?key|token|secret|password)['\"]?\s*[:=]\s*['\"][^'\"]+['\"]/gi,
name: 'Credencial'
},
ipAddress: {
regex: /\b(?:\d{1,3}\.){3}\d{1,3}\b/g,
name: 'IP Address'
},
};
const violations: string[] = [];
for (const [key, { regex, name }] of Object.entries(patterns)) {
const matches = code.match(regex);
if (matches && matches.length > 0) {
violations.push(`${name} detectado: ${matches.length} ocorrência(s)`);
}
}
return {
violations,
safe: violations.length === 0
};
}
// Uso:
const codeToShare = `...código aqui...`;
const validation = detectSensitiveData(codeToShare);
if (!validation.safe) {
console.error('❌ DADOS SENSÍVEIS DETECTADOS:');
validation.violations.forEach(v => console.error(` - ${v}`));
console.error('NÃO compartilhe este código com IA!');
} else {
console.log('✅ Código seguro para compartilhar');
}3.4. Processo de Sanitização
Passo a passo OBRIGATÓRIO:
-
Identificar dados sensíveis
- Revisar manualmente o código
- Executar script de detecção automática
- Verificar comentários e strings
-
Substituir por dados fictícios
- Usar Faker para gerar dados realistas
- Manter estrutura e tipos de dados
- Validar substituição
-
Validar anonimização
- Re-executar script de detecção
- Revisão manual final
- Confirmar que não há dados reais
-
Documentar substituições realizadas
- Anotar quais dados foram anonimizados
- Útil para reverter ao finalizar debugging
-
Revisar antes de enviar
- Dupla checagem
- Princípio da cautela
3.5. Armazenamento e Retenção
3.5.1. Logs de Uso de IA
Registro obrigatório:
- Data/hora de cada interação com IA
- Ferramenta utilizada
- Tipo de solicitação (desenvolvimento, debugging, refatoração)
- Arquivo/módulo relacionado
- Desenvolvedor responsável
Período de retenção: 3 anos (conforme diretriz de segurança)
Finalidade: Auditoria e compliance
3.5.2. Código Gerado por IA
Marcação obrigatória:
/**
* Valida formato de email brasileiro
*
* @param email - String de email a validar
* @returns true se válido, false caso contrário
*
* @generated-by Claude AI
* @reviewed-by João Silva
* @review-date 2026-01-20
* @security-validated true
*/
function validateBrazilianEmail(email: string): boolean {
const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return regex.test(email);
}3.6. Incidentes e Violações
3.6.1. Detecção de Exposição Acidental
Sinais de que dados foram expostos:
- Prompt continha dados reais
- Upload acidental de arquivo com dados
- Compartilhamento de screenshot com dados identificáveis
- Logs com informações pessoais enviados para IA
3.6.2. Procedimento de Resposta a Incidente
AÇÃO IMEDIATA (primeiras 2 horas):
-
Contenção:
- Parar imediatamente o uso da ferramenta
- Deletar conversas/histórico (se possível)
- Documentar exatamente o que foi exposto
-
Notificação:
- Informar IMEDIATAMENTE:
- Seu gestor direto
- Security Analyst
- DPO (Data Protection Officer)
- Email para: security-incident@empresa.com
- Assunto: "[URGENTE] Incidente de Exposição de Dados via IA"
- Informar IMEDIATAMENTE:
-
Documentação:
- Preencher formulário de incidente
- Quais dados foram expostos
- Qual ferramenta foi utilizada
- Quantas pessoas podem ter sido afetadas
- Capturas de tela (se relevante)
INVESTIGAÇÃO (primeiras 24 horas):
-
Avaliação de Impacto:
- Classificação do incidente (baixo/médio/alto)
- Número de titulares de dados afetados
- Natureza dos dados expostos
- Risco de dano aos titulares
-
Análise de Causa Raiz:
- Como ocorreu a exposição
- Falha de processo ou humana
- Medidas preventivas necessárias
REMEDIAÇÃO (48-72 horas):
-
Notificação à ANPD (se necessário):
- Obrigatório se risco relevante ou dano aos titulares
- Prazo: até 2 dias úteis após ciência da violação (LGPD Art. 48)
- Formulário: https://www.gov.br/anpd (opens in a new tab)
-
Notificação aos Titulares (se necessário):
- Se risco de dano relevante
- Comunicação clara e objetiva
- Medidas tomadas pela empresa
-
Medidas Corretivas:
- Rotação de credenciais (se aplicável)
- Bloqueio de acessos (se aplicável)
- Implementação de controles adicionais
PÓS-INCIDENTE:
-
Análise Pós-Incidente:
- Reunião de lições aprendidas
- Atualização de processos
- Treinamento adicional se necessário
- Revisão de diretrizes
-
Medidas Disciplinares:
- Conforme gravidade do incidente
- Ver seção 0.4 de Introdução
3.6.3. Responsabilidades Legais
Individual:
- Responsabilidade civil por danos causados
- Possível responsabilização criminal (crimes contra a honra, invasão de privacidade)
- Ações disciplinares trabalhistas
Corporativa:
- Multa LGPD até R$ 50 milhões (Art. 52, II)
- Publicização da infração (Art. 52, IV)
- Bloqueio/eliminação de dados (Art. 52, VI)
- Suspensão parcial do funcionamento do banco de dados (Art. 52, III)
Penalidades LGPD (Art. 52):
| Gravidade | Multa | Adicional |
|---|---|---|
| Leve | Advertência | Prazo para correção |
| Média | Até 2% do faturamento | Máx R$ 50 milhões |
| Grave | Até 2% do faturamento | + Publicização + Bloqueio |
Fatores agravantes:
- Dolo ou má-fé
- Reincidência
- Negligência
- Recusa em cooperar
🔒 LEMBRE-SE: Dados uma vez expostos não podem ser "des-expostos". Prevenção é TUDO.