A maior parte do tráfego automatizado é fácil de recusar. Uma verificação de user-agent e um teste de fingerprint detêm a grande maioria antes que qualquer comportamento importe. O tráfego contra o qual vale a pena projetar é aquela pequena fração que falsifica tudo isso, e esse tráfego ainda precisa fazer uma coisa que não consegue fingir com facilidade: mover um cursor como uma pessoa.
Este é um olhar sobre o cursor_v2, um detector neural compacto que pontua como um mouse de fato se moveu. Ele é pequeno o suficiente, cerca de dez mil parâmetros, para rodar em cada gesto, e nos nossos testes resiste a todos os métodos que conhecemos para sintetizar um cursor com aparência humana. Como é um modelo de segurança em produção, este artigo trata de resultados: o que ele pega, o quão pouco custa e onde estão seus limites, com honestidade. Ele não descreve os detalhes internos da decisão.
A versão curta:
- O cursor_v2 transforma um único movimento de mouse em uma pontuação humano/bot em menos de um milissegundo, a partir de um modelo de ~10.600 parâmetros que ocupa ~0,12 MB.
- Contra sete geradores de cursor independentes (geométricos, físicos, de imitação humana neural e trajetórias otimizadas especificamente para vencê-lo) ele marca de 86 a 100% dos movimentos de bots enquanto marca cerca de 0% dos humanos reais.
- Em um gerador com o qual nunca foi treinado, ele alcança AUC de 0,999 contra 0,920 da geração anterior.
- Apontamos um agente LLM em um navegador furtivo (Camoufox), um que vence a detecção em nível de fingerprint, para uma loja de teste. O cursor_v2 marcou 100% dos seus movimentos, mesmo com a humanização de movimento ativada.
O adversário contra o qual vale a pena projetar
A detecção de bots é uma pilha de filtros, e a maior parte do volume cai nos mais baratos: um user-agent claramente automatizado, um fingerprint de navegador sem interface, um IP de data center. Os bots que sobrevivem a essas camadas são os construídos por pessoas que leem a mesma pesquisa que nós. Eles rodam navegadores reais, apagam as pistas de fingerprint e roteiam por redes residenciais. Quando uma sessão dessas chega a uma página, os sinais estáticos parecem limpos.
O que sobra é comportamento. Uma pessoa real navegando por um site produz um fluxo contínuo de entradas, e o movimento humano do cursor é o produto de uma malha de controle biológica ruidosa que é genuinamente difícil de reproduzir. Um fingerprint pode ser copiado de forma exata. Copiar o jeito como uma mão move um mouse, de modo convincente e ao longo de milhares de gestos, é um problema diferente, e separado. Um bot pode ser perfeito na camada de fingerprint e se entregar no instante em que se move.
Um detector pequeno o suficiente para rodar em todos
O cursor_v2 recebe uma trajetória de cursor, as amostras que um movimento deixa ao percorrer de um ponto a outro, e devolve uma única probabilidade de que o movimento tenha sido produzido por automação. Ele é totalmente neural, exportado para ONNX, e roda em uma CPU. Sem GPU, sem chamada de serviço, sem servidor de modelo por requisição.
A razão pela qual isso importa é econômica. Um detector que você só pode se dar ao luxo de rodar em sessões suspeitas é um detector sob o qual os atacantes aprendem a se manter. Um que custa uma fração de milissegundo e um décimo de megabyte pode rodar em cada movimento de cada sessão, exatamente onde vive o sinal comportamental.
A pegada implantada:
- Cerca de 10.600 parâmetros no total.
- 0,74 ms por movimento em uma única thread de CPU.
- ~0,12 MB de peso de modelo.
- ~64 MB de memória de pico na inferência.
Com essa pegada, um único núcleo pontua na ordem de mil movimentos por segundo, barato o suficiente para ficar sempre ativo.
Todo cursor falso tem sua vizinhança
Internamente, o modelo representa cada movimento como um vetor compacto. Não expomos o que entra nessa representação, mas podemos mostrar o que sai dela. Projete uma grande amostra de movimentos em três dimensões e uma estrutura aparece sozinha: o movimento humano real ocupa uma região, e cada modo distinto de sintetizar um cursor cai em sua própria região, à parte dos humanos. Um humanizador geométrico, um modelo físico de mouse e uma rede neural treinada para imitar humanos parecem diferentes uns dos outros, e todos parecem diferentes de uma pessoa.
Em uma projeção interativa em 3-D desse embedding de movimento, os humanos formam uma única vizinhança enquanto cada gerador de bots forma sua própria nuvem separada, incluindo o modelo neural treinado diretamente em movimento humano. Os eixos da projeção são arbitrários; o que importa é que as classes se separam, não como o modelo decide.
O circuito de geradores
A separação em uma projeção é sugestiva, não prova. A verdadeira pergunta é o que o modelo implantado faz quando recebe movimento que nunca viu. Então construímos um circuito: sete formas independentes de gerar uma trajetória de cursor, pontuadas de ponta a ponta pelo modelo exato que implantamos, contra um conjunto de controle de movimentos humanos reais reservados.
As famílias se dividem em três grupos. As famílias reservadas usam um gerador com o qual o modelo nunca foi treinado, o teste justo de generalização. As famílias endurecidas são aquelas que treinamos o modelo deliberadamente para resistir, incluindo um corpus de trajetórias otimizadas por busca especificamente para evadir este detector; uma taxa de captura alta ali confirma que o endurecimento aguentou. E um piso trivial de sanidade.
| Família de gerador | Regime | n | AUC | Recall @ FPR ≤ 1% | Capturado @ implantado |
|---|---|---|---|---|---|
| Gerador não humanizado | piso de sanidade | 500 | 0,995 | 98,6% | 98,2% |
| Humanizador geométrico | reservada | 500 | 0,999 | 99,6% | 99,6% |
| Humanizador quantizado | reservada | 500 | 0,999 | 99,6% | 99,6% |
| Modelo de movimento físico | endurecida | 499 | 1,000 | 99,4% | 97,0% |
| Imitação humana neural | endurecida | 500 | 1,000 | 100,0% | 100,0% |
| Trajetórias otimizadas para evasão | endurecida | 500 | 0,999 | 97,6% | 85,6% |
| Corpus de exploits adversários | endurecida | 500 | 1,000 | 100,0% | 96,0% |
Controle: 160 movimentos humanos reservados, pontuados pelo mesmo pipeline, com taxa de falsos positivos de 0,0% no limiar implantado e pontuação mediana de 0,000. Cada número de bot acima é medido contra esse mesmo controle.

O dado honesto: até o corpus construído procurando trajetórias que vencem este detector é marcado 85,6% das vezes, enquanto os humanos reais são marcados em zero. A pressão adversária move o número; ela não o quebra.
O mesmo resultado visto como distribuição de pontuações: humanos e bots se acumulam em extremos opostos da escala, com muito pouco no meio. A saída humana colapsa perto de zero, os movimentos de bots agrupados de todos os geradores colapsam perto de um, e o limiar de decisão fica no vão vazio entre eles.

O teste real: um navegador furtivo conduzido por um agente
Um gerador de trajetórias é um sujeito de laboratório limpo. Um navegador furtivo moderno conduzido por um agente de IA é o adversário real, então rodamos um. Construímos um crawler conduzido por LLM em cima do Camoufox, um navegador furtivo projetado especificamente para vencer a detecção em nível de fingerprint, demos a ele um objetivo e o deixamos comprar por uma loja de teste: achar um produto, adicionar ao carrinho, ir ao checkout. À medida que navegava, capturamos seus movimentos reais de mouse e pontuamos cada um com o detector implantado.
| Agente Camoufox | Movimentos | Marcados como bot | Sessão marcada |
|---|---|---|---|
| Modo padrão | 6 | 6 (100%) | sim, após 3 movimentos |
| Humanização de movimento ativada | 6 | 6 (100%) | sim, após 3 movimentos |
Cada movimento foi marcado, no modo padrão do agente e com sua humanização de movimento embutida explicitamente ativada. O mesmo pontuador marca menos de 1% dos movimentos humanos reais, então este não é um detector que simplesmente desconfia de tudo.
O Camoufox é excelente naquilo para que foi construído, e muito provavelmente passaria sem problemas por uma verificação baseada apenas em fingerprint. Ainda assim foi capturado, porque a furtividade na camada de fingerprint não compra furtividade na camada de movimento. As duas falham de forma independente, e essa independência é todo o propósito de rodar detecção em profundidade. Para mais sobre como essas ferramentas funcionam, veja navegadores furtivos e anti-detecção explicados e como a cside detecta agentes de IA em navegadores furtivos.
Generalizar além da distribuição de treino
Um número merece destaque, porque é o que é fácil de forjar e fácil de ler errado. Quase todo detector de cursor alcança cerca de 0,99 de AUC no tipo de movimento com que treinou; esse valor é quase sem sentido. O valor que importa é a transferência, o desempenho em um gerador que foi totalmente reservado fora do treino.
Em uma família de humanizadores com a qual nenhum modelo treinou, o cursor_v2 alcança AUC de 0,999, enquanto o detector da geração anterior cai para 0,920 e perde a maior parte de seu recall. O ganho está na generalização, não no polimento dentro da distribuição.

O que podemos provar, e o que não podemos
Um relatório de segurança só vale a leitura se for honesto sobre suas bordas, então aqui estão as nossas.
A precisão dentro da distribuição não é robustez. Cada número sobre movimento que o modelo já viu é quase perfeito e não nos apoiamos em nenhum deles. As afirmações aqui se apoiam em geradores reservados e em um teste ao vivo com navegador furtivo.
O resultado entre geradores é uma estimativa pontual forte, não uma garantia universal. Ele é calibrado sobre uma amostra finita de humanos reais e uma família de humanizadores reservada. Leia o 0,999 como aprovado para aquela família, não para todo cursor que existirá. A alavanca aberta honesta é a amplitude de movimento humano real para calibrar, mais do que o modelo em si.
Em produção aplicamos debounce. Um único gesto estranho nunca marca uma pessoa; o pontuador implantado espera vários movimentos pontuados como bot em sequência antes de agir. Os números deste artigo são a visão por movimento, mais dura, antes desse alisamento.
O que isso significa para times que rodam detecção
Tire as especificidades e a lição se generaliza. Os bots que importam são os que já venceram seus controles estáticos, e o jeito de pegá-los é com um sinal que falha de forma independente daquele que eles vencem. Comportamento, como uma sessão de fato se move, clica e rola, é esse sinal, e é a camada para a qual os atacantes menos orçamentam. O mesmo raciocínio percorre pegar bots que não querem ser pegos e como agentes OpenClaw contornam a detecção de bots.
O desbloqueio prático é o custo. Um modelo comportamental pequeno e rápido o suficiente para rodar em cada visitante, não só nos suspeitos, remove o ponto cego que a amostragem cria. O cursor_v2 é um desses sinais: ortogonal ao fingerprinting, barato o suficiente para ficar sempre ativo e, até agora, aguentando contra os melhores falsificadores de cursor que conseguimos construir.
Como a cside se encaixa
A cside dá a você visibilidade total sobre cada script, requisição e terceiro que toca seu site, além do sinal comportamental para distinguir usuários reais da automação escondida entre eles. O modelo de cursor é uma camada de uma pilha de detecção que já separa humanos, bots bons e agentes maliciosos na camada do navegador, onde as pistas estáticas já foram falsificadas.






