Korzen

Blog

Fraude au SMS pumping : arrêter les fausses demandes d'OTP

Des bots remplissent votre champ de numéro de téléphone pour envoyer des codes à usage unique à des numéros qui reversent à l'attaquant une part de chaque SMS. Comment fonctionne le SMS pumping, ses signes et où l'arrêter.

Le SMS pumping transforme votre vérification par téléphone en revenu pour quelqu'un d'autre. Un bot saisit en masse des numéros de téléphone dans le formulaire qui envoie un code à usage unique, et ces numéros appartiennent à une plage contrôlée par un opérateur mobile. Chaque SMS que vous payez rapporte des frais à cet opérateur, et l'attaquant en touche une part. C'est ainsi que Twilio le décrit, en l'appelant aussi fraude au péage SMS (SMS toll fraud). Rien n'est volé à vos utilisateurs ; la perte, c'est votre facture SMS.

Comment fonctionne le SMS pumping

Tout formulaire public qui envoie un SMS est une cible : l'inscription qui vérifie un téléphone, la connexion qui envoie un code, un bouton « recevoir le lien par SMS », un chatbot qui répond par SMS. Twilio cite les codes à usage unique, les parcours d'inscription, les déclencheurs de notifications et les endpoints de chatbot. L'opérateur peut être complice, avec un accord de partage des revenus, ou être utilisé à son insu.

La facture peut être lourde. Le propriétaire de Twitter a déclaré en décembre 2022 que l'entreprise perdait environ 60 millions de dollars par an à cause du SMS pumping, via 390 opérateurs télécoms. C'est son affirmation, pas un chiffre audité, mais elle montre ce que vaut un grand formulaire d'inscription pour un attaquant.

Les signes

  • Des SMS vers des pays que vous ne servez pas. Des codes envoyés là où vous avez peu ou pas de clients.
  • Des codes que personne ne saisit. L'indice de Twilio pour les codes à usage unique : la vérification n'est jamais terminée.
  • Des numéros qui se suivent. Beaucoup de messages vers un bloc de numéros voisins ou semblables.
  • Des dépenses sans croissance. Des coûts SMS qui montent sans hausse des inscriptions qui convertissent.

Ce que votre fournisseur SMS peut faire

Votre fournisseur voit le message au moment où il part, alors commencez par là. Les conseils de Twilio : couper les SMS vers les pays que vous ne servez pas, limiter les messages vers une même plage de numéros, n'envoyer qu'aux numéros mobiles après une recherche du type de ligne, et activer sa protection anti-fraude, qui bloque un préfixe de destination suspect, comme un pays vers lequel votre compte n'a jamais envoyé de SMS. Cela a un coût : Twilio indique que ses faux positifs restent sous 1 % au niveau standard et sous 2 % au plus strict. Ces contrôles agissent à l'envoi, une fois que votre formulaire a déjà accepté la requête.

Arrêter la requête avant l'envoi du code

Le SMS ne coûte de l'argent qu'une fois envoyé, donc l'endroit le moins cher pour arrêter le pumping est la requête qui le demande. Twilio suggère lui-même de protéger chaque formulaire qui déclenche un SMS, et un délai entre les demandes de code venant du même numéro ou de la même adresse IP. Bot Protection juge cette requête sur votre serveur, avant que vous n'appeliez le fournisseur SMS :

  • Sur le POST qui envoie le code, exigez la preuve que votre page a vraiment été visitée : un script qui envoie des numéros de téléphone à votre API sans charger la page reçoit un défi, quelle que soit sa classe.
  • bot_high : n'envoyez rien. Avec la réponse leurre activée, votre serveur répond comme si le code était parti et n'en envoie aucun, si bien que le bot n'a aucune raison de changer de script.
  • bot : d'abord la page de défi, et le code seulement après.
  • unknown, human, human_high : envoyez le code.

Les deux couches s'additionnent : Bot Protection arrête le bot à votre formulaire, et la protection du fournisseur attrape ce qui atteint encore l'envoi.

Mesurer avant de bloquer

Commencez en mode surveillance. Personne n'est arrêté, et chaque réponse dit ce qu'aurait fait le mode blocage, ce qui vous permet de comparer les requêtes qu'il aurait refusées avec les codes jamais saisis. Quand les deux concordent, activez le mode blocage. Si vous offrez aussi des crédits gratuits à l'inscription, voyez l'abus d'essais gratuits : les mêmes bots veulent souvent les deux.

Rester fail-open

Un code qui n'arrive jamais bloque une vraie personne hors de votre produit. Utilisez un timeout court et envoyez le code à la moindre erreur : quelques SMS pompés pendant une panne coûtent moins cher qu'une inscription qui ne marche plus. Plus de détails dans pourquoi une vérification anti-bots doit être fail-open.

Sources

Vérifié le 28 octobre 2026.