O tráfego de robôs, definido como visitas a um site por programas automatizados, scripts ou bots em vez de humanos, pode ser tanto benéfico quanto prejudicial. Enquanto robôs de busca são essenciais para a indexação, o tráfego automatizado malicioso pode distorcer análises, sobrecarregar recursos web e ser usado para spam, ataques e prejuízos econômicos. Para combater essas ameaças, o Yandex desenvolveu o Yandex Smart Web Security, um serviço abrangente que protege sites e aplicações contra ataques DDoS, ataques web e bots.
O serviço utiliza o módulo SmartProtection, baseado no serviço Anti-Robô, como tecnologia fundamental para proteção contra bots e ataques DDoS no nível de aplicação (Camada 7 do modelo OSI). Essa solução, que também protege todo o ecossistema Yandex, opera com um esquema de proteção de proxy reverso, permitindo a segurança de recursos localizados fora do ambiente Yandex Cloud. Recentemente, o Yandex introduziu uma nova funcionalidade que permite aos usuários da plataforma em nuvem configurar regras para identificar tráfego de robôs de forma independente, utilizando controles intuitivos como "pares de controles deslizantes". Essa inovação, embora pareça uma melhoria de interface simples, é o resultado de um extenso trabalho de engenharia, incluindo marcação de dados, treinamento de modelos, desenvolvimento de ferramentas flexíveis de controle de sensibilidade e a consideração dos custos econômicos para os robôs, as dores dos usuários e a necessidade de não afetar robôs benéficos para os negócios.
Ruslan Sabirgaliev, líder do grupo de analistas de confiança e confiabilidade no Yandex, detalha os novos mecanismos de gerenciamento de tráfego, o sistema de pontuação de requisições (bot score), o gerenciamento de bots e a importância de ir além de um único controle. A proteção contra robôs enfrenta um cenário em constante adaptação, onde os sistemas de defesa precisam evoluir continuamente. O Yandex já possuía abordagens e uma arquitetura escalável para tomada de decisões, visando alta precisão na identificação de humanos e alta abrangência na detecção de robôs. Antes desta nova funcionalidade, os usuários podiam delegar completamente a tomada de decisão ao Anti-Robô, escrever regras personalizadas para ações como liberação, desafios ou bloqueios, enviar requisições para análise em conjuntos de regras gerenciados (CRS, YARS, ML) através do módulo Cloud WAF, limitar fatias de tráfego com o Advanced Rate Limiter para proteger backends e partes de serviço que consomem muitos recursos, e diagnosticar problemas através de logs ou sinais de monitoramento. O módulo SmartProtection, em particular, permite que o sistema analise profundamente o tráfego e tome decisões, oferecendo dois modos: "Proteção Completa", ideal para páginas web comuns onde a experiência do usuário é crucial e desafios que exigem JavaScript e Cookies podem ser utilizados, e "Proteção de API", voltada para cenários onde verificações com ferramentas de validação são limitadas, como tráfego de parceiros de negócios, aplicativos móveis ou requisições AJAX, focando primariamente na proteção DDoS e permitindo que o cliente realize ajustes mais finos através de regras básicas ou do Advanced Rate Limiter.
A principal tarefa da equipe Anti-Robô é proteger os serviços contra automação maliciosa sem prejudicar a experiência do usuário, mantendo métricas de tráfego confiável (TRN) acima de 99,XX%, respondendo suavemente a tráfego suspeito, repelindo ataques DDoS e aumentando a taxa de detecção de bots maliciosos (Recall). Essa abordagem permite que os usuários ativem a proteção rapidamente, com poucas ações, preservando métricas de negócios e evitando inconvenientes como CAPTCHAs ou bloqueios. No entanto, as crescentes necessidades dos usuários em regular a sensibilidade da proteção levaram ao desenvolvimento do projeto interno Bot Management, agora disponível para resolver tarefas dos usuários.
O desenvolvimento do Bot Management foi impulsionado pela necessidade de ir além da simples regulação da sensibilidade. A proteção eficaz requer não apenas a pontuação de requisições como robô ou humana, mas também a capacidade de responder a perguntas cruciais: é possível regular o equilíbrio entre precisão de humanos e abrangência de robôs? As regras são expressivas o suficiente para distinguir robôs úteis de tráfego parasita? É possível identificar fatias de tráfego ainda mais específicas? E, fundamentalmente, o serviço pode fornecer sinais e contexto adicionais para a tomada de decisão no lado do serviço protegido? Embora uma abordagem de classificação binária (robôs vs. humanos) e a entrega de uma pontuação de previsão para o usuário pudessem parecer suficientes, a realidade exigiu mais. A interpretabilidade da pontuação é vital, pois o custo de um falso positivo (bloquear um humano) e um falso negativo (não detectar um robô) varia entre os serviços. Além disso, é crucial separar robôs benéficos, como crawlers de mecanismos de busca, de tráfego malicioso. A capacidade de ajuste granular em fatias de tráfego específicas também se tornou indispensável.
O sistema de "bot score" do Yandex opera com uma lógica que, em sua essência, é uma tarefa de pontuação. Inicialmente, a abordagem se assemelha a uma classificação binária em dados rotulados (1 para robôs, 0 para humanos). No entanto, a obtenção dessa rotulagem em larga escala é um desafio. O Yandex desenvolveu métodos para criar rotulagem confiável em subsegmentos de tráfego, mas a maior parte dos dados de inferência potencial permanece não rotulada. Para superar isso e incorporar a maior diversidade de exemplos possível, o Yandex optou por algoritmos de "weak supervision" para construir a rotulagem. Isso permitiu integrar a expertise de analistas e desenvolvedores, lidar com sobreposições e ruídos nas hipóteses, e usar a parte rotulada principalmente para controle de métricas e verificação de hipóteses, em vez de treinamento direto. O resultado é uma variável alvo "suave" (soft target) no intervalo [0,1], em vez de uma etiqueta binária, permitindo uma consideração mais profunda das especificidades de cada serviço e reduzindo preocupações com a representatividade da amostra de treinamento. Métricas internas de qualidade indicaram uma redução significativa da "zona cinzenta" (menos de 0,5%) e alta precisão na rotulagem (PR AUC > 99,9%).
Para o treinamento do algoritmo, o Yandex frequentemente utiliza CatBoost, escolhido por seus requisitos de desempenho e capacidade de processamento, além de sua resolução adequada para as tarefas. Os fatores (features) incluem um amplo conjunto de sinais técnicos, alguns interpretáveis (como o número de requisições de um IP, onde um aumento esperado leva a um aumento na pontuação de robô) e outros que afetam os custos econômicos dos desenvolvedores de software de robôs. Esses fatores podem ser controlados através de hiperparâmetros como monotonic_constraints no CatBoost, garantindo que a pontuação de robô não diminua com o aumento de certos atributos. Isso força os robôs a incorrerem em custos adicionais de infraestrutura para manter a intensidade de suas atividades, como o uso de múltiplos IPs para mascarar sua origem. O sistema Anti-Robô é capaz de lidar com casos complexos, como múltiplos usuários e um robô compartilhando o mesmo IP (devido a NAT, IPs móveis, Wi-Fi), avaliando cada requisição individualmente e considerando outros fatores que podem beneficiar humanos e prejudicar robôs. Essa abordagem aumenta a interpretabilidade do motor de pontuação, reforçando a ideia de que quanto melhor um bot imita um humano, maiores são seus custos de infraestrutura e evasão.
A arquitetura do "bot score" combina o algoritmo de machine learning com regras de alta precisão (heurísticas) para identificar robôs. A ideia é não sobrecarregar algoritmos complexos com tarefas que podem ser resolvidas por simples "if-then". Uma camada adicional de modelagem analisa fatores agregados e comportamentais. O "bot score" varia de 0 (totalmente humano) a 100 (totalmente robô). Para uma configuração inicial, o Yandex sugere uma escala de referência: até 20 (humano), 20-40 (provavelmente humano), 40-60 (zona de incerteza), 60-80 (provavelmente bot), e acima de 80 (bot). Essa escala pode ser refinada para aplicações específicas. A verificação de robôs significativos é um processo crucial. Anteriormente, o Yandex identificava robôs verificados para aplicar abordagens mais liberais, como crawlers de mecanismos de busca, cujas restrições poderiam impactar o ranqueamento. No entanto, com a regulação de sensibilidade pelo "bot score", é possível que robôs úteis recebam pontuações altas. A verificação robusta vai além do User-Agent, utilizando combinações como User-Agent + IP, User-Agent + ASN, ou User-Agent + análise de host via reverse DNS lookup. Critérios para inclusão na lista de robôs verificados incluem necessidades dos usuários (solicitações de identificação), pertencimento a empresas, um conjunto estável de identificadores, interesse para um leque mais amplo de clientes, origem e atividade do robô (regional, grande empresa como Yandex, ou com relevância social como agregadores de notícias), e alcance global (gerando tráfego significativo ou sendo popular entre provedores como Akamai, Cloudflare, AWS). O Yandex verificou mais de 100 robôs, considerando especificidades regionais e globais, e os categorizou em 17 grupos, como AcademicResearchBot, AccessibilityBot, AdvertisingAndMarketingBot, AggregatorBot, AIAssistantBot, AICrawlerBot, AISearchBot, ArchiverBot, FeedFetcherBot, MonitoringAndAnalyticsBot, PagePreviewBot, SearchEngineCrawlerBot, SearchOptimizationBot, SecurityBot, SocialMediaMarketingBot, WebhooksBot, e OthersBot. A interface de verificação agora oferece controles para "Robô Verificado" (sim/não), "Nome do Robô" (lista suspensa com mais de 100 itens) e "Categoria do Robô" (lista suspensa com 17 itens).
Além dos sinais existentes (geolocalização, IP/sub-redes/intervalos, componentes de requisição HTTP, análise de reputação de IP), o Yandex expandiu as capacidades com a inclusão de ASN (Número do Sistema Autônomo) e TLS fingerprint (JA4 e JA3), permitindo uma perfilagem e gerenciamento de tráfego mais granulares. Para clientes corporativos, o serviço agora fornece sinais adicionais em formato de logs ou cabeçalhos enriquecidos para investigações de incidentes, enriquecimento de motores antifraud internos e limpeza de logs para análise de atividades de marketing ou experimentos A/B. O "Bot Score" não é apenas uma métrica abstrata, mas um sinal prático que permite ajustar a sensibilidade da proteção, encaminhar tráfego para verificações adicionais, ou restringir fatias de tráfego suspeitas, especialmente com os sinais expandidos do Bot Management. Na prática, isso permite tratar de forma distinta APIs, páginas públicas, integrações de parceiros e áreas de alto consumo de recursos, sem misturar robôs benéficos e usuários legítimos com bots que realizam automação maliciosa.
