IP, Navegador e TLS: As Três Camadas Onde um Parser Pode Ser Revelado
Um desenvolvedor detalha sua jornada para contornar as proteções anti-bot de grandes marketplaces, descobrindo que a identificação ocorre em três níveis distintos: reputação do IP, comportamento do navegador e a complexidade do handshake TLS.
MundiX News·02 de julho de 2026·15 min de leitura·👁 1 views
Este artigo explora os desafios enfrentados ao tentar extrair dados de páginas públicas de produtos em marketplaces como Ozon, Wildberries e Yandex.Market. O autor relata sua experiência ao tentar monitorar preços de produtos para receber notificações de descontos, uma tarefa que se mostrou mais complexa do que um simples script de web scraping.
Capítulo 1: Ozon - "Datacenter não Passará Aqui"
O primeiro obstáculo surgiu com o Ozon. Uma requisição HTTP simples resultou em um código de status 403 Forbidden. Adicionar cabeçalhos de navegador comuns, como User-Agent e Accept, não resolveu o problema. A descoberta crucial foi que o Ozon não estava analisando o conteúdo da requisição, mas sim a origem do IP. IPs de datacenters eram imediatamente bloqueados, IPs móveis geravam captchas, enquanto IPs residenciais (de provedores domésticos) permitiam o acesso. A solução encontrada foi utilizar um proxy residencial para simular um usuário comum. Além disso, o autor otimizou o consumo de dados, descobrindo que o preço do produto já estava presente no HTML renderizado pelo servidor, eliminando a necessidade de executar JavaScript pesado. Ele também evitou o uso do Chrome DevTools Protocol (CDP) para extrair o DOM, minimizando os rastros de automação.
Capítulo 2: Wildberries - "Headless se Revela"
No Wildberries, o acesso com IP residencial era permitido, mas o uso de um navegador headless (sem interface gráfica) acionava um desafio anti-bot. O autor descobriu que headless browsers deixam rastros sutis que são detectados por scripts anti-bot. Sinais como navigator.webdriver retornando true, ausência de plugins, window.chrome.runtime vazio, HeadlessChrome no User-Agent, e renderização WebGL via software (SwiftShader) em vez de GPU real, são indicadores de automação. A tentativa de mascarar esses sinais com plugins stealth falhou porque os anti-bots verificam não apenas o valor do sinal, mas também como ele foi obtido. A solução mais eficaz foi rodar um navegador headful (com interface gráfica) em um display virtual (Xvfb), fazendo com que o navegador se comportasse como um cliente legítimo, eliminando a necessidade de mascarar características de headless.
Capítulo 3: Yandex.Market - O Enigma das Requisições Idênticas
O Yandex.Market apresentou um desafio mais sutil. Requisições com os mesmos cabeçalhos e IP, uma que acionava um captcha e outra que passava, intrigaram o autor. A diferença residia no handshake TLS, especificamente no ClientHello. O TLS fingerprinting utiliza as informações trocadas durante o estabelecimento da conexão segura para identificar o cliente. O autor descobriu que a versão da biblioteca Go utilizada em seus clientes gerava um ClientHello distinto. A causa raiz foi a inclusão de um grupo de troca de chaves pós-quânticas (Kyber) em versões mais recentes do Go. Embora o Chrome também utilize criptografia pós-quântica, a configuração do ClientHello do Go, com menos suítes de criptografia, menos extensões e a ausência de valores GREASE (usados para testar a robustez dos servidores), o tornava distinto. Ao desabilitar a preferência por essa curva pós-quântica específica nas configurações TLS do Go, o cliente se tornou indistinguível de um navegador comum. O autor conclui que a detecção ocorreu no nível TLS, especificamente na forma como o ClientHello era apresentado, e não pela presença da criptografia pós-quântica em si.
Conclusão:
As três plataformas demonstraram diferentes camadas de proteção: Ozon foca na reputação do IP, Wildberries na detecção de navegadores headless, e Yandex.Market no TLS fingerprinting. A lição aprendida é que a detecção ocorre em camadas, e focar nas camadas erradas (como cabeçalhos HTTP quando o problema é IP ou TLS) leva a becos sem saída. O cenário de segurança é dinâmico, com novas técnicas de detecção e contramedidas surgindo constantemente. O autor desenvolveu um bot funcional para monitoramento de preços como resultado dessa pesquisa, enfatizando a importância de entender em qual camada de detecção um sistema está operando.
🛡️⚡
Pare de pesquisar. Comece a hackear.
O MundiX é seu copiloto de pentest com IA: comandos exatos, análise de outputs e próximo passo na kill chain — em segundos.
Sem cartão para começar · Planos a partir de R$49/mês
Este artigo explora os desafios enfrentados ao tentar extrair dados de páginas públicas de produtos em marketplaces como Ozon, Wildberries e Yandex.Market. O autor relata sua experiência ao tentar monitorar preços de produtos para receber notificações de descontos, uma tarefa que se mostrou mais complexa do que um simples script de web scraping.
Capítulo 1: Ozon - "Datacenter não Passará Aqui"
O primeiro obstáculo surgiu com o Ozon. Uma requisição HTTP simples resultou em um código de status 403 Forbidden. Adicionar cabeçalhos de navegador comuns, como User-Agent e Accept, não resolveu o problema. A descoberta crucial foi que o Ozon não estava analisando o conteúdo da requisição, mas sim a origem do IP. IPs de datacenters eram imediatamente bloqueados, IPs móveis geravam captchas, enquanto IPs residenciais (de provedores domésticos) permitiam o acesso. A solução encontrada foi utilizar um proxy residencial para simular um usuário comum. Além disso, o autor otimizou o consumo de dados, descobrindo que o preço do produto já estava presente no HTML renderizado pelo servidor, eliminando a necessidade de executar JavaScript pesado. Ele também evitou o uso do Chrome DevTools Protocol (CDP) para extrair o DOM, minimizando os rastros de automação.
Capítulo 2: Wildberries - "Headless se Revela"
No Wildberries, o acesso com IP residencial era permitido, mas o uso de um navegador headless (sem interface gráfica) acionava um desafio anti-bot. O autor descobriu que headless browsers deixam rastros sutis que são detectados por scripts anti-bot. Sinais como navigator.webdriver retornando true, ausência de plugins, window.chrome.runtime vazio, HeadlessChrome no User-Agent, e renderização WebGL via software (SwiftShader) em vez de GPU real, são indicadores de automação. A tentativa de mascarar esses sinais com plugins stealth falhou porque os anti-bots verificam não apenas o valor do sinal, mas também como ele foi obtido. A solução mais eficaz foi rodar um navegador headful (com interface gráfica) em um display virtual (Xvfb), fazendo com que o navegador se comportasse como um cliente legítimo, eliminando a necessidade de mascarar características de headless.
Capítulo 3: Yandex.Market - O Enigma das Requisições Idênticas
O Yandex.Market apresentou um desafio mais sutil. Requisições com os mesmos cabeçalhos e IP, uma que acionava um captcha e outra que passava, intrigaram o autor. A diferença residia no handshake TLS, especificamente no ClientHello. O TLS fingerprinting utiliza as informações trocadas durante o estabelecimento da conexão segura para identificar o cliente. O autor descobriu que a versão da biblioteca Go utilizada em seus clientes gerava um ClientHello distinto. A causa raiz foi a inclusão de um grupo de troca de chaves pós-quânticas (Kyber) em versões mais recentes do Go. Embora o Chrome também utilize criptografia pós-quântica, a configuração do ClientHello do Go, com menos suítes de criptografia, menos extensões e a ausência de valores GREASE (usados para testar a robustez dos servidores), o tornava distinto. Ao desabilitar a preferência por essa curva pós-quântica específica nas configurações TLS do Go, o cliente se tornou indistinguível de um navegador comum. O autor conclui que a detecção ocorreu no nível TLS, especificamente na forma como o ClientHello era apresentado, e não pela presença da criptografia pós-quântica em si.
Conclusão:
As três plataformas demonstraram diferentes camadas de proteção: Ozon foca na reputação do IP, Wildberries na detecção de navegadores headless, e Yandex.Market no TLS fingerprinting. A lição aprendida é que a detecção ocorre em camadas, e focar nas camadas erradas (como cabeçalhos HTTP quando o problema é IP ou TLS) leva a becos sem saída. O cenário de segurança é dinâmico, com novas técnicas de detecção e contramedidas surgindo constantemente. O autor desenvolveu um bot funcional para monitoramento de preços como resultado dessa pesquisa, enfatizando a importância de entender em qual camada de detecção um sistema está operando.
📤 Compartilhar & Baixar
🧰 Ferramentas recomendadas
Divulgação: alguns links são patrocinados. Podemos receber comissão se você comprar — sem custo extra para você. Só indicamos o que faz sentido para a comunidade.