Korzen

Blog

SMS pumping: como parar pedidos falsos de código por SMS

Bots preenchem o seu campo de telefone para enviar códigos de uso único a números que pagam ao atacante uma parte de cada SMS. Como funciona o SMS pumping, os sinais e onde pará-lo.

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.