Existem alguns elementos a seguir com isto.
string user-agent é um valor, mas pode ser falsificado trivialmente.
Eu descobri que uma heurística razoavelmente útil é fazer um pouco de pré-processamento e, em seguida, analisar o tráfego:
- Pesquisas de IP reversa
- Invoque o projeto Routeviews ( link ) para exibir o CIDR e o ASN de um determinado IP. Isso permite expandir de IPs únicos para intervalos de rede contíguos com padrões de tráfego semelhantes.
- Selecione os nomes ASN: link
Analise seus registros de acesso adicionando informações de nome do host, ASN, CIDR e ASN. Subconjuntos URLs para a parte não-variante (removendo tudo passado '?' Geralmente, embora YMMV). Se você tiver páginas específicas de pesquisa ou utilitário, concentre-se nelas (normalmente, eu vi problemas com bots usando algum tipo de serviço de verificação de usuário ou pesquisa).
Procure por IPs únicos com altos volumes de tráfego.
Procure blocos CIDR únicos ou ASNs com altos volumes de tráfego.
Exclua o tráfego de pesquisa legítimo (Google, Bing, Yahoo, Baidu, Facebook e bots / espaço de rede semelhantes). Esta provavelmente será uma de suas maiores áreas de manutenção contínua, isso muda o tempo todo.
Exclua o tráfego de usuários legítimos. Especialmente para usuários de alto volume do seu site.
Identifique quais são os padrões normais de uso, tanto para usuários finais quanto para robôs de pesquisa. Se um usuário comum acessa de 1 a 3 páginas por minuto, com uma sessão típica de 5 a 10 minutos, o Googlebot limita-se a, digamos, 10 buscas por minuto, e de repente você vê um único bloco IP ou CIDR aceso com centenas ou milhares de pesquisas por minuto, você pode ter encontrado seu problema.
Investigue as origens do tráfego de alto volume / alto impacto (em um sentido negativo). Freqüentemente, uma consulta WHOIS revela que isso é algum tipo de espaço de hospedagem - normalmente não é onde você verá muito tráfego legítimo de usuários. Padrões podem aparecer em strings de agente de usuário, URLs de solicitação, strings de referência, etc., que levam você a padrões adicionais.
Um cliente whois de armazenamento em cache pode ser uma grande ajuda se você acabar fazendo muitas pesquisas WHOIS, tanto a velocidade do processo, quanto evitar limitação / limitação de taxa por registradores (por alguma razão, eles não aceitam gentilmente para entidades que realizam milhares de pesquisas repetidas / automatizadas). Você pode consultar diretamente os registradores para obter mais informações, embora eu não tenha feito isso.
As verificações em vários bancos de dados de reputação (pesquisas de spam, SenderBase, agora há algumas coisas do Google nesses moldes) também podem corroborar o espaço de rede mal policiado.
Eu adoraria dizer que tenho algo para vender nesse sentido, mas o que eu estou trabalhando é principalmente algumas ferramentas e outros para juntar isso. Ele analisará um milhão de linhas de log por um minuto (mais um pouco de preparação para preparar hashes para informações de IPs e ASN / CIDR) em uma estação de trabalho modesta. Não totalmente automatizado, mas me dará uma imagem decente de um problema com alguns minutos de trabalho.