Pular para o conteúdo
Prevenção de fraude

Como impedir cadastros falsos: detecção de contas falsas por tipo de IP

Impeça cadastros falsos por tipo de IP: sete consultas reais de 2 de novembro de 2026, a ação de cadastro que cada uma recebe e limites de velocidade por /24 e /64 para o seu próprio código.

PorEquipe GeoIPHubPublicadoTempo de leitura16 min de leitura
Pequenos círculos de vidro azul e fosco passam por um portão de vidro vertical e se dividem em três faixas: uma para em uma barreira azul sólida, outra passa por um anel e a terceira segue livre, representando cadastros recusados, verificados ou permitidos por tipo de IP

A Okta Threat Intelligence descreveu um serviço de vídeo com IA cujo teste gratuito atraiu uma enxurrada de tentativas de cadastro falso. Nos logs de um cliente, "Entre 1º de junho de 2026 e 1º de julho de 2026, os logs mostram mais de 105.000 tentativas de cadastro por força bruta a partir de 251 IPs distintos, provavelmente ligados a bots." Os registros "estavam ligados a provedores de proxy e VPNs". Pelas contas do GeoIPHub sobre os números da Okta, isso dá cerca de 418 tentativas por endereço ao longo do mês, ou cerca de 14 por dia, então um limite de alguns cadastros por IP por hora pode nunca ser acionado.

A parte difícil é que cadastros falsos e clientes reais compartilham as mesmas redes. Pessoas reais também usam VPNs e desktops em nuvem, e os endereços que pessoas reais compartilham, como iCloud Private Relay, operadoras móveis e NAT de nível de operadora, parecem movimentados por natureza. Uma regra que só bloqueia vai deixar o pool entrar ou trancar clientes do lado de fora.

A seguir: sete endereços de onde um cadastro pode vir, o que a API de consulta de IP do GeoIPHub retornou para cada um em 2 de novembro de 2026 e o que faríamos no formulário, por que endereços compartilhados nunca devem ser recusados apenas pela pontuação, limites de velocidade com código testado e o que o IP não consegue ver.

Diagrama de um POST de formulário de cadastro enviado a uma consulta do GeoIPHub e classificado em quatro grupos: recusar (saída Tor com histórico de spam, rastreador verificado, scanner da internet), verificar ou restringir (servidor VPN com 100 sem motivos de abuso, recusado por padrão e verificado se os seus usuários usam VPN; endereço da rede Mullvad com 46), permitir com limites mais folgados (iCloud Private Relay, NAT de nível de operadora, operadora móvel) e permitir e contar (servidor em nuvem simples com 10), acima de uma faixa dizendo que o seu código conta cadastros por IP, /24 de IPv4, /64 de IPv6 e ASN de hospedagem
O tipo de endereço decide a ação; o contador pega o pool.

O que a detecção de contas falsas verifica no cadastro, e o único sinal que você sempre tem

A detecção de contas falsas pontua cada novo cadastro em rede, velocidade, e-mail, telefone, dispositivo e comportamento. No momento em que o formulário é enviado, o IP é o único desses sinais que o seu servidor sempre tem sem pedir nada ao usuário, e é por isso que uma pontuação de fraude de IP costuma ser a primeira verificação.

A OWASP chama o ataque de OAT-019 Account Creation: "Criação de contas em massa, e às vezes preenchimento de perfis, usando os processos de cadastro de contas da aplicação." A criação de contas falsas raramente é o objetivo; é a preparação para farming de promoções e indicações, para um único operador por trás de muitas contas burlando um banimento ou para montar campanhas de credential stuffing.

A fraude em cadastros é comum o bastante para entrar no planejamento. O Customer Identity Trends Report 2025 da Okta, baseado na sua plataforma Auth0, diz: "Em 2024, em média 46% de todas as tentativas de registro na plataforma Auth0 foram identificadas como ataques de cadastro." A Stripe, ao anunciar o Sessions 2026 em 29 de abril de 2026, apresentou o número da própria rede assim: "Nos serviços de IA que rodam na Stripe, um em cada seis cadastros tentados é feito por um agente mal-intencionado."

Veja do que cada camada precisa e quais delas uma consulta de IP consegue responder:

CamadaExemplosUma consulta de IP consegue ver?
RedeSaída Tor, servidor VPN, servidor em nuvem, relay, operadora móvelSim
VelocidadeCadastros por endereço, prefixo ou rede em uma hora ou um diaApenas as chaves; a contagem é feita pelo seu código
E-mailDomínios descartáveis, variantes com sinal de mais e com pontosNão
TelefoneNúmeros VoIP, números recicladosNão
DispositivoCaracterísticas de navegador e hardware que se repetem entre contasNão; veja fingerprinting de dispositivos
ComportamentoVelocidade de preenchimento do formulário, copiar e colar, movimento do mouseNão

A linha de dispositivo é outra ferramenta; nossa comparação entre fingerprinting de dispositivos e dados de IP explica como os dois se combinam.

Sete IPs de cadastro, sete decisões: o que o GeoIPHub retornou em 2 de novembro de 2026

O GeoIPHub consultou sete endereços de onde um cadastro pode vir entre 04:51 e 04:52 UTC de 2 de novembro de 2026. Aqui estão a pontuação, os motivos e o que faríamos no formulário, usando a linha de cadastro dos limites iniciais de pontuação de fraude do GeoIPHub. As duas últimas linhas são regras da nossa configuração de pontuação, não consultas.

EndereçoO que éPontuação, açãodetection_methodsNo cadastro
185.220.101.1Saída Tor, também em zen.spamhaus.org100, blocktor_exit, datacenter_blocklisted, no_ptr_datacenter, known_spammerRecusar
185.213.155.73Servidor VPN; vpn_provider indica Mullvad100, blockknown_vpn_server, wireguard_open, datacenter_with_vpn_proxy, no_ptr_datacenterRecusar por padrão; verificar em vez disso se os seus usuários usam VPN e nenhum motivo de abuso foi acionado
45.83.220.7Endereço da rede VPN da Mullvad, vpn_provider "Mullvad (31173 Services)"46, reviewknown_vpn_server, datacenter_ipCriar, restringir, marcar
45.33.32.156scanme.nmap.org, um servidor em nuvem da Linode10, allowdatacenter_ipPermitir; contar por rede de hospedagem
104.28.46.99Saída do iCloud Private Relay9, allowrelay_ipPermitir; limites de velocidade mais folgados
66.249.66.1Googlebot verificado (crawler.operator Google)0, allowdatacenter_ip, verified_crawlerSem conta: um rastreador não se cadastra
162.142.125.10Scanner da internet Censys (is_scanner verdadeiro)0, allowNenhum motivo retornadoSem conta
Qualquer endereço de CGNATRegra da nossa configuração de pontuação, não uma consultaTeto de 50O teto só é removido com evidência própria do endereço de VPN, proxy, Tor, protocolo, botnet ou abusoNunca recusar pela pontuação
Qualquer endereço de operadora móvelRegra da nossa configuração de pontuação, não uma consultaReduzida em 12mobile_carrier, quando não há evidência de ameaçaNunca recusar pela pontuação

Os dois 100 parecem idênticos, mas não são. A saída Tor carrega histórico de spam; o servidor VPN carrega apenas motivos de anonimato, sem nenhuma evidência de abuso. Essa diferença decide se um cadastro via VPN é recusado ou verificado.

O próprio recommended_action da API só bloqueia acima de 75. Os limites iniciais de cadastro do GeoIPHub bloqueiam a partir de 71, e nenhuma linha em 2 de novembro de 2026 ficou entre as duas linhas.

A banda larga doméstica não tem linha, porque não publicamos endereços residenciais. A pontuação do GeoIPHub só dá o desconto residencial a uma linha doméstica quando o endereço tem um nome de DNS reverso com padrão residencial, então uma linha doméstica sem ele não recebe desconto residencial, e qualquer motivo de ameaça conta integralmente.

Leia os motivos, não o número: um cadastro rastreado de ponta a ponta

A pontuação diz quão arriscado é um endereço; scoring.detection_methods diz por quê, e o porquê decide entre restringir, verificar e recusar. Aqui está a resposta reduzida para 45.83.220.7, consultado às 04:51:58 UTC de 2 de novembro de 2026:

GeoIPHub API
{ "ip": "45.83.220.7", "asn": { "asn": 39351, "org": "ESAB-AS - 31173 Services AB", "connection_type": "datacenter" }, "detection": { "is_vpn": true, "is_hosting": true, "is_relay": false, "is_mobile": false, "vpn_provider": "Mullvad (31173 Services)" }, "threat": { "is_cgnat": false }, "scoring": { "fraud_score": 46, "recommended_action": "review", "detection_methods": ["known_vpn_server", "datacenter_ip"] } }

Dois motivos foram acionados. known_vpn_server soma 36 (40 pontos com confiança de 0,9) e datacenter_ip soma 10 (20 com 0,5), então a pontuação é 46. Isso cai na faixa de 26 a 50 dos limites iniciais de cadastro do GeoIPHub: criar e marcar. Criaríamos a conta em estado restrito, sem créditos de teste nem bônus até o e-mail ser confirmado. Como detection.is_hosting é verdadeiro, o cadastro também conta contra o AS39351 na verificação de velocidade abaixo. No primeiro evento de valor, como o início de um teste ou a concessão de créditos, consulte o IP novamente.

O servidor da Mullvad em 185.213.155.73 obteve 100 block, e todos os seus quatro motivos são sobre anonimato, não abuso. O padrão no cadastro é recusá-lo. Produtos cujos usuários reais usam VPN podem escrever regras com base nos motivos e enviar um 100 como este, com motivos de anonimato e nenhum motivo de abuso, para verificação por e-mail ou telefone. Uma VPN sozinha é uma escolha de privacidade, e as pessoas que ela protege costumam ser as que são sinalizadas por engano. Uma saída Tor com histórico de spam continua recusada em qualquer caso.

Uma pontuação 0 não é aprovação: rastreadores e scanners no seu formulário de cadastro

Os dois resultados mais amigáveis nas consultas do GeoIPHub de 2 de novembro de 2026, o Googlebot verificado em 66.249.66.1 e o scanner Censys em 162.142.125.10, obtiveram 0 allow, e são justamente os dois que nunca deveriam criar uma conta. Isso nos surpreendeu mais do que qualquer 100.

O motivo verified_crawler do GeoIPHub subtrai 28,5, então um rastreador verificado fica no fundo da escala. Isso está certo para rastreamento e errado para um POST de formulário. Se threat.crawler.verified for verdadeiro em uma requisição de cadastro, não crie a conta. Leia crawler.verified e crawler.operator para isso, nunca crawler.name.

threat.is_scanner não entra na pontuação: o endereço da Censys não retornou nenhum motivo. Verifique o indicador diretamente e recuse o cadastro quando ele for verdadeiro.

Nunca recuse um endereço compartilhado apenas pela pontuação: relays, CGNAT e redes móveis

Uma saída do iCloud Private Relay, um endereço de NAT de nível de operadora ou um gateway móvel pode atender muitas pessoas reais. A pontuação do GeoIPHub limita endereços de relay a 60 e endereços de CGNAT a 50, a menos que o endereço tenha evidência própria de ameaça, e dá desconto a endereços móveis limpos, enquanto um endereço móvel com evidência de ameaça recebe uma penalidade. Suas regras devem manter esses endereços fora da faixa de bloqueio, a menos que tenham evidência própria.

Na pontuação do GeoIPHub, relay_ip soma 8,5 e não há desconto para relay, então a nossa amostra de relay obteve 9. O teto de CGNAT só é removido com evidência própria do endereço de VPN, proxy, Tor, protocolo, botnet ou abuso. Endereços de operadoras móveis recebem mobile_carrier, que reduz a pontuação em 12 quando não há evidência de ameaça.

Nada disso significa "confiar". Significa que o IP sozinho não consegue separar o único agente mal-intencionado dos muitos clientes por trás do mesmo endereço. Então desafie esses cadastros, nunca os recuse pela pontuação e dê a eles dez vezes os limites de velocidade habituais. Para o Private Relay especificamente, a recomendação é deixá-los passar e pontuar a sessão com base no que a conta faz em seguida.

Conte cadastros por IP, /24, /64 de IPv6 e rede de hospedagem no seu próprio código

A API do GeoIPHub pontua um endereço; ela não conta quantas contas aquele endereço, seu /24, seu /64 ou sua rede criaram nas últimas 24 horas. Esse contador fica no seu código, e a consulta diz quais chaves usar: asn.asn, detection.is_hosting, detection.is_relay, detection.is_mobile, asn.connection_type e threat.is_cgnat.

No caso do serviço de vídeo com IA da Okta, as tentativas de cadastro falso tiveram média de cerca de 14 por endereço por dia, distribuídas por 251 endereços. Um contador apenas por IP pode nunca ser acionado nesse cenário. Os contadores por prefixo e por rede existem exatamente para esse caso.

Estes são pontos de partida que escolhemos, não referências do setor; ajuste-os com base nos seus próprios cadastros.

ChaveJanelaLimite inicialObservações
Endereço IPv4 exato1 hora3
/24 de IPv41 hora10Pega um pool que rotaciona dentro de um bloco
/64 de IPv61 hora3Trate um /64 como um único endereço IPv4; amplie para /56 ou /48 quando novos /64 continuarem chegando de uma mesma alocação
ASN, apenas hospedagem (detection.is_hosting verdadeiro)24 horas20Clientes reais raramente se cadastram a partir de um servidor em nuvem
Endereços compartilhados (relay, CGNAT ou móvel)Mesmas janelasDez vezes os limites de IP e de prefixoNunca bloquear apenas pela velocidade

Passar do limite significa verificação adicional (por e-mail ou telefone, ou um CAPTCHA) ou criação restrita, não recusa. Em IPv6, conte o prefixo, nunca o endereço completo, ou um único agente vira milhares de cadastros "diferentes". Residências costumam receber um /56 ou /48, e é por isso que a tabela amplia; nosso guia sobre limitar a taxa de IPv6 por prefixo cobre os tamanhos de alocação.

O código abaixo roda no Node 18 ou posterior, sem dependências. Ele espera o endereço do cliente como o Node o informa, incluindo formas IPv4 mapeadas como ::ffff:192.0.2.1, depois que você o extrai da sua cadeia de proxies confiáveis. Ele usa janelas fixas, uma simplificação de uma janela deslizante.

GeoIPHub API
// Signup velocity keys: exact IP, IPv4 /24, IPv6 /64, and ASN for hosting. // Starting limits, not benchmarks. Tune them on your own signups. import { isIPv4, isIPv6 } from "node:net"; const HOUR = 3600e3, DAY = 24 * HOUR; const LIMITS = { ip: { window: HOUR, max: 3 }, // one IPv4 address, or one IPv6 /64 v4_24: { window: HOUR, max: 10 }, asn: { window: DAY, max: 20 }, // hosting networks only }; const SHARED_FACTOR = 10; // relay, CGNAT and mobile egress function expandIPv6(addr) { const [head, tail = ""] = addr.toLowerCase().split("::"); const h = head ? head.split(":") : []; const t = tail ? tail.split(":") : []; const fill = addr.includes("::") ? 8 - h.length - t.length : 0; return [...h, ...Array(fill).fill("0"), ...t].map((g) => g.padStart(4, "0")); } export function velocityKeys(ip, lookup) { const keys = []; const m = ip.match(/^(?:::|(?:0{1,4}:){5})ffff:(\d+\.\d+\.\d+\.\d+)$/i); const v4 = m && isIPv4(m[1]) ? m[1] : ip; if (isIPv4(v4)) { keys.push(["ip", v4], ["v4_24", v4.split(".").slice(0, 3).join(".") + ".0/24"]); } else if (isIPv6(ip)) { keys.push(["ip", expandIPv6(ip).slice(0, 4).join(":") + "::/64"]); } const asn = lookup?.asn; if (lookup?.detection?.is_hosting && asn?.asn) keys.push(["asn", `AS${asn.asn}`]); return keys; } const counters = new Map(); // in-memory and unbounded; for a demo only; use Redis INCR + EXPIRE in production export function checkVelocity(ip, lookup, now = Date.now()) { const shared = Boolean( lookup?.detection?.is_relay || lookup?.threat?.is_cgnat || lookup?.detection?.is_mobile || lookup?.asn?.connection_type === "mobile"); const hits = []; for (const [level, value] of velocityKeys(ip, lookup)) { const { window, max } = LIMITS[level]; const limit = shared && level !== "asn" ? max * SHARED_FACTOR : max; const key = `${level}:${value}:${Math.floor(now / window)}`; const count = (counters.get(key) ?? 0) + 1; counters.set(key, count); if (count > limit) hits.push({ level, value, count, limit }); } return { overLimit: hits.length > 0, hits }; // over the limit: step up, don't block }

Rodamos 16 testes unitários contra exatamente este código em 2 de novembro de 2026, no Node 24.20.0, usando faixas de endereços de documentação e privadas, além do endereço do scanme.nmap.org da tabela, sem consultas. Todos os 16 passaram: formas IPv4 mapeadas como ::ffff:45.33.32.156 foram tratadas como IPv4, a rotação dentro de um /64 foi acionada no 4º cadastro, 11 endereços em um mesmo /24 acionaram apenas a chave /24, e 30 cadastros de uma mesma saída de relay passaram enquanto o 31º foi sinalizado. Uma consulta que falha (null) ainda produz as chaves de IP e de prefixo, então o contador continua funcionando quando a API não responde.

Onde a camada de IP fica cega

Uma consulta de IP não consegue ver uma conta falsa criada a partir de uma conexão doméstica alugada ou de um celular real, e nunca vê o e-mail, o dispositivo nem como o formulário foi preenchido.

Os proxies residenciais são a lacuna mais clara. O GeoIPHub sinaliza proxies que observamos em linhas residenciais e móveis, incluindo endereços que uma lista de terceiros relata como relays, mas não temos detecção própria de proxies residenciais, e uma linha doméstica limpa pode passar. Fazendas de cliques e fazendas de dispositivos rodando em chips SIM reais parecem clientes móveis, e a nossa pontuação trata clientes móveis com suavidade de propósito.

O GeoIPHub pontua o IP; ele não verifica endereços de e-mail nem números de telefone. Combine a verificação de IP com suas próprias verificações de e-mail (domínios descartáveis, normalização de sinal de mais e de pontos), verificação de telefone, sinais de dispositivo e agrupamento de contas que compartilham chaves depois do cadastro.

O estado restrito é o que torna a faixa intermediária barata de operar. Crie a conta, retenha os créditos e libere-os depois da verificação ou da primeira ação real. Uma conta falsa que nunca é verificada custa a você uma linha no banco de dados, não um período de teste.

Como impedir cadastros falsos antes de a conta existir

A verificação inteira é uma consulta e uma contagem de velocidade entre "enviar" e "criar", nesta ordem:

  1. Obtenha o IP do cliente a partir da sua cadeia de proxies confiáveis, não de um cabeçalho X-Forwarded-For bruto, que o cliente pode definir como quiser.
  2. Consulte o IP.
  3. Recuse saídas Tor, rastreadores verificados e scanners. Recuse por padrão um servidor VPN com 100 ou envie-o para verificação se os seus usuários usam VPN e nenhum motivo de abuso foi acionado. Nunca recuse endereços de relay, CGNAT ou móveis pela pontuação. Aplique os limites iniciais de cadastro do GeoIPHub a todo o resto.
  4. Rode a verificação de velocidade e exija verificação adicional quando houver um acerto.
  5. Se a consulta falhar, recorra à verificação de velocidade e à confirmação de e-mail; não recuse.
  6. Armazene a pontuação, os motivos e o horário da consulta com a conta e consulte o IP novamente no primeiro evento de valor (início do teste, concessão de créditos, primeiro pagamento).

Nossa integração testada em Node e Python mostra as etapas 2 e 3 como código funcional. O plano gratuito do GeoIPHub cobre 1.500 consultas por dia com todos os campos incluídos.

Cole os últimos dez IPs do seu log de cadastros no verificador de pontuação de fraude de IP e distribua-os nas linhas da tabela. A pontuação diz o que cada endereço é; o contador diz quantas contas ele criou.

Perguntas frequentes

Como impedir cadastros falsos sem bloquear usuários reais?

Consulte o IP de cada cadastro com a API do GeoIPHub antes de criar a conta. Recuse saídas Tor e as pontuações mais altas, verifique a faixa intermediária por e-mail ou telefone e deixe passar endereços compartilhados, como iCloud Private Relay, NAT de nível de operadora e gateways móveis, com limites de velocidade mais folgados, porque um desses endereços pode atender muitos clientes reais.

Quão comum é a fraude em cadastros?

Na plataforma Auth0 da Okta, em média 46% das tentativas de registro em 2024 foram identificadas como ataques de cadastro. A Stripe disse em abril de 2026 que um em cada seis cadastros tentados em serviços de IA na sua rede é feito por um agente mal-intencionado. Ambos são números de fornecedores sobre as próprias plataformas.

Um endereço IP sozinho consegue detectar contas falsas?

Não. Uma consulta de IP mostra de que tipo de rede veio o cadastro e por que ele recebeu aquela pontuação, mas não vê o e-mail, o telefone, o dispositivo nem uma conta falsa criada a partir de uma conexão doméstica alugada. Use-a como primeira camada e combine-a com verificações de e-mail, telefone e dispositivo.

O GeoIPHub verifica endereços de e-mail?

Não. A API do GeoIPHub pontua apenas o endereço IP. Verifique e-mail e telefone com suas próprias ferramentas e combine esses resultados com a pontuação e os motivos do GeoIPHub.

Um usuário de VPN deve poder se cadastrar?

Muitas vezes, sim. Uma VPN, por si só, é uma escolha de privacidade, então você pode enviar cadastros vindos de VPN para verificação por e-mail ou telefone em vez de recusá-los e reservar bloqueios diretos para saídas Tor e endereços com histórico de spam ou abuso.

Como devo limitar a taxa de cadastros em IPv6?

Conte por /64, não por endereço, porque um único assinante pode rotacionar por um /64 inteiro. Amplie para /56 ou /48 quando novos /64 da mesma alocação continuarem chegando e mantenha limites mais folgados em operadoras móveis.

Escrito por

Equipe GeoIPHub

A equipe por trás da API do GeoIPHub

Escrito pela equipe do GeoIPHub, as pessoas que constroem a API de inteligência de IP do GeoIPHub e seu scanner. Os rascunhos são preparados com auxílio de IA e editados pela equipe; os exemplos de API são consultas reais à API em produção, salvo quando indicados como ilustrativos.

Compartilhe este artigo
Mais artigos

Artigos relacionados