Plano de Resposta a Incidentes — Cataloga-ai
Versão: 1.0
Data: 2026-04-25
Responsável: DPO + Segurança da Informação
Aprovação: CEO
1. DETECÇÃO
1.1 Fontes de Alerta
| Fonte | O que monitora | Threshold de acionamento | Responsável |
|---|---|---|---|
| Supabase Logs | Tentativas de acesso não autorizado, queries anômalas, alterações em tabelas de PII | ≥3 tentativas de login falhadas de mesmo IP em 5min; queries SELECT * em tabelas de dados pessoais fora do horário comercial | DevOps + DPO |
| Vercel Logs | Erros 5xx em massa, latência anômala, acessos a endpoints sensíveis | ≥50 erros 5xx/min; acesso a /api/admin/* de IPs não whitelistados |
DevOps |
| Redis Monitoring | Cache poisoning, acesso não autorizado a sessões | Tentativas de acesso a chaves de sessão sem token válido | Backend Lead |
| Alertas de Terceiros | Supabase (notificação de breach), Vercel (DDoS), Asaas (transações suspeitas) | Qualquer notificação de incidente recebida | DPO + CEO |
| Relatórios de Titulares | Usuário reporta acesso não autorizado, email de redefinição de senha não solicitado | Qualquer relato de suspeita via dpo@cataloga-ai.com.br | DPO |
| Vulnerability Scans | CVEs críticas em dependências, portas abertas não autorizadas | CVSS ≥7.0; porta não documentada detectada | DevOps |
1.2 Canais de Recebimento
- Email: security-incidents@cataloga-ai.com.br (monitorado 24/7 via alertas de celular)
- Slack: Canal
#security-incidents(notificações push ativadas) - Telefone: +55 11 9XXXX-XXXX (DPO) e +55 11 9YYYY-YYYY (CTO)
2. TRIAGEM — SEVERITY MATRIX
Matriz de Severidade
| Severity | Descrição | Exemplos | Prazo de Resposta | Notificação ANPD |
|---|---|---|---|---|
| P0 — Crítico | Vazamento massivo de PII, acesso não autorizado a dados de pagamento, exfiltração confirmada | Base de lojistas completa vazada; credenciais de cartão de crédito acessadas; ransomware com criptografia de backups | Imediato (15 min para contenção inicial) | SIM (72h) |
| P1 — Alto | Acesso não autorizado a dados de lojistas, comprometimento de credenciais admin, exposição limitada de PII de consumidores finais | Admin account comprometido; logs de acesso de clientes finais expostos (sem dados financeiros); backup não criptografado acessado | 1 hora | Provável (avaliar em 4h) |
| P2 — Médio | Exposição limitada sem exfiltração confirmada, vulnerabilidade crítica descoberta sem exploração ativa | Endpoint /api/debug exposto temporariamente; CVE crítico em lib não exploitada; acesso indevido a logs internos sem PII |
4 horas | Improvável (avaliar em 24h) |
| P3 — Baixo | Anomalia sem impacto confirmado, tentativa de ataque mitigada | Scan de portas detectado e bloqueado; tentativa de SQL injection bloqueada por WAF; phishing direcionado a colaborador (não clicado) | 24 horas | Não |
Fluxo de Classificação
Incidente detectado
↓
DPO + CTO avaliam:
- Tipo de dado afetado (PII sensível? Dados financeiros? Credenciais?)
- Volume estimado (quantos registros/titulares?)
- Exfiltração confirmada ou suspeita?
- Impacto operacional (sistema down? Perda de integridade?)
↓
Atribuir severity (P0/P1/P2/P3)
↓
Disparar runbook correspondente
3. CONTENÇÃO
3.1 Procedimentos por Severity
P0 — Crítico
Ações imediatas (primeiros 15 minutos):
- Isolar serviço comprometido
- Vercel: desabilitar deployment afetado via dashboard
- Supabase: revogar API keys comprometidas (Dashboard > Settings > API)
- Redis: flush cache se houver suspeita de poisoning (
redis-cli FLUSHALL)
- Revogar credenciais
- Rodar script
/scripts/revoke-all-admin-sessions.sh - Forçar re-autenticação de todos lojistas via invalidação de refresh tokens
- Rotacionar secrets do GitHub Actions, Vercel, Supabase
- Bloquear IPs suspeitos
- Adicionar IPs à blocklist do Cloudflare (ou WAF usado)
- Regra temporária: bloquear tráfego de países não esperados (se aplicável)
- Preservar evidências
- Snapshot imediato de logs (Supabase, Vercel, Redis) — não deletar nada
- Backup de banco de dados (somente leitura, para análise forense)
Responsáveis: CTO + DevOps + DPO
P1 — Alto
Ações em 1 hora:
- Isolar conta/serviço comprometido
- Desabilitar usuário admin específico
- Segmentar acesso: limitar APIs apenas a IPs whitelistados temporariamente
- Revogar credenciais específicas
- Resetar senha do admin comprometido
- Rotacionar API key do serviço afetado (ex: Asaas webhook secret)
- Audit trail
- Filtrar logs de acesso do usuário/IP suspeito nas últimas 72h
- Identificar quais dados foram acessados
- Comunicação interna
- Alertar time via Slack
#security-incidents - Briefing com CEO e DPO
Responsáveis: DPO + Backend Lead
P2 — Médio
Ações em 4 horas:
- Patch de vulnerabilidade
- Aplicar correção de CVE ou desabilitar endpoint exposto
- Deploy urgente se necessário
- Review de logs
- Confirmar se houve tentativa de exploração
- Verificar acessos anômalos nas últimas 24h
- Monitoramento aumentado
- Configurar alertas adicionais para o vetor de ataque identificado
Responsáveis: DevOps
P3 — Baixo
Ações em 24 horas:
- Documentar incidente
- Registrar no issue tracker de segurança
- Avaliar se exige mudança de controles
- Monitoramento passivo
- Observar se há repetição do padrão
Responsáveis: DevOps ou DPO
4. ERRADICAÇÃO
4.1 Remoção de Acesso Não Autorizado
- Confirmar que credenciais comprometidas foram revogadas
- Testar login com credenciais antigas (deve falhar)
- Verificar que sessions antigas foram invalidadas
- Remover backdoors/malware
- Scan de servidor com antivírus atualizado
- Revisar código deployado vs. repositório Git (diff completo)
- Verificar cron jobs e scheduled tasks não autorizados
- Fechar vetor de ataque
- Se SQL injection: parametrizar queries vulneráveis
- Se credencial fraca: forçar MFA para todos admins
- Se misconfiguration: corrigir permissões (princípio least-privilege)
4.2 Análise Forense Básica
Checklist:
- [ ] Linha do tempo completa do incidente (primeiro acesso → último acesso)
- [ ] Lista de IPs envolvidos (atacante + possíveis cúmplices)
- [ ] Dados acessados/exfiltrados (tabelas, volumes, campos específicos)
- [ ] Método de acesso (credencial roubada, exploit, engenharia social)
- [ ] Duração da exposição (tempo entre brecha aberta e detecção)
Ferramentas:
- Logs agregados: Elasticsearch + Kibana (se disponível) ou
grepem exports - Análise de tráfego: logs do Cloudflare/WAF
- Banco de dados: query audit logs do Supabase
Responsável: CTO + consultor externo de forense (se P0)
5. RECUPERAÇÃO
5.1 Restore de Backup
Quando aplicar:
- Dados foram alterados maliciosamente (ex: registros deletados, corrompidos)
- Ransomware criptografou dados
- Não há confiança na integridade atual do banco
Procedimento:
- Selecionar ponto de restore
- Último backup antes da janela de comprometimento
- Validar integridade do backup (checksum MD5/SHA256)
- Ambiente de teste
- Restaurar em ambiente staging primeiro
- Validar que não há payload malicioso no backup
- Produção
- Restaurar em produção com downtime planejado
- Comunicar downtime a lojistas com antecedência mínima de 2h (se viável)
SLA de restore:
- P0: até 4 horas após decisão de restore
- P1: até 12 horas
Responsável: DevOps + CTO
5.2 Validação de Integridade
Checklist pós-restore:
- [ ] Queries de sanidade: contagem de registros por tabela (deve bater com snapshot pré-incidente)
- [ ] Teste de login: 5 usuários aleatórios (lojistas) conseguem logar
- [ ] Teste de funcionalidade crítica: criar pedido, processar pagamento, enviar WhatsApp
- [ ] Verificar que não há sinais de reinfecção (scan completo)
5.3 Retorno ao Operacional
Critérios para declarar "incidente resolvido":
- [ ] Vetor de ataque confirmadamente fechado
- [ ] Sem sinais de acesso não autorizado nas últimas 24h
- [ ] Sistemas funcionando normalmente (uptime 99.9% nas últimas 4h)
- [ ] Comunicações obrigatórias enviadas (ANPD, titulares, lojistas)
- [ ] Post-mortem agendado
Responsável: DPO declara "all clear" após aprovação de CTO e CEO
6. COMUNICAÇÃO
6.1 Decision Tree — Quando Notificar
Incidente classificado
↓
Dados pessoais foram acessados/vazados?
NÃO → Apenas comunicação interna → FIM
SIM ↓
↓
Risco aos direitos/liberdades dos titulares?
(ex: dados financeiros, dados sensíveis, risco de fraude, dano reputacional)
NÃO → Apenas comunicação interna + registro no RIPD → FIM
SIM ↓
↓
NOTIFICAR ANPD EM 72H (Art. 48 LGPD)
↓
Risco ALTO aos titulares?
(ex: dados financeiros vazados, risco de fraude iminente)
SIM → NOTIFICAR TITULARES TAMBÉM
NÃO → Avaliar caso a caso com DPO + jurídico
6.2 Prazos e Responsáveis
| Destinatário | Prazo | Template | Responsável | Canal |
|---|---|---|---|---|
| ANPD | Máx. 72h após ciência do incidente | notificacao-anpd.md |
DPO | Formulário eletrônico ANPD (link oficial) |
| Titulares (consumidores finais) | Prazo razoável (recomendado: 7 dias) | notificacao-titulares.md |
DPO + Marketing | Email + notificação in-app |
| Lojistas (clientes B2B) | 24h após confirmação de impacto a eles | comunicado-lojistas.md |
Customer Success + DPO | Email + dashboard do sistema |
| Time interno | Imediato (durante contenção) | comunicado-interno.md |
CTO | Slack #security-incidents + reunião emergencial |
| Imprensa | Somente se P0 com repercussão pública | Template jurídico (não incluído aqui) | CEO + Jurídico | Press release |
6.3 Conteúdo Obrigatório — Notificação ANPD
Conforme LGPD Art. 48, deve incluir:
- Descrição da natureza dos dados pessoais afetados
- Informações sobre os titulares envolvidos (quantidade estimada, categorias)
- Indicação das medidas técnicas e de segurança utilizadas para proteção
- Riscos relacionados ao incidente
- Motivos da demora (se ultrapassar 72h — justificar)
- Medidas que foram ou serão adotadas para reverter ou mitigar os efeitos
Importante: Não omitir informações relevantes. Transparência é obrigatória.
6.4 Comunicação com Lojistas (Papel Duplo)
Cataloga-ai tem dois papéis:
- Controlador dos dados dos lojistas (nome, email, CNPJ, dados de pagamento deles)
- Operador dos dados dos clientes finais dos lojistas
Cenário 1: Vazamento de dados dos lojistas (ex: lista de emails de assinantes)
→ Cataloga-ai é controlador → notifica ANPD + lojistas afetados
Cenário 2: Vazamento de dados dos clientes finais (ex: lista de consumidores que compraram via checkout)
→ Cataloga-ai é operador → notifica os lojistas (que são controladores) + ANPD
→ Lojistas decidem se notificam seus clientes finais
Template: comunicado-lojistas.md cobre ambos cenários.
7. PÓS-INCIDENTE
7.1 Post-Mortem (Obrigatório para P0 e P1)
Prazo: Até 7 dias após resolução do incidente
Participantes: DPO, CTO, DevOps, Backend Lead, CEO (se P0)
Agenda:
- Timeline detalhada (do primeiro sinal ao "all clear")
- Root cause analysis
- Por que aconteceu? (vulnerabilidade técnica, erro humano, processo falho)
- Por que não foi detectado antes?
- O que funcionou bem
- Quais controles mitigaram o dano?
- Tempo de resposta foi adequado?
- O que falhou
- Onde os controles existentes não funcionaram?
- Gaps de monitoramento/alertas?
- Action items
- Melhorias técnicas (ex: adicionar MFA, corrigir permissões)
- Melhorias de processo (ex: adicionar alerta para tipo X de evento)
- Treinamento (se houve fator humano)
- Responsável e prazo para cada item
Formato: Template post-mortem-template.md (disponível em 05-templates-comunicacao/)
7.2 Registro de Lições Aprendidas
Onde registrar: Planilha Incident Log (Google Sheets compartilhado com DPO, CTO, CEO)
Campos:
| Data | Severity | Tipo de Incidente | Dados Afetados | Root Cause | Ações Corretivas | Status | Responsável |
|---|---|---|---|---|---|---|---|
| 2026-04-15 | P1 | Credencial admin vazada | Logs de acesso de 500 lojistas | Senha fraca sem MFA | Forçar MFA para todos admins | ✅ Concluído | CTO |
7.3 Atualização de Controles
Obrigatório: Revisar e atualizar os seguintes documentos em até 30 dias:
- [ ] 04-seguranca-informacao.md — adicionar novos controles técnicos
- [ ] 05-resposta-incidentes.md (este documento) — atualizar runbooks se processo mudou
- [ ] 06-politica-tratamento-interna.md — adicionar regras se houve fator humano
- [ ] Treinamento — incluir caso real no próximo treinamento trimestral
Responsável: DPO + CTO
7.4 Auditoria Forense Externa (P0 apenas)
Se incidente P0, contratar auditoria externa:
- Quando: Até 15 dias após resolução
- Escopo: Validação independente de que vetor foi fechado + recomendações
- Budget: Até R$ 50.000 (aprovação CEO obrigatória)
- Deliverable: Relatório executivo + plano de remediação
Fornecedores sugeridos:
- KPMG Cyber Security
- Deloitte Cyber Risk
- Tempest Security Intelligence
8. ANEXOS
8.1 Templates de Comunicação
Disponíveis em 05-templates-comunicacao/:
notificacao-anpd.md— Formulário estruturado para notificação à ANPDnotificacao-titulares.md— Email para consumidores finais afetadoscomunicado-lojistas.md— Email para lojistas (clientes B2B) afetadoscomunicado-interno.md— Mensagem para time interno (Slack/email)post-mortem-template.md— Estrutura para reunião pós-incidente
8.2 Contatos Emergenciais
| Papel | Nome | Telefone | Disponibilidade | |
|---|---|---|---|---|
| DPO | [A definir] | dpo@cataloga-ai.com.br | +55 11 9XXXX-XXXX | 24/7 |
| CTO | [A definir] | cto@cataloga-ai.com.br | +55 11 9YYYY-YYYY | 24/7 |
| CEO | [A definir] | ceo@cataloga-ai.com.br | +55 11 9ZZZZ-ZZZZ | Horário comercial + emergências |
| DevOps Lead | [A definir] | devops@cataloga-ai.com.br | +55 11 9WWWW-WWWW | Horário comercial + on-call |
| Jurídico (externo) | [Escritório] | contato@escritorio.com.br | +55 11 3XXX-XXXX | Horário comercial |
8.3 Ferramentas e Acessos
| Ferramenta | URL | Credenciais | Finalidade |
|---|---|---|---|
| Supabase Dashboard | https://app.supabase.com/project/[project-id] | Admin (1Password) | Logs, revogação de API keys |
| Vercel Dashboard | https://vercel.com/cataloga-ai | Admin (1Password) | Desabilitar deploys, logs |
| Cloudflare | https://dash.cloudflare.com | Admin (1Password) | Bloqueio de IPs, WAF rules |
| 1Password (Vault de Emergência) | https://cataloga-ai.1password.com | Cofre físico (CEO) | Acesso a todas credenciais críticas |
| ANPD — Notificações | https://www.gov.br/anpd/pt-br/canais_atendimento/cidadao | Login gov.br (DPO) | Submissão de notificações |
8.4 Checklist Rápido (Laminated Card)
Para P0:
✅ Isolar serviço (15 min)
✅ Revogar credenciais (15 min)
✅ Bloquear IPs (15 min)
✅ Preservar logs (30 min)
✅ Comunicar CEO + DPO (30 min)
✅ Avaliar notificação ANPD (4h)
✅ Preparar comunicação titulares (24h)
✅ Post-mortem (7 dias)
9. APROVAÇÕES E REVISÕES
| Versão | Data | Autor | Mudanças | Aprovado por |
|---|---|---|---|---|
| 1.0 | 2026-04-25 | Breach Responder (Incident Management) | Versão inicial | [Pendente: CEO + DPO] |
Próxima revisão obrigatória: 2027-04-25 (anual) ou após qualquer incidente P0/P1
FIM DO DOCUMENTO