Testes gratuitos são abusados de uma forma previsível: a mesma pessoa se cadastra repetidas vezes, usando um e-mail diferente a cada vez e uma VPN para fazer cada cadastro parecer vir de um local novo e sem relação com os anteriores. Um serviço de assinatura percebeu que seus números de conversão de teste para pago pareciam piores do que deveriam e, ao analisar os dados brutos de cadastro, encontrou o problema real: uma parcela significativa dos testes nunca teve a intenção de converter, porque eram o mesmo punhado de pessoas passando pelo período gratuito repetidamente.
O sinal que denunciou isso foi o endereço IP por trás de cada cadastro. Uma chamada a /v1/ip retorna país, região, cidade, coordenadas, ASN e organização para um determinado endereço e, com mg_extras=1 ou o cabeçalho X-MG-Extras, também retorna detalhes de ameaça e de rede, sinalizando endereços conhecidos por pertencer a nós de saída de VPN, proxies abertos ou outra infraestrutura de anonimização. Clientes comuns que se cadastram a partir de conexões de casa ou do escritório quase nunca acionam isso. Alguém que alterna entre servidores de um serviço comercial de VPN para obter o mesmo teste repetidamente aciona, todas as vezes.
A empresa não bloqueou de vez os cadastros vindos de VPN, já que muitos clientes legítimos usam uma por motivos comuns de privacidade e bloqueá-los de vez teria custado negócios reais. Em vez disso, um cadastro sinalizado como vindo de infraestrutura de VPN ou proxy recebia uma versão mais leve do teste, ainda funcional o bastante para avaliar o produto, mas limitada de um jeito que tornava o abuso repetido muito menos vantajoso, enquanto um cadastro não sinalizado recebia a experiência de teste completa. Só essa distinção eliminou a maior parte do incentivo econômico por trás do padrão de abuso, sem mexer na experiência de um cliente normal que por acaso estivesse usando uma VPN por motivos que nada tinham a ver com isso.
A equipe combinou isso com uma segunda verificação: observar quantos cadastros de teste compartilhavam a mesma faixa de rede dentro de um curto intervalo, usando os campos ASN e organização para agrupar endereços que pertenciam à mesma infraestrutura mesmo quando o endereço IP específico mudava a cada vez, já que o próprio nível gratuito do My Geocode conta o uso por rede /24 para IPv4 e por /48 para IPv6 exatamente por esse motivo: endereços próximos em uma rede tendem a andar juntos. Um grupo de cadastros vindos da mesma faixa estreita em um curto intervalo era um sinal muito mais forte do que qualquer endereço sinalizado isoladamente.
Tudo isso rodava inteiramente no servidor, na própria requisição de cadastro, sem script no navegador e sem nada visível para a pessoa que se cadastrava. E também custava pouco. Uma consulta por cadastro manteve o serviço bem dentro da cota diária gratuita incluída com sua chave na maioria dos meses, com a opção pré-paga de sempre cobrindo qualquer pico em torno de uma ação de marketing que gerasse uma onda de novos cadastros, legítimos ou não.
A lição vale além dos testes gratuitos: qualquer oferta valiosa o bastante para valer a pena repetir, um bônus de indicação, um desconto na primeira compra, um nível gratuito limitado, atrai exatamente esse tipo de abuso, e o endereço IP por trás do cadastro costuma ser o sinal mais barato disponível para detectá-lo antes que custe algo real. Os detalhes sobre o campo de extras e as duas famílias de endereços estão em /docs/ipv4-lookup/ e /docs/ipv6-lookup/.
Um código postal e uma cidade que não batem em um formulário de pedido parecem um pequeno erro de digitação até virarem uma entrega enviada para uma região totalmente diferente do país.
Uma empresa de logística queria um alerta simples no momento em que um caminhão de entregas entrasse ou saísse do local de um cliente específico, sem construir ou licenciar uma plataforma completa de rastreamento de frota.
Uma ferramenta de colaboração queria que os colegas de equipe vissem, de relance, onde um colega estava e mais ou menos que horas eram para ele, sem que ninguém precisasse digitar isso no perfil.