Taktiken für den Umgang mit sich schlecht benehmenden Robotern

9

Ich habe eine Website, die aus regulatorischen Gründen möglicherweise nicht automatisch indiziert oder durchsucht wird. Dies bedeutet, dass wir alle Roboter fernhalten und verhindern müssen, dass sie die Site spinnen.

Offensichtlich hatten wir eine robots.txt-Datei, die von Anfang an nicht erlaubt ist. Das Beobachten der robots.txt-Datei ist jedoch etwas, was nur gut erzogene Roboter tun. Vor kurzem hatten wir einige Probleme mit weniger gut erzogenen Robotern. Ich habe Apache so konfiguriert, dass einige Benutzeragenten gesperrt werden, aber es ist ziemlich einfach, das zu umgehen.

Die Frage ist also, gibt es eine Möglichkeit, Apache zu konfigurieren (möglicherweise durch Installation eines Moduls?), Um roboterähnliches Verhalten zu erkennen und zu reagieren. Irgendwelche anderen Ideen?

Im Moment kann ich nur IP-Adressen verbieten, die auf einer manuellen Überprüfung der Protokolle basieren, und das ist einfach keine praktikable langfristige Strategie.

Kris
quelle
Da Sie nach Apache-Modulen fragen (siehe mod_evasive) und Ihre Lösung möglicherweise einige benutzerdefinierte Regeln für das Parsen von Protokollen und iptables enthält, ist dieses Thema möglicherweise ein besserer Kandidat für ServerFault.com, wenn Sie Fragen zum Blockieren bestimmter Bot-Verhaltensweisen haben.
danlefree

Antworten:

7

Sie können auf eine versteckte Seite verlinken, die beim Besuch den Benutzeragenten und die IP-Adresse des Bots erfasst und dann einen oder beide an eine .htaccess-Datei anfügt, die sie dauerhaft blockiert. Es ist automatisiert, sodass Sie nichts tun müssen, um es zu warten.

John Conde
quelle
Das ist eine sehr interessante Idee, obwohl Sie, falls sie einen sehr generischen Benutzeragenten verwenden, keinen Benutzeragenten automatisch sperren möchten.
Kris
Ich würde mich dann an IP-Adressen halten. Wenn Sie I-Adressen verwenden und ein Muster aus einem IP-Block sehen, können Sie alle mit einer einfachen Regel blockieren, anstatt eine lange Liste einzelner IPs zu führen.
John Conde
3
Sie können die beschriebene Methode verwenden, um zu verhindern, dass fehlerhafte Bots Ihre Site crawlen. Aber 1) Es ist möglich zu umgehen (schlechte Bots - und ihre Meister - können lernen, wie man Honigtöpfe identifiziert und wie man sie vermeidet); und 2) Dieses Verfahren kann auch legitimierte menschliche Benutzer blockieren, denen neu zugewiesene IPs zugewiesen wurden, die als zu schlecht benehmenden Bots gehörend auf die schwarze Liste gesetzt wurden. Wenn Sie gesetzlich oder behördlich verpflichtet sind, Ihre Website nicht zu indizieren oder automatisch zu durchsuchen, müssen Sie eine ordnungsgemäße Authentifizierung verwenden und nur authentifizierten Benutzern Zugriff gewähren. Alles andere ist nicht sicher.
Free Radical
Gute Idee. Aber wenn ich es implementieren würde, würde ich wetten, dass ich versehentlich immer wieder selbst auf den Honeypot treffe und weiterhin von meiner eigenen Website blockiert werde.
JW01
@ JW01 Alles was Sie tun müssen, um dies zu vermeiden, ist nicht die Seite zu besuchen, die dies behandelt. Da es keinen Inhalt gibt, sollte das einfach sein.
John Conde
2

Mithilfe eines Apache-Moduls, das mit der IP-Blacklist von Project Honeypot verbunden ist , können Sie die Arbeit anderer Personen bei der Identifizierung fehlerhafter IPs huckepack nehmen . Wenn Sie dies in großem Maßstab tun, wäre es wahrscheinlich höflich, einen Honeypot zu betreiben.

Peter Taylor
quelle
Ich war erstaunt, als ich die IP-Blacklist von Project Honeypot auf meiner Website hinzufügte. Jahre der Angst endeten so einfach damit, die Bösewichte zu blockieren. Ich denke, Sie können damit auch Suchmaschinen-Bots erkennen. Also plus 1 dafür.
JW01
Der springende Punkt ist jedoch: Wenn Sie öffentliche Seiten haben, erwarten Sie, dass diese indexiert werden. Daher ist eine Art Authentifizierung erforderlich. Siehe Antwort von Michael Hampton .
JW01
2

Wie Gisle Hannemyr in einem Kommentar erwähnt hat , ist es am besten, Anmeldungen aller Benutzer zu verlangen und den eingeschränkten Inhalt nicht an Personen weiterzugeben , die nicht angemeldet sind.

Wenn Sie aus irgendeinem Grund keine Anmeldung benötigen, können Sie dennoch einige Fallbacks verwenden (Haftungsausschluss: Beide sind entweder teilweise oder vollständig meine Schuld):

  1. Der OWASP ModSecurity-Kernregelsatz enthält eine Reihe von Regeln zur Erkennung der Automatisierung, selbst wenn der Bot Schritte unternommen hat, um sich als Browser zu tarnen (z. B. Fälschung seiner User-Agent-Zeichenfolge). Wenn Sie die volle Kontrolle über Ihren Server haben, z. B. einen VPS, einen dedizierten Server oder etwas Größeres , können Sie diese Regeln mit ModSecurity verwenden .

    Dieser Regelsatz enthält auch andere Regeln, mit denen eine Vielzahl unangemessener Aktivitäten gestoppt werden soll. Wenn Sie es nicht angeschaut haben, sollten Sie es auf jeden Fall tun.

  2. Wenn Sie nicht die volle Kontrolle über Ihren Server haben (dh Sie haben ein gemeinsames Webhosting) und Ihr Host Ihnen nicht erlaubt, Ihre eigenen ModSecurity-Regeln zu verwenden, können Sie auf Anwendungsebene etwas ausprobieren, z. B. mein eigenes Bad Verhalten . Ich habe dieses Projekt im Jahr 2005 gestartet, um Blog-Spam und Content-Scraper wie die, die Sie betreffen, zu bekämpfen. Es kann zu jeder PHP-basierten Website hinzugefügt werden.

    Ich sollte auch beachten, dass viele der Regeln von Bad Behaviour in den ModSecurity Core Rule Set aufgenommen wurden. Solange Sie diese Regeln aktiviert haben, wäre es ziemlich redundant, beide Regeln auszuführen. Diese Regeln werden im Kernregelsatz als aus schlechtem Verhalten stammend kommentiert.

Michael Hampton
quelle