El bombing de SMS y OTP son ataques en los que un bot activa repetidamente un formulario OTP o de registro en su sitio web para generar SMS de forma masiva. Los motivos típicos son el acoso a terceros ("SMS flood" sobre un número objetivo), el agotamiento de su saldo y, sobre todo, el fraude IRSF (International Revenue Share Fraud), en el que los atacantes envían SMS a números premium internacionales de alto coste de los que ellos mismos obtienen una parte.
Auf einen Blick
- El desencadenante casi siempre está en el formulario OTP: captcha, límite de frecuencia y tiempo de espera son obligatorios.
- En seven, la restricción por países es la principal forma de limitar los daños.
- Obligar la firma HMAC de las solicitudes junto con una lista blanca de IP inutiliza una API Key filtrada.
- Una subcuenta solo sirve como tope si la recarga automática está desactivada.
- La 2FA, API Keys separadas por servicio y el aviso de saldo bajo forman parte del equipamiento básico.
Ninguna función aislada protege contra esta clase de ataques. Solo es eficaz una protección escalonada: primero en su aplicación y después en su cuenta de seven.
Dónde está el verdadero agujero
En la mayoría de los casos de bombing, el formulario OTP está desprotegido: sin captcha, sin límite de frecuencia, sin tiempo de espera. El atacante llama al endpoint de envío cientos o miles de veces por minuto y cada llamada genera un SMS real. seven puede limitar los daños, pero el desencadenante debe cerrarlo usted en su aplicación.
Medidas de protección en su aplicación
Estos puntos corresponden a su frontend y backend, no a seven:
Captcha antes del botón de envío. reCAPTCHA, hCaptcha, Cloudflare Turnstile o una detección de bots comparable. Es la medida individual más eficaz.
Límite de frecuencia por IP, por sesión y por número de destinatario. Ejemplo: un máximo de 3 OTP cada 10 minutos por número de móvil y un máximo de 10 OTP por hora por IP.
Tiempo de espera entre clics de reenvío. Primer reenvío tras 60 segundos y después backoff exponencial (2, 4, 8 minutos).
Validación previa de números. Compruebe el formato y el operador mediante Lookup antes de activar el SMS. Así filtra números no válidos y destinos premium exóticos antes de que se generen costes.
Campos honeypot y análisis de comportamiento. Registre y bloquee los campos de formulario ocultos rellenados, los envíos inusualmente rápidos y los user agents atípicos.
Medidas de protección en su cuenta de seven
Estas medidas limitan los daños en caso de que la capa de aplicación falle a pesar de todo.
Activar las restricciones por países
Con diferencia, la palanca más importante contra el IRSF. Si su servicio OTP solo atiende a clientes de unos pocos países, bloquee todo lo demás. Así los ataques a números premium no llegan a nada, porque seven ni siquiera entrega el SMS.
Configuración en Ajustes > Mensajes > Restricciones por países. Para más detalles, consulte Restricciones geográficas.
Tipp
Establezca "Resto" en no permitido e introduzca como permitidos únicamente los países de destino que realmente necesite. Se trata de una lista blanca que bloquea todos los destinos premium exóticos.
Activar y obligar la firma de solicitudes
seven admite la firma de solicitudes HMAC-SHA256 para la API REST. Cada solicitud a la API puede firmarse con una clave de firma independiente, que se asigna por separado de la API Key. De este modo, una API Key robada no sirve de nada por sí sola, siempre que active la obligación de firma.
Funcionamiento:
Tres cabeceras acompañan a la solicitud:
X-Signature,X-Timestamp,X-Nonce.Con HMAC-SHA256 se firma una cadena compuesta por la marca de tiempo, el nonce, el método HTTP, la URL completa y el hash MD5 del cuerpo (separados por saltos de línea).
La marca de tiempo puede tener como máximo 30 segundos de antigüedad (protección contra repetición). El nonce es único por solicitud.
Configure la clave de firma en Developer > Settings. En la misma sección se activa la obligación de firma, para que se rechacen las solicitudes sin firma o con una firma no válida.
Documentación completa con ejemplos en Bash y PHP: docs.seven.io/en/rest-api/signing.
Wichtig
Guarde la clave de firma separada de la API Key, idealmente en un gestor de secretos (p. ej. AWS Secrets Manager, HashiCorp Vault). Si ambas están una junto a la otra en el mismo .env, el efecto protector desaparece.
Lista blanca de IP de servidor para la API
Además de la firma de solicitudes, restrinja el acceso a la API a IP de origen conocidas: solo se aceptan solicitudes desde las IP de sus servidores de aplicación; todas las demás se rechazan con el error 903. Esto también detiene los ataques en los que se filtran a la vez la clave de firma y la API Key.
Configuración en Developer > Settings > REST API. Para más detalles, consulte Lista blanca para acceder a la API.
Una API Key propia por servicio
No utilice la misma clave para envíos de marketing, SMS transaccionales y OTP. Una clave por servicio significa que una única clave filtrada puede desactivarse de inmediato sin interrumpir otras vías de envío. Consulte ¿Dónde encuentro mi API Key? y Desactivación de API Keys no utilizadas.
Subcuenta solo como tope estricto, no con la recarga automática activa
Una subcuenta para el servicio OTP separa el saldo y los informes. Sin embargo, solo funciona como tope de daños si la recarga automática está desactivada y usted la alimenta manualmente. De lo contrario, con un umbral bajo simplemente se recarga con más frecuencia y el daño total es el mismo o mayor.
Achtung
La recarga automática en una subcuenta OTP anula el efecto de tope. Si desea un límite estricto, desactive la recarga automática y recargue manualmente.
Configuración recomendada:
una subcuenta propia "OTP" con su propia API Key
recarga automática desactivada
recarga manual con un presupuesto mensual fijo (p. ej. 50 EUR)
cuando la subcuenta se queda vacía, el envío se detiene automáticamente
Detalles sobre la configuración: Subcuentas.
Aviso de saldo bajo a varios destinatarios
Una oleada de envíos inusual provoca inevitablemente una rápida caída del saldo. Defina un umbral y al menos dos direcciones de destinatarios (técnica y facturación), para que la alerta llegue también cuando una persona esté de vacaciones. Consulte Aviso de saldo bajo.
Seguridad de la cuenta
Obligue la 2FA para todos los miembros de la cuenta, de modo que una contraseña robada no sea suficiente. Consulte Autenticación de dos factores (2FA) y Obligar la autenticación de dos factores (2FA).
Lista blanca de IP para el inicio de sesión además de la lista blanca de la API, si trabaja desde IP fijas de oficina. Consulte Lista blanca de IP para inicio de sesión.
Desactive las API Keys no utilizadas y revíselas con regularidad.
Si ya hay un ataque en curso
Rote o desactive de inmediato la API Key en los ajustes de desarrollador. Así se detiene al instante cualquier envío adicional.
Endurezca las restricciones por países y bloquee todos los países que no sean de destino.
Contacte con el soporte en support@seven.io indicando el ID de su cuenta y el intervalo de tiempo. Le ayudamos a analizar los patrones de envío y a contener el ataque. Tenga en cuenta: los costes de los SMS activados por una aplicación desprotegida del cliente no se reembolsan por norma general.
Proteja el lado de la aplicación antes de volver a activar el envío. Integre un captcha, active el límite de frecuencia y analice los registros.
Nuestro soporte estará encantado de ayudarle en incidentes concretos.