← Voltar para central legal

Plano de Segurança da Informação — Cataloga-ai

Versão: 1.0

Data: 2026-04-25

Responsável: Cyber Head

Stack: Supabase self-hosted, Vercel, Redis, Asaas, GPTMaker, WhatsApp Cloud API


1. Política de Senhas

Requisitos Obrigatórios

Comprimento e Complexidade:

Rotação:

Armazenamento:

Como Implementar

No Supabase Auth:

Validação no Frontend (Vercel Edge Functions):

Lista de senhas proibidas:

Ferramentas Recomendadas:


2. Política de Acesso (Least-Privilege)

Princípios

  1. Acesso mínimo necessário: usuário só acessa o que precisa para sua função
  2. Zero trust: sempre autenticar, sempre autorizar
  3. MFA obrigatório para contas administrativas
  4. Segregação de ambientes: dev/staging/prod com credenciais distintas

Roles e Permissões

Supabase (PostgreSQL RLS)

Roles principais:

Row Level Security (RLS):

MFA Obrigatório:

Vercel (Projetos e Ambientes)

Ambientes:

Variáveis de ambiente sensíveis:

Ferramentas:

Redis

Autenticação:

Exemplo ACL Redis 6+:

Ferramentas:

Como Implementar MFA

Supabase Auth:

Apps TOTP recomendados:

Fallback (recovery codes):


3. Backup + Disaster Recovery

Requisitos

RTO (Recovery Time Objective): 4 horas

RPO (Recovery Point Objective): 1 hora (máximo perda de dados tolerável)

Estratégia de Backup

PostgreSQL (Supabase Self-Hosted)

Frequência:

Retenção:

Onde armazenar:

Ferramentas:

Cron:

Redis

Frequência:

Configuração redis.conf:

Backup de RDB/AOF:

Vercel (Edge Functions + Configuração)

Código:

Configuração (Variáveis de Ambiente):

Restore Testing

Frequência: mensal (primeira segunda-feira de cada mês)

Procedimento:

  1. Provisionar ambiente de staging isolado
  2. Restaurar último full backup do PostgreSQL
  3. Aplicar WAL incrementais até ponto específico no tempo (PITR)
  4. Validar integridade:
  1. Testar restore do Redis (carregar RDB, validar keys críticas)
  2. Documentar tempo de restore e issues encontrados
  3. Destruir ambiente de teste

SLA de Restore:

Ferramentas:


4. Criptografia

Nota: Esta seção foi desenvolvida em colaboração com o Cryptography Counsel para garantir conformidade com melhores práticas criptográficas.

Em Trânsito (TLS)

Requisitos:

Configuração Nginx (Supabase Self-Hosted):

Verificação:

Alvo: A+ no SSL Labs

Redis TLS:

Em Repouso (AES-256)

PostgreSQL (Supabase)

Opções:

  1. Disk encryption (LUKS):
  1. PostgreSQL pgcrypto (column-level):

Recomendação: LUKS para proteção de volume + pgcrypto para campos PII críticos.

Backups

Secrets Management

Proibido:

Permitido:

  1. HashiCorp Vault (recomendado para prod):
  1. Vercel Environment Variables (com criptografia nativa):
  1. Doppler (alternativa SaaS):

Key Rotation (ver próxima seção para detalhes):

Ferramentas Recomendadas


5. Gestão de Chaves

Princípios

  1. Nunca em código: chaves nunca commitadas no Git
  2. Segregação: chaves de dev ≠ staging ≠ prod
  3. Rotação regular: minimizar janela de exploração se vazar
  4. Acesso auditado: log de quem acessou qual chave, quando

Onde Armazenar Chaves

Rotação de Chaves

Senha do PostgreSQL

Procedimento:

  1. Gerar nova senha forte (32 chars)
  1. Atualizar senha no PostgreSQL
  1. Atualizar Vault
  1. Atualizar Vercel Env Vars (se Vercel acessa DB diretamente)
  1. Restart gradual de serviços (zero-downtime)
  1. Validar conectividade
  1. Revogar senha antiga (já feito no passo 2, mas confirmar)

API Keys de Terceiros (Asaas, GPTMaker, WhatsApp)

Asaas:

  1. Gerar nova API key no dashboard Asaas
  2. Testar em staging
  3. Atualizar Vault/Vercel
  4. Deploy
  5. Revogar chave antiga no dashboard Asaas após 24h (janela de grace)

WhatsApp Cloud API:

JWT Signing Key (Supabase Auth)

Atenção: rotacionar esta chave invalida todas sessões ativas.

Procedimento (maintenance window):

  1. Anunciar manutenção (15min downtime ou force logout)
  2. Gerar nova chave
  1. Atualizar config.toml do Supabase:
  1. Restart Supabase Auth
  2. Todos usuários precisam fazer login novamente
  3. Comunicar via email/in-app notification

Frequência: anual ou em caso de vazamento

Revogação de Chaves

Gatilhos:

Checklist de Revogação:

  1. Identificar todas chaves acessíveis pela pessoa/sistema comprometido
  2. Gerar novas chaves para substituição
  3. Atualizar secrets em Vault/Vercel
  4. Deploy atômico (ou maintenance window se breaking)
  5. Revogar chaves antigas em sistemas terceiros (dashboards de API)
  6. Validar que serviços continuam funcionando
  7. Documentar incidente em log de auditoria

Auditoria de Acesso a Chaves

Vault Audit Log:

Vercel:

Alertas:

Ferramentas


6. Logs de Auditoria

O Que Logar

Eventos de Autenticação

Eventos de Acesso a Dados

Eventos de Mutação Crítica

Eventos Administrativos

Formato de Log (JSON estruturado)

Exemplo:

Onde Armazenar Logs

Stack de Logging:

  1. Aplicação → stdout/stderr (Vercel Edge Functions, Supabase)
  2. Collector: Vector.dev ou Fluent Bit (agregação + parsing)
  3. Storage:

Configuração Vector.dev:

Retenção

Monitoramento de Anomalias

Alertas Automáticos (SIEM):

  1. Múltiplos logins falhados (brute-force):
  1. Login de localização anômala:
  1. Acesso em massa a PII:
  1. Mudança de role para admin:
  1. Download de dump de banco:

Ferramentas SIEM:

Exemplo ElastAlert Rule:

Integridade de Logs (Proteção Contra Adulteração)

Problema: atacante com acesso root pode modificar logs para ocultar rastros.

Solução:

  1. Forward-only logging: logs enviados para collector remoto em tempo real (atacante não tem acesso)
  2. Assinatura de logs: cada linha de log recebe hash SHA-256 encadeado
  3. Append-only storage: S3 com versionamento + Glacier Vault Lock (imutável)

Exemplo de Hash Encadeado:

Se atacante alterar uma linha, previous_log_hash da próxima linha não baterá → adulteração detectada.

Ferramentas Recomendadas


7. Hardening de Servidor (Supabase Self-Hosted)

Princípios

  1. Minimizar superfície de ataque: desabilitar serviços desnecessários
  2. Firewall restritivo: só portas essenciais abertas
  3. Atualizações regulares: patches de segurança aplicados em < 48h (critical) / < 7 dias (high)
  4. Monitoramento ativo: detectar intrusões em tempo real

Configuração de Portas e Firewall

Portas Necessárias:

Firewall (iptables):

Firewall alternativo (UFW - mais simples):

Atualizações de OS

Sistema: Ubuntu Server 22.04 LTS (ou 24.04 LTS)

Política:

Automação (unattended-upgrades):

Monitoramento de patches pendentes:

Alerta automático:

Hardening Adicional

Desabilitar Serviços Desnecessários

Kernel Hardening (sysctl)

SSH Hardening

Fail2Ban (Anti Brute-Force)

Monitoramento de Intrusões (IDS)

AIDE (Advanced Intrusion Detection Environment):

OSSEC (Host-based IDS):

Ferramentas Recomendadas


8. Vulnerability Management

Processo de Scan Periódico

Frequência:

Ferramentas de Scan

Scan de Infraestrutura

OpenVAS (Open Vulnerability Assessment System):

Nmap (network scan):

Scan de Aplicação

OWASP ZAP (Dynamic Application Security Testing - DAST):

Trivy (Container scan):

Scan de Dependências

npm audit (Node.js):

Dependabot (GitHub):

Snyk (SaaS - alternativa):

Scan de Secrets (Leaked Credentials)

Gitleaks (secrets no Git):

TruffleHog (scan de histórico completo):

Classificação de Severidade

Exceções: se vulnerabilidade não é explorável no nosso contexto (ex: Windows vulnerability em servidor Linux), pode ser marcada como wontfix com justificativa.

Workflow de Patching

  1. Detecção: Scan automático identifica CVE-2024-XXXXX em pacote libssl1.1
  2. Triagem: Security team avalia severidade (CVSS score) e exploitabilidade
  3. Priorização: Se critical, escala para SRE imediatamente; se high/medium, agenda
  4. Teste: Aplicar patch em ambiente de staging, validar que não quebra aplicação
  5. Deploy: Aplicar em produção (com rollback plan se der ruim)
  6. Verificação: Re-scan para confirmar que vulnerabilidade foi remediada
  7. Documentação: Registrar em ticket de patching (Jira/Linear) com CVE ID, ação tomada, timestamp

Mitigações Temporárias (Quando Patch Não Está Disponível)

Exemplos:

Responsible Disclosure (Recebimento de Vulnerabilidades Externas)

Canal: security@cataloga-ai.com.br

Página pública: https://cataloga-ai.com.br/security.txt (RFC 9116)

Processo:

  1. Researcher reporta vulnerabilidade por email
  2. Security team confirma recebimento em < 24h
  3. Triagem: reproduzir + avaliar impacto
  4. Fix: desenvolver patch (SLA conforme severidade)
  5. Validação: testar com researcher se possível
  6. Deploy: aplicar em produção
  7. Disclosure: após fix, publicar advisory (opcional: Hall of Fame para researcher)
  8. Recompensa: se programa de bug bounty, pagar conforme tabela

Bug Bounty (Futuro):

Compliance e Auditoria

Relatórios mensais:

Dashboard (Grafana):

KPIs:

Ferramentas Recomendadas


9. Anexos

Checklist de Implementação

Responsáveis

Custos Estimados (Mensal)

Custo anual de Pen Test externo: $3.000 - $5.000 (1x/ano)

Revisão e Atualização


Documento aprovado por:

[ ] Cyber Head

[ ] Cryptography Counsel (seção 4)

[ ] CTO

[ ] DPO (validação de compliance LGPD)

Próxima revisão agendada: 2026-07-25