avatar

Francisco Pérez

Actualizado: 2026-10-04

12 min de lectura

Si aumentan los SMS de verificación y el gasto, pero no los registros o accesos completados, conviene investigar el tráfico. El SMS pumping consiste en provocar envíos artificiales que generan costes para la empresa. Ese patrón puede confundirse con una campaña comercial, un problema de entrega o un bucle de reintentos.

Esta guía explica cómo relacionar los datos, prevenir el abuso y comprobar los controles de envío. Si el gasto ya está creciendo de forma anómala, consulte primero qué hacer durante un ataque .

Solicitudes automatizadas de OTP que aumentan el gasto en SMS de una empresa

Qué es el SMS pumping y cómo genera costes

El SMS pumping, también llamado bombeo de SMS , abusa de formularios o API que activan mensajes, como el registro, el inicio de sesión o la recuperación de contraseñas. Las solicitudes no responden a una necesidad real de verificación: buscan generar tráfico de pago.

En este fraude, los atacantes pueden obtener una parte de los ingresos asociados al tráfico. Twilio describe este mecanismo y distingue situaciones en las que el operador participa y otras en las que es explotado sin saberlo. No implica que todos los operadores estén involucrados ni que el destino deba ser un número de tarificación especial.

La expresión tráfico inflado artificialmente , o AIT por sus siglas en inglés, describe el volumen creado sin demanda legítima. Un número puede existir y recibir el SMS correctamente: eso no demuestra que la solicitud sea auténtica.

El objetivo también difiere del smishing , que intenta engañar al destinatario, y del bombardeo de mensajes dirigido a molestar a una persona. Aquí el problema central es la generación de tráfico facturable.

Cómo detectar anomalías en el tráfico de SMS OTP

Compare envíos, verificaciones y gasto por mercado y por flujo: registro, acceso o recuperación. Las siguientes señales sirven para orientar la investigación; ninguna confirma por sí sola un fraude.

Señal Qué revisar Otra explicación posible Acción inicial
Más envíos sin más verificaciones Flujos iniciados y completados Retrasos de entrega o fallos del registro Relacionar estados y resultados del negocio
Concentración en destinos nuevos Países y rangos con más solicitudes Lanzamiento en otro mercado Contrastar con la actividad prevista
Más reenvíos por flujo Intentos e intervalos Bucle de reintentos o mala entrega Revisar la lógica de reenvío
Patrones repetidos Cuenta, sesión, dispositivo e IP Usuarios de una red compartida Correlacionar señales antes de bloquear
El coste crece más que el volumen Destinos, tarifas y unidades facturadas Cambio en la mezcla de destinos Desglosar el gasto

De dónde obtener los datos: el backend registra la petición; la plataforma informa del envío; el sistema de negocio confirma si se completó el registro o el acceso. Conviene conservar estas etapas por separado.

Dato Fuente recomendada Relación que guardar Precaución
Solicitudes, bloqueos previos y reenvíos Registros del backend ID del flujo e ID de cada intento Una solicitud no equivale a un envío
Aceptación, envío y entrega Respuesta de API, mensajes y callbacks ID del flujo, ID del mensaje y canal Son estados distintos
Verificación y resultado del negocio Resultado de verificación y eventos de registro o acceso ID del flujo y evento de negocio Validar el código no implica completar el registro
Gasto Facturación; campos de coste cuando estén disponibles Mensaje o unidad facturada y periodo La ausencia de coste no significa coste cero

Como diseño de registro, genere un ID propio para cada flujo y asocie sus intentos de envío. Cuando la plataforma devuelva un ID de mensaje, guarde la correspondencia: un flujo puede tener varios mensajes . Si un intento se rechaza sin devolver ese ID, conserve igualmente el registro de la petición y su error.

La documentación de callbacks de OTP distingue sent , delivered y verified , e incluye message_id . Los campos de facturación solo aparecen cuando hay facturación. Al procesar eventos, contemple duplicados y cambios de orden; no cuente cada callback como un SMS ni sume dos veces una misma unidad facturada.

Para un grupo de flujos con al menos una solicitud de envío SMS aceptada, puede calcular:

Finalización de la verificación

(Flujos de ese grupo que completan la verificación ÷ total de flujos del grupo) × 100

Esta es una propuesta de análisis, no una métrica predeterminada del proveedor. Use una ventana que permita completar el flujo y cuente aparte los bloqueos previos. Si un canal alternativo completa la verificación, identifíquelo: el indicador mide el resultado del flujo, no la entrega del SMS. La respuesta inicial indica el canal actual, no acredita el de entrega final; compruebe los eventos. Sin una relación fiable entre flujos y mensajes, primero hay que corregir la recogida de datos.

Por ejemplo, ante más envíos y menos verificaciones en un mercado, revise primero los fallos de entrega y los reintentos del mismo flujo. Después contraste destinos y patrones con la demanda prevista. Un problema técnico también puede aumentar el gasto.

Cómo prevenir el abuso antes de enviar un SMS OTP

La prevención empieza antes de la llamada que activa el mensaje. El equipo de la aplicación controla el contexto de negocio; los controles del proveedor añaden otra capa, según las capacidades disponibles.

Validar la solicitud y limitar los reintentos en el backend

Compruebe que la petición pertenece a un flujo válido. Un registro puede empezar sin una cuenta autenticada, pero debe tener una sesión o contexto válido. Valide en el servidor el resultado de los controles contra bots y aplique límites por cuenta, sesión o dispositivo. El contador del frontend no sustituye al control del backend.

Un CAPTCHA puede reducir solicitudes automatizadas, pero no determina por sí solo el riesgo del destino. La defensa por SMS de reCAPTCHA , por ejemplo, utiliza una evaluación específica antes del envío. Si se añade una herramienta especializada, hay que comprobar sus requisitos de integración, coste y efecto sobre usuarios legítimos.

Restringir los destinos al alcance real del negocio

Permita los mercados atendidos y defina cómo evaluar excepciones, como usuarios internacionales. La validación del formato evita errores básicos, pero no acredita que un número sea seguro. Evite abrir todos los destinos para resolver una incidencia aislada.

Vigilar el volumen, el coste y la estrategia de canales

Para ajustar los umbrales, use el comportamiento normal del servicio como referencia:

  • Separar escenarios. Revisar solicitudes y reenvíos habituales en registro, acceso y recuperación.
  • Analizar cada mercado. Incluir picos previstos, campañas y reintentos legítimos; no adoptar una cifra universal.
  • Distinguir alerta y límite. Dejar margen entre ambos según el ritmo de crecimiento y el tiempo de respuesta del equipo.
  • Revisar el gasto aparte. Una cuota diaria o mensual limita el volumen acumulado; los picos breves requieren límites de frecuencia. El mismo volumen puede tener costes distintos según el destino.
  • Evaluar cada ajuste. Comparar gasto anómalo, finalización de usuarios legítimos, reenvíos y consultas a soporte por escenario y mercado.

OWASP recomienda adaptar la limitación a las necesidades del negocio y establecer límites de gasto para servicios externos o alertas de facturación cuando no sea posible. Una cuota de mensajes no debe presentarse como un presupuesto monetario.

La siguiente distribución ayuda a asignar responsabilidades:

Control Responsable Dónde se aplica Comprobación
Contexto y señales de bots Equipo de la aplicación Backend, antes de enviar Las peticiones sin contexto válido se detienen
Cuenta, sesión y dispositivo Equipo de la aplicación Entrada de cada flujo Se limitan los intentos relacionados
Frecuencia por número e IP Integración y proveedor Controles de envío y datos transmitidos El límite recibe los datos necesarios y actúa
Destinos permitidos Negocio e integración Backend y controles del proveedor El alcance coincide con los mercados atendidos
Alertas y cuotas de volumen Operaciones e integración Envío y recepción de notificaciones La alerta llega y la cuota se aplica
Costes y usuarios afectados Operaciones y producto Facturación y eventos relacionados Se detectan gasto anómalo y posibles bloqueos incorrectos
Controles antes del envío de SMS OTP con monitorización de estados, resultados y costes.

Un bloqueo no confirma automáticamente un fraude. Si aumentan las incidencias de usuarios legítimos, revise la regla y sus señales antes de ampliar las restricciones. Los canales alternativos también necesitan controles de riesgo y coste; no deben servir para eludir una decisión de bloqueo.

Qué hacer si el ataque ya está en curso

Durante una anomalía activa, la prioridad es contener los envíos y conservar información para decidir qué puede recuperarse.

  1. Acotar el tráfico

    Identificar aplicación, entrada, destinos y periodo afectados. Contrastar solicitudes, estados y gasto.

  2. Contener los envíos

    Aplicar restricciones disponibles o pausar SMS si el gasto sigue creciendo. Confirmar el alcance y el impacto sobre verificaciones legítimas.

  3. Conservar los registros

    Guardar intentos, mensajes, errores, facturación y cambios de configuración. Evitar reintentos o canales alternativos que prolonguen el abuso.

  4. Corregir el origen

    Revisar la entrada y la lógica de reenvío. Deshabilitar o rotar credenciales si hay indicios de filtración; la rotación no corrige por sí sola un formulario vulnerable.

  5. Reanudar con supervisión

    Tras corregir la causa y comprobar un flujo legítimo, recuperar un alcance controlado y observar solicitudes, gasto y finalización.

Antes de retirar restricciones, compruebe que la causa y la configuración están revisadas y que los reintentos no reabren el problema. Defina quién autoriza la recuperación y quién vigila sus resultados.

Cómo configurar y comprobar los controles en EngageLab OTP

engagelab otp servicio

En EngageLab OTP , la implementación combina controles de la aplicación y configuración de envío. La guía para evitar el abuso de la API exige realizar las llamadas desde el servidor y mantener allí las credenciales.

Preparar la integración y los límites de frecuencia

Distinga los dos tipos de IP: la lista de IP permitidas de la API Key contiene las IP de salida del servidor ; el parámetro end_user_ip corresponde a la IP del usuario final . Obtenga ese dato mediante la infraestructura de confianza de su aplicación; sustituirlo por la IP del servidor agruparía peticiones de usuarios distintos.

Active los límites por número y, si se usa el control por IP, incluya end_user_ip en la solicitud. El Centro de seguridad documenta estos controles por ventanas de tiempo. Las comprobaciones de sesión, cuenta y dispositivo siguen correspondiendo al backend.

enviar otp engagelab

Configurar los destinos, las alertas y las cuotas

Configure la lista de países o regiones permitidos o bloqueados. Después defina los valores diarios o mensuales de alerta y límite: la alerta avisa sin pausar; el límite detiene el envío SMS al alcanzarse. Son umbrales de volumen .

Para recibir las notificaciones, configure los eventos correspondientes en Webhook callbacks . Compruebe la recepción por el equipo responsable, además de la conectividad del endpoint. El gasto se supervisa por separado mediante los datos de facturación.

crear nueva plantilla engagelab otp

Preparar la parada de emergencia y validar los cambios

La parada descrita en el Centro de seguridad pausa el SMS de toda la aplicación . Prepare su uso y recuperación considerando ese alcance. En esa guía, las secciones de seguridad de WhatsApp, Voice y Email figuran como «Próximamente»; confirme sus controles por separado antes de utilizarlos.

La aplicación también debe interpretar las respuestas. La referencia de envío de OTP distingue estos errores:

Código HTTP Motivo Acción del backend
6001 429 Frecuencia del mismo número Detener el reintento inmediato y respetar la ventana aplicable
6002 429 Frecuencia de la IP del usuario Detener el reintento inmediato y comprobar el límite y end_user_ip
6003 429 Cuota global diaria o mensual Detener reintentos y revisar cuota y periodo
6007 403 Envío SMS suspendido Detener reintentos y comprobar la suspensión y su causa

Decida según el campo code , no según el texto de message . Un HTTP 429 no tiene siempre la misma causa. Tras alcanzar una cuota, las peticiones posteriores pueden devolver 6007. No reintente inmediatamente en bucle ni active otro canal de pago para esquivar el rechazo. Muestre un plazo de espera solo cuando se conozca; para una suspensión, informe de la indisponibilidad temporal sin prometer una recuperación automática.

Revise tanto los reintentos de la aplicación como la estrategia de canales de las plantillas. Un rechazo de riesgo y un fallo asíncrono de entrega requieren decisiones distintas. Esta propuesta de pruebas de aceptación debe ejecutarse con números propios, tráfico controlado y umbrales de prueba:

Prueba Condición Resultado esperado Evidencia
Flujo normal y reenvío permitido Destino y frecuencia válidos Verificación completada Resultado del flujo y estados
Límite por número Límite activo 6001, sin bucle de reintentos Respuesta e intentos relacionados
Límite por IP end_user_ip enviado 6002, sin reintento inmediato Petición y respuesta
Destino no permitido Lista configurada Rechazo del envío Respuesta y registros
Alerta de volumen Callback y receptor definidos Notificación recibida Evento y recepción
Cuota global Cuota y periodo definidos 6003 y cese de reintentos; posible 6007 posterior Respuestas e intentos
Pausa y recuperación Causa y alcance revisados 6007 durante la pausa; flujo legítimo tras recuperar Respuesta y resultado
Rechazo con canales alternativos Estrategias revisadas No se elude el rechazo con otro canal de pago Intentos y eventos de todos los canales
Ajuste de umbrales Escenarios y mercados comparables Impacto sobre usuarios legítimos evaluado Resultados y reenvíos antes y después

Preguntas frecuentes

¿Puede haber SMS pumping si los mensajes se entregan correctamente?

Sí. La entrega demuestra que el mensaje llegó, no que la solicitud fuera legítima. Hay que relacionarla con la verificación, el contexto y el resultado del negocio.

¿Un CAPTCHA basta para prevenir el SMS pumping?

No. Puede frenar automatizaciones, pero debe combinarse con límites, controles de destino y supervisión del gasto. No equivale por sí solo a evaluar el riesgo del número.

¿Por qué no basta con limitar las solicitudes por IP?

Porque varios usuarios legítimos pueden compartir IP y un atacante puede distribuir las solicitudes. Conviene contrastar número, sesión, dispositivo y comportamiento.

¿Es necesario que se filtre una API Key para sufrir este fraude?

No. Un atacante puede abusar de un formulario que llama correctamente al proveedor desde el backend. Proteger la clave y proteger la entrada son tareas complementarias.

¿Cambiar de canal elimina el riesgo de abuso?

No. Puede cambiar el coste y la forma del abuso. El canal alternativo necesita sus propias comprobaciones y no debe eludir un rechazo de riesgo.

Para avanzar, relacione un flujo real con sus mensajes, compruebe un límite y verifique cómo responde la aplicación. Esa prueba permite revisar a la vez el gasto y la experiencia de los usuarios legítimos.

Configurar controles de envío en EngageLab OTP

Definir límites, restringir destinos y preparar alertas para revisar el tráfico de verificación.

Crear cuenta

Consultar la documentación del centro de seguridad