Diretrizes de Desenvolvimento com AI
3. Proteção de Dados Sensíveis

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:

  1. Origem racial ou étnica
  2. Convicção religiosa
  3. Opinião política
  4. Filiação a sindicato ou a organização de caráter religioso, filosófico ou político
  5. Dados referentes à saúde
  6. Dados genéticos
  7. Dados biométricos
  8. 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/faker

JavaScript/TypeScript - Faker:

npm install @faker-js/faker --save-dev

Python - Faker:

pip install Faker

Exemplo 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 IA

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

  1. Identificar dados sensíveis

    • Revisar manualmente o código
    • Executar script de detecção automática
    • Verificar comentários e strings
  2. Substituir por dados fictícios

    • Usar Faker para gerar dados realistas
    • Manter estrutura e tipos de dados
    • Validar substituição
  3. Validar anonimização

    • Re-executar script de detecção
    • Revisão manual final
    • Confirmar que não há dados reais
  4. Documentar substituições realizadas

    • Anotar quais dados foram anonimizados
    • Útil para reverter ao finalizar debugging
  5. 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):

  1. Contenção:

    • Parar imediatamente o uso da ferramenta
    • Deletar conversas/histórico (se possível)
    • Documentar exatamente o que foi exposto
  2. 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"
  3. 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):

  1. 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
  2. Análise de Causa Raiz:

    • Como ocorreu a exposição
    • Falha de processo ou humana
    • Medidas preventivas necessárias

REMEDIAÇÃO (48-72 horas):

  1. Notificação à ANPD (se necessário):

  2. Notificação aos Titulares (se necessário):

    • Se risco de dano relevante
    • Comunicação clara e objetiva
    • Medidas tomadas pela empresa
  3. Medidas Corretivas:

    • Rotação de credenciais (se aplicável)
    • Bloqueio de acessos (se aplicável)
    • Implementação de controles adicionais

PÓS-INCIDENTE:

  1. Análise Pós-Incidente:

    • Reunião de lições aprendidas
    • Atualização de processos
    • Treinamento adicional se necessário
    • Revisão de diretrizes
  2. 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):

GravidadeMultaAdicional
LeveAdvertênciaPrazo para correção
MédiaAté 2% do faturamentoMáx R$ 50 milhões
GraveAté 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.