O SMS pumping transforma a sua verificação por telefone na renda de outra pessoa. Um bot digita números de telefone no formulário que envia um código de uso único, em volume, e os números pertencem a uma faixa que uma operadora de telefonia controla. Cada SMS que você paga rende uma tarifa a essa operadora, e o atacante fica com uma parte dela. A Twilio descreve assim, e também o chama de fraude de tarifação de SMS (SMS toll fraud). Nada é roubado dos seus usuários; a perda é a sua conta de SMS.
Como funciona o SMS pumping
Qualquer formulário público que envia um SMS é um alvo: o cadastro que verifica um telefone, o login que envia um código, um botão "me mande o link por SMS", um chatbot que responde por SMS. A Twilio cita códigos de uso único, fluxos de cadastro, gatilhos de notificação e endpoints de chatbot. A operadora pode estar no esquema, com um acordo de divisão de receita, ou pode ser usada sem saber.
A conta pode ser grande. O dono do Twitter disse em dezembro de 2022 que a empresa perdia cerca de 60 milhões de dólares por ano com SMS pumping por meio de 390 operadoras de telecomunicações. É uma afirmação dele, não um número auditado, mas mostra quanto um formulário de cadastro grande vale para um atacante.
Os sinais
- SMS para países que você não atende. Códigos enviados para lugares onde você tem poucos ou nenhum cliente.
- Códigos que ninguém digita. O sinal da Twilio para códigos de uso único: a verificação nunca é concluída.
- Números em sequência. Muitas mensagens para um bloco de números vizinhos ou parecidos.
- Gasto sem crescimento. Custos de SMS que sobem sem que suba o número de cadastros que convertem.
O que o seu provedor de SMS pode fazer
O seu provedor vê a mensagem na saída, então comece por ele. O conselho da Twilio: desligar o SMS para os países que você não atende, limitar as mensagens para a mesma faixa de números, enviar só para celulares depois de consultar o tipo de linha, e ativar a sua proteção contra fraude, que bloqueia um prefixo de destino suspeito, como um país para o qual a sua conta nunca enviou SMS. Isso tem um custo: a Twilio afirma que os seus falsos positivos ficam abaixo de 1% no nível padrão e abaixo de 2% no mais rígido. Esses controles agem no envio, depois que o seu formulário já aceitou a requisição.
Pare a requisição antes de enviar o código
O SMS só custa dinheiro quando você o envia, então o lugar mais barato para parar o pumping é a requisição que o pede. A própria Twilio sugere proteger todo formulário que dispara um SMS, e um intervalo entre pedidos de código do mesmo número ou endereço IP. O Bot Protection julga essa requisição no seu servidor, antes de você chamar o provedor de SMS:
- No post que envia o código, peça a prova de que a sua página foi visitada de verdade: um script que envia números de telefone para a sua API sem carregar a página recebe um desafio, qualquer que seja a classe.
bot_high: não envie nada. Com a resposta isca (decoy) ativada, o seu servidor responde como se o código tivesse sido enviado e não envia nenhum, então o bot não tem motivo para mudar o script.bot: primeiro a página de desafio, e o código só depois dela.unknown,human,human_high: envie o código.
As duas camadas se somam: o Bot Protection para o bot no seu formulário, e a proteção do provedor pega o que ainda chega ao envio.
Meça antes de bloquear
Comece no modo monitor. Ninguém é parado, e cada resposta diz o que o modo bloqueio teria feito, então você pode comparar as requisições que ele teria recusado com os códigos que nunca foram digitados. Quando os dois baterem, ative o modo bloqueio. Se você também dá créditos grátis no cadastro, veja abuso de teste grátis: os mesmos bots muitas vezes querem os dois.
Mantenha o fail-open
Um código que nunca chega deixa uma pessoa real fora do seu produto. Use um timeout curto e envie o código em qualquer erro: alguns SMS bombeados durante uma queda custam menos do que um cadastro que para de funcionar. Mais em por que uma verificação de bots precisa fazer fail-open.
Fontes
Verificadas em 28 de outubro de 2026.