- Os web bots evoluíram de requisições simples com clientes HTTP até a automação de navegadores reais, e em resposta a isso as técnicas de detecção de bots também ficaram continuamente mais sofisticadas
- Tecnologias como reputação de IP, impressões digitais de TCP/TLS/ambiente do navegador e análise comportamental baseada em JavaScript são usadas na detecção de bots
- Técnicas de evasão de bots, como navegadores headless, proxies e adulteração de User-Agent, evoluem, mas os algoritmos de detecção também avançam junto, mantendo o jogo de “gato e rato” entre os dois lados
- Mais recentemente, a combinação com análises comportamentais avançadas usando modelos de IA baseados em dados de comportamento tornou a detecção de bots ainda mais complexa
- Sistemas de defesa em múltiplas camadas, como CAPTCHA, detecção de proxy, Proof-of-Work e autenticação baseada em comportamento, estão se tornando comuns
Introdução: a evolução dos web bots e das tecnologias de detecção
- Os web bots vão desde crawlers simples e scripts de automação até programas sofisticados que se comportam como usuários reais
- Há bots úteis, como mecanismos de busca e bots de arquivamento, mas também muitos usos problemáticos, como spam e scraping ilegal
- Os operadores de sites lutam contra bots desde os primórdios, e as técnicas de detecção e evasão se sofisticaram ao mesmo tempo
O bot mais simples: cliente HTTP
- A forma mais básica de bot é enviar requisições a um site com clientes HTTP simples como
curl e wget
- Todo cliente HTTP se expõe pelo cabeçalho
User-Agent, então os sites conseguem detectá-lo e bloqueá-lo com facilidade
- Mesmo que o User-Agent seja falsificado para parecer um navegador, navegadores incluem cabeçalhos adicionais (idioma, codificação etc.), então, sem uma camuflagem perfeita, ele ainda será detectado
Reputação de IP e proxies
- O servidor detecta bots usando o endereço IP. Em especial, faixas de IP de nuvem e datacenter tendem a ser tratadas como tráfego de bot/automação, com baixa confiança
- Operar sem proxy leva a bloqueio rapidamente, então é preciso contornar o IP com proxies residenciais/móveis, o que gera custo
- Os sites verificam ativamente reputação de IP, abertura de portas de proxy (como 1080), faixa de IP e padrões de acesso
- Para contornar bloqueios de IP, usam-se rotating proxies e proxies móveis
Impressão digital de TCP (TCP Fingerprinting)
- Ao estabelecer uma conexão TCP antes da requisição HTTP, a forma como os pacotes TCP são montados varia conforme o sistema operacional, e isso pode ser analisado para identificar o SO
- Quando o User-Agent e o SO real (impressão digital TCP) não coincidem, o tráfego tende a ser considerado bot ou tráfego disfarçado
- Servidores proxy também podem afetar a impressão digital TCP, então ao escolher um proxy é preciso considerar se o SO corresponde
Impressão digital de TLS (TLS Fingerprinting)
- No processo de handshake TLS, os métodos de criptografia suportados, versões e extensões variam conforme navegador e sistema operacional
- Pela impressão digital TLS, é possível inferir navegador, sistema operacional e tipo de biblioteca, e cruzar isso com o User-Agent
Detecção com JavaScript
- Antes de responder, ou após o carregamento da página, o servidor usa JavaScript para coletar mais informações sobre o ambiente e o comportamento do cliente
- Se o bot não executa JavaScript, ele é detectado imediatamente, e por isso os bots respondem usando ferramentas de automação de navegador como Selenium, Puppeteer e Playwright
- O cenário está evoluindo de simples requisições HTTP para automação de navegador
Navegadores headless e detecção
- O modo headless (como o Chrome sem janela) é essencial no desenvolvimento de bots, mas diferenças como
navigator.webdriver, lista vazia de plugins e outras características exclusivas permitem sua detecção
- É possível mascarar isso corrigindo várias propriedades, mas é preciso tratar dezenas de pistas, e novos pontos de detecção continuam surgindo
- O modo New Headless, introduzido a partir de 2023, usa o mesmo engine do Chrome real, tornando a detecção mais difícil
Detecção de frameworks de orquestração e IPC
- Frameworks de automação como Selenium e Playwright expõem particularidades em flags e opções próprias, versões do navegador e configuração do ambiente
- Exemplo: flags como
--disable-ipc-flooding-protection servem como indício para identificar ambiente de bot
- Algumas funções JS (por exemplo,
window.history.pushState) podem ser chamadas em excesso para induzir um estado de IPC flood e permitir detecção
Detecção de proxy: sofisticação via JS
- Latency (medição de latência): compara-se a latência total medida por WebSocket etc. com a latência TCP para verificar a presença de proxy
- WebRTC Leak: usa-se o WebRTC do navegador para obter o IP real do cliente e compará-lo com o IP da requisição HTTP; se não coincidirem, há suspeita de proxy/bot
- DNS Leak: em JavaScript, faz-se uma requisição a um subdomínio arbitrário → a localização/IP do servidor DNS permite detectar padrões anormais (como país inconsistente)
- Timezones: compara-se o fuso horário do navegador com a localização do IP para detectar uso de proxy ou disfarce
Captcha e autenticação
- Captcha é uma autenticação separada com o objetivo de detectar/bloquear bots, composta por problemas que humanos conseguem resolver (reconhecimento de caracteres, cliques etc.)
- Recentemente, surgiram captchas baseados em Proof-of-Work (imposição de trabalho computacional) e captchas baseados em comportamento (clique simples combinado com análise comportamental)
- A maioria dos bots contorna captchas usando serviços externos baratos de resolução de captcha
Análise comportamental simples/avançada
- A análise comportamental examina a ineficiência e a diversidade típicas do comportamento humano, como movimentos do mouse, padrões de digitação, posição e velocidade de clique
- Exemplos: movimento curvo do mouse, atraso no clique, intervalo entre teclas, eventos de orientation/motion em dispositivos móveis etc.
- Bots se revelam facilmente por movimento em linha reta, digitação constante/rápida e velocidade de reação irrealista
- A análise comportamental avançada coleta e treina com grandes volumes de dados de comportamento humano e de bots, identificando até padrões sutis com IA/machine learning
- Ex.: classificação baseada em dados compostos, como trajetória do movimento do mouse, pequenas diferenças de tempo entre keystrokes e padrões de navegação na página
Conclusão e implicações
- Web bots vs. tecnologias de detecção é uma disputa de evolução e reação contínuas, na qual técnicas variadas são usadas em conjunto, de impressões digitais estáticas e análise comportamental até detecção baseada em IA
- Apesar das várias técnicas de evasão e disfarce, os operadores de serviços respondem com sistemas de detecção em múltiplas camadas, análise comportamental em tempo real e modelos de IA, e precisam de atualizações contínuas
- Desenvolvedores de bots têm limites para montar um ambiente de camuflagem perfeito, e entender as tendências mais recentes de detecção e as formas de resposta é essencial
Ainda não há comentários.