El SMS pumping convierte tu verificación por teléfono en el ingreso de otro. Un bot escribe números de teléfono en el formulario que envía un código de un solo uso, en volumen, y los números pertenecen a un rango que controla un operador móvil. Cada SMS que pagas le deja una tarifa a ese operador, y el atacante se queda con una parte. Twilio lo describe así, y también lo llama fraude de tarificación de SMS (SMS toll fraud). A tus usuarios no les roban nada; la pérdida es tu factura de SMS.
Cómo funciona el SMS pumping
Cualquier formulario público que envía un SMS es un objetivo: el registro que verifica un teléfono, el inicio de sesión que envía un código, un botón "envíame el enlace por SMS", un chatbot que responde por SMS. Twilio nombra los códigos de un solo uso, los flujos de registro, los disparadores de notificaciones y los endpoints de chatbots. El operador puede estar en el esquema, con un acuerdo de reparto de ingresos, o ser usado sin saberlo.
La factura puede ser grande. El dueño de Twitter dijo en diciembre de 2022 que la empresa perdía unos 60 millones de dólares al año por SMS pumping a través de 390 operadores de telecomunicaciones. Es una afirmación suya, no una cifra auditada, pero muestra cuánto vale para un atacante un formulario de registro grande.
Las señales
- SMS a países donde no operas. Códigos enviados a lugares donde tienes pocos clientes o ninguno.
- Códigos que nadie introduce. La señal de Twilio para los códigos de un solo uso: la verificación nunca se completa.
- Números seguidos. Muchos mensajes a un bloque de números contiguos o parecidos.
- Gasto sin crecimiento. Costos de SMS que suben sin que suban los registros que convierten.
Lo que puede hacer tu proveedor de SMS
Tu proveedor ve el mensaje cuando sale, así que empieza por él. El consejo de Twilio: desactivar el SMS a los países donde no operas, limitar los mensajes al mismo rango de números, enviar solo a móviles después de consultar el tipo de línea, y activar su protección contra fraude, que bloquea un prefijo de destino sospechoso, como un país al que tu cuenta nunca envió SMS. Tiene un costo: Twilio afirma que sus falsos positivos quedan por debajo del 1% en el nivel estándar y del 2% en el más estricto. Estos controles actúan en el envío, cuando tu formulario ya aceptó la solicitud.
Frena la solicitud antes de enviar el código
El SMS solo cuesta dinero cuando lo envías, así que el lugar más barato para frenar el pumping es la solicitud que lo pide. La propia Twilio sugiere proteger cada formulario que dispara un SMS, y una espera entre solicitudes de código desde el mismo número o dirección IP. Bot Protection juzga esa solicitud en tu servidor, antes de que llames al proveedor de SMS:
- En el post que envía el código, pide la prueba de que tu página se visitó de verdad: un script que envía números de teléfono a tu API sin cargar la página recibe un desafío, sea cual sea su clase.
bot_high: no envíes nada. Con la respuesta señuelo (decoy) activada, tu servidor responde como si el código se hubiera enviado y no envía ninguno, así que el bot no tiene motivo para cambiar su script.bot: primero la página de desafío, y el código solo después.unknown,human,human_high: envía el código.
Las dos capas se suman: Bot Protection frena al bot en tu formulario, y la protección del proveedor atrapa lo que aún llega al envío.
Mídelo antes de bloquear
Empieza en modo monitor. Nadie queda bloqueado, y cada respuesta dice lo que habría hecho el modo bloqueo, así puedes comparar las solicitudes que habría rechazado con los códigos que nunca se introdujeron. Cuando coincidan, activa el modo bloqueo. Si además das créditos gratis en el registro, mira abuso de pruebas gratis: los mismos bots suelen querer las dos cosas.
Que falle en abierto
Un código que nunca llega deja a una persona real fuera de tu producto. Usa un timeout corto y envía el código ante cualquier error: unos SMS bombeados durante una caída cuestan menos que un registro que deja de funcionar. Más en por qué una comprobación de bots debe hacer fail-open.
Fuentes
Comprobadas el 28 de octubre de 2026.