Táticas para lidar com robôs que se comportam mal

9

Eu tenho um site que, por motivos de regulamentação, pode não ser indexado ou pesquisado automaticamente. Isso significa que precisamos manter todos os robôs afastados e impedir que eles invadam o site.

Obviamente, tivemos um arquivo robots.txt que não permite tudo desde o início. No entanto, observar o arquivo robots.txt é algo que apenas os robôs bem comportados fazem. Recentemente, tivemos alguns problemas com robôs menos bem comportados. Eu configurei o Apache para banir alguns user-agents, mas é muito fácil contornar isso.

Portanto, a questão é: existe alguma maneira de configurar o Apache (talvez instalando algum módulo?) Para detectar um comportamento semelhante ao robô e responder? Alguma outra ideia?

No momento, tudo o que posso fazer é banir endereços IP com base na inspeção manual dos logs e isso simplesmente não é uma estratégia viável a longo prazo.

Kris
fonte
Dado que você está perguntando sobre os módulos Apache (confira mod_evasive) e sua solução pode acabar envolvendo algumas regras personalizadas de análise de log e iptables, este tópico pode ser um candidato melhor para ServerFault.com se você tiver dúvidas sobre o bloqueio de comportamentos específicos de bots.
Danlefree 6/09/11

Respostas:

7

Você pode vincular a uma página oculta que, quando visitada, captura o agente do usuário e o endereço IP do bot e, em seguida, anexa um ou ambos a um arquivo .htaccess que os bloqueia permanentemente. É automatizado para que você não precise fazer nada para mantê-lo.

John Conde
fonte
Essa é uma ideia muito interessante, embora, no caso de eles estarem usando um user agent muito genérico, você não queira bloquear automaticamente qualquer user agent.
Kris
Eu ficaria com os endereços IP então. Além disso, se você usar endereços I e vir um padrão de um bloco de IPs, poderá bloquear facilmente todos eles com uma regra simples, em vez de manter uma longa lista de IPs individuais.
John Conde
3
Você pode usar o método descrito para impedir casualmente que robôs ruins rastreiem seu site. Mas 1) É possível contornar (robôs ruins - e seus mestres - podem aprender a identificar honeypots e saber como evitá-los); e 2) Esse método também pode bloquear usuários humanos legítimos que foram re-alocados IPs que foram incluídos na lista negra como pertencentes a bots que se comportam mal. Se você tem uma obrigação legal ou regulamentar de não indexar ou pesquisar o seu site automaticamente, deve usar a autenticação adequada e conceder apenas acesso a usuários autenticados. Tudo o resto não é seguro.
Free Radical
Boa ideia. Mas, se eu o implementasse, aposto que continuaria atingindo acidentalmente o honeypot e ficaria bloqueado em meu próprio site.
JW01
@ JW01 Tudo o que você precisa fazer para evitar isso não é visitar a página que lida com isso. Como não há conteúdo que deva ser simples de fazer.
John Conde
2

Você pode pegar carona no trabalho que outras pessoas fizeram na identificação de IPs ruins usando um módulo Apache que faz interface com a lista negra de IP do Project Honeypot . Se você estiver fazendo isso em larga escala, provavelmente seria educado oferecer um honeypot.

Peter Taylor
fonte
Fiquei surpreso quando adicionei a lista negra de IP do Project Honeypot no meu site. Anos de angústia terminaram tão simplesmente bloqueando os maus. Eu acho que você pode detectar bots de mecanismo de pesquisa com ele também. Então, mais 1 para isso.
JW01
Mas o cerne da questão é: se você possui páginas públicas, espere que elas sejam indexadas. Portanto, é necessário algum tipo de autenticação. Veja a resposta de Michael Hampton .
JW01
2

Como Gisle Hannemyr mencionou em um comentário , a melhor maneira de fazer isso é exigir logins de todos os usuários e não fornecer o conteúdo restrito a quem não estiver logado.

Se você não pode solicitar logins por algum motivo, ainda existem algumas alternativas que você pode usar (aviso: ambos são parcial ou completamente minha culpa):

  1. O conjunto de regras principais do OWASP ModSecurity contém várias regras projetadas para detectar a automação, mesmo quando o bot tomou medidas para se disfarçar de navegador (por exemplo, falsificando sua sequência de agente do usuário). Se você estiver no controle total do seu servidor, como um VPS, servidor dedicado ou algo maior que isso, poderá usar essas regras com o ModSecurity .

    Esse conjunto de regras também contém outras regras destinadas a interromper uma grande variedade de atividades inadequadas; se você ainda não olhou, definitivamente deveria.

  2. Se você não estiver no controle total do seu servidor (ou seja, você estiver em hospedagem compartilhada na Web) e o seu host não permitir o uso de suas próprias regras ModSecurity, você poderá tentar algo no nível do aplicativo, como meu próprio Bad Comportamento . Comecei este projeto em 2005 para combater o spam de blog e os scrapers de conteúdo, como os que lhe dizem respeito. Pode ser adicionado a qualquer site baseado em PHP.

    Devo também observar que muitas das regras do mau comportamento foram incorporadas ao conjunto de regras principais do ModSecurity, portanto, desde que você tenha ativado essas regras, a execução de ambas seria bastante redundante. Essas regras são anotadas no conjunto de regras principais como originárias de mau comportamento.

Michael Hampton
fonte