Botão de Pânico
Pré-requisitos de acesso
- Permissão (módulo):
panicButton - Licença/Feature: Nenhuma
- Contêiner do menu: GERAL → grupo Auditoria
O que é / quando usar
A tela Botão de Pânico (/panic-button) é o kill-switch operacional de emergência da plataforma. Ela permite suspender imediatamente categorias inteiras de operações em todo o tenant — sem mexer usuário a usuário — quando se detecta um incidente em andamento (fraude em massa, exploração de bug, comprometimento de integração).
Cada categoria é um cartão independente que pode ser suspenso (parar) ou retomado (voltar a operar). É a contrapartida de resposta ao incidente; a detecção vem do Log antifraude e dos Alertas de Auditoria.
Pré-condições
- Permissão: módulo
panicButton. Permissão é dupla — enum CPM no backend + módulo dinâmico no DB. Os botões de suspender/retomar são protegidos pela diretiva*appHasPermission="'panicButton'". - Licença/Feature: nenhuma.
- Dependências de outras telas: nenhuma. O efeito é global no tenant — os serviços consultam o estado de suspensão (AntifraudService) antes de executar a operação correspondente.
Passo a passo
- Acesse o menu GERAL → Auditoria → Botão de Pânico.
- A tela exibe um cartão por categoria, cada um com seu status atual (Ativo ou Suspenso).
- Para suspender: clique em Suspender no cartão, informe o motivo (mín. 10 caracteres) e o código MFA (6 dígitos) no diálogo e confirme.
- Para retomar: clique em Retomar no cartão e informe o código MFA (6 dígitos).
- Cartões suspensos mostram quem suspendeu, o motivo e a data.
Categorias de suspensão
| Categoria | Valor (suspensionType) | O que para no backend |
|---|---|---|
| Criação de conta | account_creation | Bloqueia novos cadastros/aberturas de conta no tenant |
| Saques | withdrawals | Bloqueia saques (PIX/banco/cripto) — contém vazamento de fundos em incidente |
| Transferências | transfers | Bloqueia transferências internas/externas |
| Criação de ordens | order_creation | Bloqueia abertura de novas ordens (ex.: compra/venda) |
| Compras automáticas | auto_purchases | Bloqueia execuções automáticas/recorrentes de compra |
Campos (diálogo de suspensão)
| Campo | O que é | Obrigatório? | Efeito no sistema/backend |
|---|---|---|---|
| Motivo | Justificativa da suspensão | Sim (mín. 10 caracteres) | Gravado em reason; vira trilha de auditoria do incidente |
| Código MFA | Código de 6 dígitos do app autenticador | Sim (padrão ^\d{6}$) | Re-autenticação obrigatória para a ação sensível (step-up). Sem MFA válido, o backend rejeita |
No retomar, apenas o código MFA é exigido (não pede motivo).
Ações e modais
- Suspender: abre o diálogo de ação (
suspend); ao confirmar, enviasuspensionType+reason+mfaCode. Em sucesso, recarrega os status e exibe confirmação. Erros do backend (ex.: MFA inválido) são exibidos com a mensagem retornada. - Retomar: abre o diálogo de ação (
resume); ao confirmar, enviasuspensionType+mfaCodee reabre a categoria. - Atualizar: recarrega o estado de todas as categorias.
Regras de negócio / cuidados
Efeito imediato e abrangente
- A suspensão é um kill-switch global do tenant: afeta todos os usuários daquela categoria de operação instantaneamente, não apenas suspeitos. Use com critério — é uma medida de contenção de incidente, não de gestão rotineira.
- Esquecer uma categoria suspensa paralisa o negócio (ex.:
account_creationsuspenso impede qualquer novo cliente). Sempre retome assim que o incidente for contido.
Atenção
- Step-up obrigatório: tanto suspender quanto retomar exigem código MFA (re-autenticação). Isso garante que o kill-switch não seja acionado por uma sessão sequestrada.
- A ação registra quem suspendeu (
suspendedBy), motivo e data — é a trilha de auditoria do incidente. Em uma resposta coordenada, registre no motivo o número do incidente. - O Botão de Pânico não é 4-eyes (dupla aprovação): é uma ação unilateral protegida por step-up. Para decisões que exigem dois aprovadores, use os fluxos de aprovação previstos no ADR de antifraude de admin.
Exemplos
Cenário 1 — Conter saque em massa durante um incidente
Suspeita-se de exploração que está drenando fundos via saques cripto. O operador de segurança:
- Abre Botão de Pânico e clica Suspender no cartão Saques (
withdrawals). - No diálogo, escreve o motivo: "INC-2026-014: bloqueio de saques por suspeita de exploit no fluxo cripto" e informa o MFA de 6 dígitos.
- Confirma. A partir desse instante, nenhum saque é processado no tenant. O cartão passa a Suspenso, mostrando o operador, o motivo e a data.
- Após a correção e validação, clica Retomar, informa o MFA, e os saques voltam a operar.
Cenário 2 — Pausar cadastros durante uma onda de contas fraudulentas
Detecta-se criação automatizada de contas (bot). O operador suspende a categoria Criação de conta (account_creation) com motivo "Onda de cadastros automatizados — bloqueio preventivo". Novos cadastros param; usuários existentes seguem operando normalmente. Quando o filtro/captcha é reforçado, a categoria é retomada.
Cenário 3 — Congelar compras automáticas após erro de precificação
Um bug de cotação está disparando compras automáticas a preço errado. O operador suspende Compras automáticas (auto_purchases), contendo o prejuízo, enquanto a equipe corrige a precificação. As demais operações (saques, transferências) continuam liberadas, minimizando o impacto no negócio.