Mustafa Görmezer

  • Schrift vergrößern
  • Standard-Schriftgröße
  • Schriftgröße verkleinern
Home Blog Security / Spam Der Bau einer Spambot-Falle

Der Bau einer Spambot-Falle

E-Mail Drucken PDF
Mittlerweile habe ich keine Lust mehr, die .htaccess manuell per Hand zur Verbannung von Spambots zu Pflegen. Im Internet bin ich auf eine gute Idee gestoßen, mit der man Spambots mit einer Falle einfangen und für immer von der Seite verbannen kann. Das hört sich ein wenig nach spannender Jagd an. Ist es auch.

Denn diese Spambots kommen irgendwann zu irgendwelchen Zeiten und verursachen einen großen Traffic und damit natürlich auch Webhosting-Kosten. Und was sie noch für einen Schaden anrichten (Datenklau o.ä.) kann man nur vermuten.

Zeit etwas automatisiertes zu tun. Hier meine Wunschliste für eine Spambot-Falle:

  • Zunächst möchte ich identifizieren, welcher Zugriff von einem Spambot stammt
  • Falls ich einen Spambot identifiziert habe, möchte ich seinen User Agent per .htaccess sperren
  • Zusätzlich möchte ich die User Agents der Spambots in einer Datei festhalten, um zu vergleichen, ob er ein weiteres Mal zuschlägt.
  • Wenn ja: Lasse ich ihn 10 sek. warten und zeige ihm anschließend seine eigene IP als Hyperlink. Soll er damit machen, was er will :-)
  • Wenn nein: werde ich den User Agent nach ein paar Tagen aus der .htaccess löschen
  • Weiterhin will ich per Email darüber informiert werden, wenn ein Spambot in die Falle gegangen ist
  • Und der Clou: ALLES AUTOMATISCH ! Ich will nur noch über die Aktionen informiert werden.

Mal sehen, ob`s klappt...

{mospagebreak title=Die Falle}

Die Falle

Wann kann man einen Spambot als solches identifizieren ? Ich habe viele Ansätze widerworfen, bis auf einen: Alle Robots verfolgen Hyperlinks und speichern diese. Geben wir ihm einen Link, den gute Robots (Google Bot, MSN Bot, ...) laut Standard ignorieren sollen. Sprich: Erzeuge ein Unterverzeichnis, welches in der robots.txt  für Robots ausdrücklich verboten ist und verlinke (aus Versehen und unauffällig - Ist schließlich eine Falle) von der Startseite auf dieses Verzeichnis.

Dann passiert folgendes: 

Gute Robots sagen: "Halt ! Privatsphäre. Hier habe ich nichts zu suchen." Und ignorieren dieses Verzeichnis.

Böse Spambots sagen: "Mir doch egal ! Umso spannender." und crawlen unerlaubt das verbotene Verzeichnis.

In dem Verzeichnis muss natürlich eine index.php liegen, die dann den Spambot identifiziert und weitere Aktionen (siehe Wunschliste) einleitet. Ich gehe folglich davon aus, dass jeder Robot, der die robots.txt missachtet, für die Ewigkeit von der Seite verbannt wird und bei zukünftigen Besuchen ein "Error 403 - Forbidden!" zu sehen bekommt. Ist das gerecht ? Ich denke, das ist eine logische Konsequenz. Fangen wir an...

{mospagebreak title=Umsetzung mit PHP}

Technische Umsetzung mit PHP (ab jetzt Grundkenntnisse in .htaccess und PHP gefragt)

1. Unterverzeichnis xyz anlegen, welches folgende Dateien enthält:

  • 1x1.gif (1x1 Pixel Gif-Bild - Ist für Besucher unsichtbar auf der Startseite)
  • blacklist.dat (chmod 777 - hier werden die User Agents gespeichert)
  • blacklist.php
  • index.php

2. Die robots.txt wird zusätzlich erweitert um

User-agent: *
Disallow: /xyz/

3. die Startseite (bei CMS meißt als Template editierbar) um einen unsichtbaren Link erweitern. Dies ist dann die Spambot-Falle:

4. index.php und blacklist.php bearbeiten und für die eigene Serverumgebung anpassen.

Hier alle Dateien als Download: spambot_trap.

{mospagebreak title=Hinweise}

Die Grundidee stammt von http://www.kloth.net/internet/bottrap.php. Die automatische .htaccess-Erweiterung und einige andere Funktionalitäten habe ich selbst umgesetzt... Mal sehen, was so die nächste Zeit passiert.

Achso: Die Funktionalität, die lange nicht wiedergesehene Spambots automatisch aus der .htaccess löscht, ist noch nicht umgesetzt. Folgt vielleicht noch...

Zuletzt aktualisiert am Sonntag, 08. April 2012  

Schnipsel

Metadaten und URLs extrahieren mit PDFx

PDFx ermöglicht es, Metadaten und URLs aus PDF-Dokumenten zu extrahieren. Es ist ein Python-Programm für die Kommandozeile und kann auch als Python-Modul aus anderen Anwendungen heraus verwendet werden. Das Programm wurde unter der Apache Lizenz veröffentlicht.

 
Excel-Dateien lesen mit Python

Microsoft Excel Dateien lassen sich mit der Python Bibliothek XLRD Plattformunabhängig lesen und schreiben. Dieser Artikel von Mike Driscoll zeigt ein BEispiel, wie man es ohne Office-Installation macht.

Anzeigen

 

Statistik

Seitenaufrufe : 7830283

Wer ist online

Wir haben 85 Gäste online