Segurança técnica

Controles que sua equipe de segurança vai pedir

Resumo executivo dos controles em produção. Pra advogado/DPO ver o resumo LGPD → /legal/lgpd. Pra entender exatamente o que armazenamos e como tratamos → /legal/privacy.

Camada de aplicação

Criptografia em repouso

Chaves OpenAI/Anthropic dos customers são cifradas com AES-256-GCM antes de persistir em workspace_settings. Master key (32 bytes) em variável de ambiente, IV randômico de 12 bytes per-row, auth tag de 16 bytes pra anti-tampering. Plaintext apenas em memória, durante execução de request. Implementação em apps/web/lib/encryption.ts (Node stdlib, sem deps externas).

Criptografia em trânsito

TLS 1.3 obrigatório em toda comunicação cliente↔cloud. Railway provê HTTPS com cert auto-renewed Let's Encrypt + HSTS preload (max-age 1 ano + includeSubDomains). Comunicação interna entre app e Postgres/ClickHouse usa TLS mútuo nos drivers nativos.

API keys (ingest)

Keys no formato rg_pk_live_... (32 chars random). Apenas o hash bcrypt persiste no banco — o valor original é mostrado ao customer UMA vez na criação. Comparação na rota de ingest é constant-time. Cooldown de 1h por workspace pra evitar enumeração.

Auth via Supabase + RLS

Magic link / OAuth (Google + GitHub) sem armazenamento de senhas. Cada SELECT/INSERT respeita Row Level Security em Postgres: workspace_id deve match com auth.uid() do JWT. Service role key apenas em rotas server-side trusted (webhooks Stripe, cron jobs com Bearer secret).

Camada de dados

PII redaction antes da rede

aferiq.start() ativa redação BR por default — regex pra CPF/CNPJ/RG/CEP/email/telefone aplicados ANTES do POST de qualquer trace. Função pública redact_pii_br() também disponível pra uso direto. Implementação em packages/lib/src/rageval/cloud.py (DEFAULT_REDACTORS) — código auditável, 9 testes adversariais cobrindo formatos formatado/sem-pontuação/idempotência.

Residência de dados

Postgres (Supabase) em São Paulo (sa-east-1). ClickHouse Cloud em us-east-1 (N. Virginia) sob SCC + DPA assinado conforme LGPD Art. 33 — São Paulo é Private region só no Enterprise tier. Roadmap: residência exclusiva BR em planos Scale+ via ClickHouse Enterprise SP ou self-host. Backups seguem região do storage primário.

Retenção + direito de exclusão

Trace bodies expiram automaticamente conforme tier (30d/90d/1y). Audit logs idem. Após cancelamento de conta, dados são eliminados em até 30 dias (exceto dados de obrigação legal — fiscais 5 anos). Solicitação de exclusão imediata por DPO em até 15 dias úteis (LGPD Art. 18.6).

Processos & compliance

Sub-processadores & DPA

Lista pública e versionada de sub-processadores em /legal/lgpd: Supabase, ClickHouse Cloud, OpenAI (DPA assinado, SCC), Stripe Brasil, Resend, Sentry (opcional), PostHog (opcional). Mudanças comunicadas com 30 dias de antecedência. DPA template disponível pra customer enterprise.

Headers de browser

Content-Security-Policy estrito (default-src 'self', script-src com PostHog/Sentry whitelisted), X-Frame-Options DENY, X-Content-Type-Options nosniff, Referrer-Policy strict-origin-when-cross-origin, Permissions-Policy minimalista (camera/mic/geolocation/payment desativados), HSTS preload. Testável via securityheaders.com.

Cookie consent (LGPD Art. 7º)

Cookies estritamente necessários (sessão de auth) sem opt-in. PostHog (analytics) e Sentry (error tracking) gateados por banner de consentimento — SDK não inicializa até o user clicar Aceitar. localStorage flag permite revogar a qualquer momento. Sem cross-site tracking, sem dark patterns.

O que ainda não fazemos

Honestidade primeiro: a empresa é solo-founder pré-receita. Os controles abaixo estão no roadmap mas ainda não implementados:

  • SOC 2 Type II: sem auditoria formal. Documentação interna existe (CSP, headers, encryption). Programado pra Phase 17 quando primeiro customer enterprise fundar via plano Scale.
  • HSM / KMS gerenciado: chave mestra de encryption está em variável de ambiente (Railway). Migração pra AWS KMS ou HashiCorp Vault está no backlog.
  • SSO empresarial (SAML / Okta): disponível só no plano Scale (talk-to-sales). Free e Pro usam magic link + OAuth Google/GitHub.
  • Bug bounty público: sem programa formal ainda. Reportes responsáveis pra dpo@aferiq.com.br — respondemos em 48h e damos crédito em /security/researchers.
  • Penetration test: não contratamos pentest externo ainda. Tooling automatizado (pnpm audit, Sentry exception tracking) está em CI.

Tem outra pergunta?

Time de segurança ou DPO precisando de questionário CAIQ, SIG-Lite, ISO 27001 SOA, ou DPIA? Manda pra dpo@aferiq.com.br que respondemos em até 5 dias úteis com matriz preenchida.