Spoofing Telefônico para Devs: como detectar e bloquear em 2026

Spoofing Telefônico para Devs: como detectar e bloquear em 2026

Recebi uma ligação semana passada de um número desconhecido perguntando por que eu tinha ligado para ele. Não tinha ligado. Foi nesse momento que percebi que meu número estava sendo falsificado por terceiros. Spoofing telefônico não é teoria — é um problema real que afeta inclusive quem trabalha com tech. Segundo o Sapo.pt, essa técnica permite que criminosos apresentem um número que não lhes pertence ao fazer uma chamada. Neste artigo, vou explicar como funciona por dentro, como detectar e o que fazer como desenvolvedor.

O que é spoofing telefônico (e por que devs deveriam se importar)

Spoofing de caller ID é a manipulação do identificador de chamadas para exibir um número diferente do real. Na prática, o criminoso faz a chamada, mas a vítima vê no visor o seu número — como se fosse você quem tivesse ligado.

Para um programador, isso tem implicações sérias. Imagine um cenário: alguém usa seu número para se passar pelo suporte técnico de um cliente seu. A vítima liga de volta, cai em você, e o estrago de reputação já está feito. Ou pior: usam seu número para disparar SMS de phishing que parecem vir de uma fonte confiável.

O ponto central que o Sapo.pt destaca — e que pouca gente entende — é que spoofing não significa que seu celular foi hackeado. O número é falsificado na origem, geralmente via VoIP. Sua conta, seus dados e seu aparelho continuam intactos.

Sinais claros de que seu número foi clonado em chamadas

Na minha experiência monitorando incidentes, três sinais aparecem com frequência:

  • Retorno de chamadas de desconhecidos: pessoas perguntando por que você ligou, quando você não fez nenhuma ligação.
  • Mensagens no WhatsApp ou SMS de estranhos dizendo que receberam uma chamada sua.
  • Chamadas de operadores ou bancos questionando contatos que você nunca fez.

Se você identificou pelo menos dois desses sinais nas últimas semanas, seu número provavelmente está em uma campanha ativa de spoofing.

Como o spoofing funciona por baixo dos panos

Para entender a defesa, precisa entender o ataque. O protocolo SIP (Session Initiation Protocol), usado em VoIP, permite definir o campo From: com qualquer valor. Antes da adoção massiva do STIR/SHAKEN nos EUA (e lentamente na Europa), não havia validação criptográfica da identidade do chamador.

Um criminoso monta um Asterisk ou FreeSWITCH, configura um tronco SIP e dispara chamadas com o cabeçalho P-Asserted-Identity contendo seu número. A central da operadora da vítima aceita o número porque não há mecanismo padronizado de verificação em redes legadas.

No Brasil, a Anatel tem trabalhado em regulamentações equivalentes ao STIR/SHAKEN, mas a implementação ainda é fragmentada. Enquanto isso, qualquer pessoa com conhecimento técnico moderado pode executar spoofing em escala.

Na prática: script para monitorar padrões suspeitos nas suas chamadas

Quando suspeitei que meu número estava sendo usado, criei um script em Python para cruzar logs de chamadas e identificar anomalias. A lógica é simples: se você recebe muitas chamadas de retorno em um curto espaço de tempo, vindas de prefixos diferentes, é provável que esteja sofrendo spoofing.

import csv
from collections import Counter
from datetime import datetime, timedelta

def analisar_logs(arquivo_csv):
    """
    Analisa um CSV de chamadas recebidas (colunas: timestamp, numero, duracao)
    e detecta padrões compatíveis com spoofing do seu número.
    """
    chamadas = []
    with open(arquivo_csv, newline='', encoding='utf-8') as f:
        leitor = csv.DictReader(f)
        for linha in leitor:
            chamadas.append({
                'timestamp': datetime.fromisoformat(linha['timestamp']),
                'numero': linha['numero'],
                'duracao': int(linha['duracao'])
            })

    # Janela de análise: últimas 24h
    janela = datetime.now() - timedelta(hours=24)
    recentes = [c for c in chamadas if c['timestamp'] >= janela]

    # Detecta rajada de chamadas curtas (possível campanha de spoofing)
    curtas = [c for c in recentes if c['duracao'] <= 5]
    if len(curtas) >= 10:
        print(f"[ALERTA] {len(curtas)} chamadas curtas em 24h. Possível spoofing ativo.")

    # Detecta prefixos recorrentes (possível vítima em massa)
    prefixos = Counter(c['numero'][:4] for c in recentes)
    top = prefixos.most_common(3)
    for prefixo, qtd in top:
        if qtd >= 5:
            print(f"[ALERTA] Prefixo {prefixo}xx aparece {qtd}x. Risco de campanha em massa.")

    return {
        'total_24h': len(recentes),
        'rajadas_curtas': len(curtas),
        'prefixos_suspeitos': top
    }

if __name__ == '__main__':
    resultado = analisar_logs('chamadas.csv')
    print(resultado)

Para rodar isso, você precisa exportar os registros de chamadas do seu celular em CSV. No Android, apps como Call History Backup geram esse formato direto. O script cruza duração, volume e prefixos para acusar padrões que manualmente você não veria.

Integração com API de validação (Twilio Lookup)

Se você quer ir além, dá para consultar uma API de validação de números em tempo real. A Twilio, por exemplo, oferece o endpoint Lookup que retorna dados sobre o tipo de linha (móvel/fixo/VoIP) e se o número foi reportado como suspeito.

// Node.js: validar número suspeito via Twilio Lookup v2
const twilio = require('twilio');
const client = twilio(process.env.TWILIO_SID, process.env.TWILIO_TOKEN);

async function validarNumero(numero) {
  const lookup = await client.lookups.v2
    .phoneNumbers(numero)
    .fetch({ countryCode: 'BR' });

  return {
    numero: lookup.phoneNumber,
    valido: lookup.valid,
    tipo: lookup.lineTypeIntelligence?.type, // 'mobile', 'landline', 'voip'
    risco: lookup.fraudRisk?.score, // 0-100
  };
}

validarNumero('+5511999999999').then(console.log);
// Exemplo de saída: { valido: true, tipo: 'voip', risco: 87 }

Números VoIP com score de risco alto são o tipo de origem mais comum em campanhas de spoofing. Esse tipo de verificação permite bloquear ou sinalizar chamadas antes mesmo de atender.

Erros comuns que devs cometem (e que facilitam o ataque)

No dia a dia, vejo três deslizes frequentes:

  1. Expor número pessoal em repositórios públicos. Aquele commit com const meuNumero = "+55..." vira alvo imediato de scrapers.
  2. Não segmentar números em produção. Usar o mesmo número para autenticação de cliente, suporte e WhatsApp pessoal amplia a superfície de ataque.
  3. Confiar apenas em SMS OTP para 2FA. Com spoofing + engenharia social, o atacante convence a vítima a “confirmar” um código que ela mesma recebeu.

Para sistemas profissionais, troque SMS por TOTP (Google Authenticator, Authy) ou chaves FIDO2. SMS é fallback, nunca primeira opção.

O que fazer ao confirmar o spoofing

Se o script acusar ou se os sinais forem claros:

  • Registre B.O. eletrônico com prints das chamadas e mensagens recebidas. O número de boletim facilita o trabalho da operadora.
  • Abra reclamação na Anatel pelo portal da agência ou app Anatel Consumidor. Operadoras têm obrigação de investigar origem fraudulenta.
  • Avise seus contatos por um post em rede social ou mensagem em massa no WhatsApp. Quanto antes avisar, menos gente cai.
  • Considere trocar o número se o problema persistir por mais de 30 dias. É a solução nuclear, mas funciona.

FAQ — Perguntas que devs costumam fazer

Spoofing significa que meu celular foi invadido?

Não. O número é falsificado na origem da chamada, geralmente em um tronco VoIP mal configurado. Seus dados e aparelho continuam intactos. O estrago é reputacional e operacional, não técnico.

É possível rastrear quem está usando meu número?

Diretamente, não — porque a chamada não passa pela sua linha. Indiretamente, com logs da operadora e cooperação judicial, é possível identificar a origem em casos de maior gravidade.

STIR/SHAKEN funciona no Brasil?

A Anatel publicou regulamentação equivalente em 2024, mas a implementação ainda é gradual. Operadoras grandes já validam chamadas entre si, mas chamadas internacionais e de pequenos VoIPs ainda burlam o sistema.

Um app de identificação de chamadas (Truecaller, etc.) resolve?

Ajuda na ponta do recebimento — você vê que é spam antes de atender. Mas não impede o spoofing em si, e ainda tem custo de privacidade: você entrega seus contatos para o app.

Posso processar alguém por usar meu número em chamadas falsas?

Sim. O uso indevido de identificação configura crime contra a honra e pode configurar estelionato, dependendo do dano. Guarde evidências e procure um advogado criminalista.

Considerações finais

Spoofing é uma falha de protocolo, não de usuário. Enquanto a infraestrutura de telecom não universalizar validação criptográfica, todo número está potencialmente exposto. O melhor que você pode fazer é: detectar cedo, documentar, reportar e blindar seus sistemas de autenticação.

Se você trabalha com SaaS, fintech ou qualquer sistema que use SMS como fator de autenticação, considere este artigo um alerta operacional. Migrar para TOTP ou WebAuthn não é luxo — é higiene de segurança básica em 2026.


💻 Me siga no GitHub

Gostou? Me segue no GitHub e deixa um comentário se tiver dúvida ou quiser aprofundar algum ponto.

Y

Yuri Sousa

Front-End Developer / Designer

Desenvolvedor apaixonado por criar experiências digitais acessíveis e visualmente perfeitas. Escrevo sobre desenvolvimento web, design e tecnologia.