Botón de Pánico
Requisitos previos de acceso
- Permiso (módulo):
panicButton - Licencia/Característica: Ninguna
- Contenedor del menú: GENERAL → grupo Auditoría
Qué es / cuándo usar
La pantalla Botón de Pánico (/panic-button) es el interruptor de emergencia operacional de la plataforma. Permite suspender inmediatamente categorías enteras de operaciones en todo el tenant — sin tocar usuario a usuario — cuando se detecta un incidente en curso (fraude masivo, explotación de bug, compromiso de integración).
Cada categoría es una tarjeta independiente que puede ser suspendida (parar) o reanudada (volver a operar). Es la contrapartida de respuesta a la gestión de incidentes; la detección proviene del Registro Antifraude y de las Alertas de Auditoría.
Requisitos previos
- Permiso: módulo
panicButton. El permiso es dual — enum CPM en el backend + módulo dinámico en la DB. Los botones de suspender/reanudar están protegidos por la directiva*appHasPermission="'panicButton'". - Licencia/Característica: ninguna.
- Dependencias de otras pantallas: ninguna. El efecto es global en el tenant — los servicios verifican el estado de suspensión (AntifraudService) antes de ejecutar la operación correspondiente.
Paso a paso
- Navega a GENERAL → Auditoría → Botón de Pánico.
- La pantalla muestra una tarjeta por categoría, cada una con su estado actual (Activo o Suspendido).
- Para suspender: haz clic en Suspender en la tarjeta, proporciona la razón (mín. 10 caracteres) y el código MFA (6 dígitos) en el diálogo, y confirma.
- Para reanudar: haz clic en Reanudar en la tarjeta y proporciona el código MFA (6 dígitos).
- Las tarjetas suspendidas muestran quién las suspendió, la razón y la fecha.
Categorías de suspensión
| Categoría | Valor (suspensionType) | Qué se detiene en el backend |
|---|---|---|
| Creación de cuenta | account_creation | Bloquea nuevos registros/aperturas de cuenta en el tenant |
| Retiros | withdrawals | Bloquea retiros (PIX/banco/cripto) — contiene fuga de fondos en un incidente |
| Transferencias | transfers | Bloquea transferencias internas/externas |
| Creación de órdenes | order_creation | Bloquea apertura de nuevas órdenes (p. ej., compra/venta) |
| Compras automáticas | auto_purchases | Bloquea ejecuciones automáticas/recurrentes de compra |
Campos del diálogo (suspensión)
| Campo | Qué es | ¿Obligatorio? | Efecto en el sistema/backend |
|---|---|---|---|
| Razón | Justificación de la suspensión | Sí (mín. 10 caracteres) | Se registra en reason; se convierte en la pista de auditoría del incidente |
| Código MFA | Código de 6 dígitos de la aplicación autenticadora | Sí (patrón ^\d{6}$) | Re-autenticación obligatoria para la acción sensible (step-up). Sin un MFA válido, el backend lo rechaza |
En reanudar, solo se requiere el código MFA (razón no se solicita).
Acciones y modales
- Suspender: abre el diálogo de acción (
suspend); en la confirmación, envíasuspensionType+reason+mfaCode. En caso de éxito, recarga el estado y muestra una confirmación. Los errores del backend (p. ej., MFA inválido) se muestran con el mensaje devuelto. - Reanudar: abre el diálogo de acción (
resume); en la confirmación, envíasuspensionType+mfaCodey reabre la categoría. - Actualizar: recarga el estado de todas las categorías.
Reglas de negocio / cuidados
Efecto inmediato y amplio
- La suspensión es un interruptor global para el tenant: afecta a todos los usuarios en esa categoría de operación instantáneamente, no solo a sospechosos. Usa con criterio — es una medida de contención de incidentes, no de gestión rutinaria.
- Dejar una categoría suspendida paraliza el negocio (p. ej.,
account_creationsuspendido impide cualquier nuevo cliente). Siempre reanuda en cuanto el incidente esté contenido.
Advertencia
- Step-up obligatorio: tanto suspender como reanudar requieren código MFA (re-autenticación). Esto asegura que el interruptor de emergencia no sea activado por una sesión comprometida.
- La acción registra quién la suspendió (
suspendedBy), razón y fecha — es la pista de auditoría del incidente. En una respuesta coordinada, registra el número del incidente en el campo de razón. - El Botón de Pánico no es de 4 ojos (doble aprobación): es una acción unilateral protegida por step-up. Para decisiones que requieren dos aprobadores, usa los flujos de aprobación definidos en el ADR antifraude de admin.
Ejemplos
Escenario 1 — Contener retiros masivos durante un incidente
Se sospecha una explotación que está drenando fondos a través de retiros de cripto. El operador de seguridad:
- Abre Botón de Pánico y hace clic en Suspender en la tarjeta Retiros (
withdrawals). - En el diálogo, escribe la razón: "INC-2026-014: bloqueo de retiros por sospecha de exploit en flujo cripto" y proporciona el código MFA de 6 dígitos.
- Confirma. Desde ese momento, ningún retiro se procesa en el tenant. La tarjeta cambia a Suspendido, mostrando el operador, razón y fecha.
- Después de la corrección y validación, hace clic en Reanudar, proporciona el código MFA, y los retiros vuelven a operar.
Escenario 2 — Pausar registros durante una onda de cuentas fraudulentas
Se detecta creación automatizada de cuentas (bot). El operador suspende la categoría Creación de cuenta (account_creation) con razón "Onda de creación automatizada de cuentas — bloqueo preventivo". Los nuevos registros se detienen; los usuarios existentes continúan operando normalmente. Cuando el filtro/captcha se refuerza, la categoría se reanuda.
Escenario 3 — Congelar compras automáticas después de un error de fijación de precios
Un bug de cotización está disparando compras automáticas a precio incorrecto. El operador suspende Compras automáticas (auto_purchases), conteniendo la pérdida, mientras el equipo corrige la fijación de precios. Otras operaciones (retiros, transferencias) permanecen habilitadas, minimizando el impacto empresarial.