Bot Traffic – Analyse, Steuerung und Schadensabwehr
Ein sehr leidiges Thema ist immer wieder der Bot-Traffic. Wir haben Kunden-Shops deren Bot-Traffic über 75% des Gesamtraffics ausmacht. Erstmal würde man sagen kein Problem, stört ja nicht. Leider ist dem weit gefehlt, durch den phasenweise sehr intensiven Bot-Traffic entstehen eine Vielzahl unterschiedlicher Probleme, die in letzter Konsequenz dazu führen, dass der Shop schlechter konvertiert und weniger Umsatz macht.
Bots werden im Wesentlichen verwendet um
- den Content durch Suchmaschinen zu erfassen
 - das Shop-Sortiment zu analysieren (z.B. Preisüberwachung durch Konkurrenz)
 - Produkte automatisch zu kaufen (z.B. limitierte Sneaker)
 - Sicherheitslücken zu finden und auszunutzen (z.B. über SQL-Injections)
 
Aus der Sicht eines Shop-Betreibers sind eigentlich nur die Bots der großen Suchmaschinen ein notwendiges übel und auch hier nur eine sehr kleiner Kreis der hier Sinn macht, wie z.B. der Googlebot.
Probleme die durch Bot-Traffic entstehen
Problem 1: Serverlast
Eines der größten Problem, das bei unseren Kunden durch die Bots erzeugt wird, ist die Serverlast, die die Abrufe produzieren. Nicht alle Kunden betreiben einen eigenen Server, was bei unserem Shopsystem auch gar nicht notwendig ist. Nur wenn der Bot-Traffic überhand nimmt und die Serverlast steiegt, wird der Shop teilweise deutlich langsamer. Wir konnten Bots beobachten, die auf kleinen einfachen Shops, mehrere zehntausend Aufrufe pro Tag produzieren – da sind die Ressourcen eines kleineren Webhosting-Paktes schnell aufgebraucht.
Problem 2: Anzahl der Sessions
Neben dem eigentlichen Traffic erzeugen „unerkannte“ Bots im schlechtesten Fall pro Aufruf eine Session, was auch hier im Zweifel zu mehreren zehntausend aktiven Sessions führt und das System bei deren Verwaltung zusätzlich belastet. Dies passiert weil die meisten Bots keine Cookies verarbeiten und die Session-Cookies nicht „mitnehmen“. In letzter Konsequenz ist somit jeder Aufruf ein neuer Aufruf, mit der Erzeugung einer neuen Session.
Problem 3: Datenmüll in diversen Datenbanken
Da Bots nicht nur Seiten abrufen, sondern auch Aktionen ausführen, kann es vorkommen, dass Datenmüll in diversen Datenbanken landet. Im schlimmsten Fall viele automatisierte Bestellungen, die manuell bereinigt werden müssen. Oder der Bot triggert durch bestimmte Aktionen tausende Systemmails, was auch schnell sehr lästig werden kann.
Problem 4 : Serverüberlauf aufgrund von File-Caching
Neben der grossen Anzahl der Sessions die ein „unerkannter“ Bot erzeugt, kann ein Bot über die Seitenaufrufe eine grosse Anzahl von Cache-Dateien erzeugen, wenn z.B. automatisiert die Suche aufgerufen wird. Dies führt dann vorallem bei Providern zu Problemen, die nur eine begrenzte Anzahl von Dateien zulassen.
Werkzeuge für die Traffic-Analyse und -Steuerung
Wir haben uns die letzten Monate sehr intensiv mit dem Thema beschäftigt und Werkzeuge entwickelt, mit denen jeder Shop-Betreiber selbständig den Bot-Traffic analysieren und steuern kann.
Werkzeug 1 : Zugriffsanalyse
Im Shop-Manager findet man das Werkzeug im Bereich
Konfiguration > Serverinformationen > Zugriffsanalyse
Hier finden sich alle Besucher (ohne erkannte Bots) gruppiert mit diversen Informationen wieder, unter anderem den Browsernamen, die Anzahl der Sessions und von wann bis wann der Besucher aktiv war. Hier kann man relativ schnell erkennen, ob ein Besucher ein Bot ist oder nicht, z.B. wenn die Anzahl der Abrufe und die Anzahl der Sessions ungefähr gleich sind. Ein normaler Besucher erzeugt nur eine oder zwei Sessions, da die Session-Cookies verarbeitet werden. Zudem geben sich viele Bots auch über den Browsernamen zu erkennen.
Wenn man einen Bot identifiziert hat ist der erste Schritt die Bot-Kennung (z.B. „ahrefsbot“) in die Bot-Erkennung einzutragen, die man unter
Einstellungen > Suchmaschinen
finden kann. Der Eintrag führt dazu, dass für „erkannte“ Bots keine Session erzeugt wird, bzw. alle Bots die gleiche Session bekommen, was das Problem 2 erst einmal löst.
Werkzeug 2 : Bot-Analyse
Im Shop-Manager findet man das Werkzeug im Bereich
Konfiguration > Serverinformationen > Bot-Analyse
Hier erhält man alle Bot-Aufrufe (die über die Bot-Erkennung identifiziert worden sind) nach Bot gruppiert. Durch die Übersicht erkennt man schnell, welcher Bot wie aktiv ist. Wenn jetzt einen Bot komplett aussperren werden soll, haben wir hierfür einen .htaccess-Eintrag entwickelt, der den Bot über den HTTP-Code 403 direkt blockiert – was den Vorteil hat, dass die Last des Aufrufs minimal ist. Würde man den Bot-Aufruf in das Shopsystem lassen und dort erst entscheiden, was passieren soll, wäre das nur ein geringer Lastvorteil. So kommt der Bot erst gar nicht in das System und kann keine größere Serverlast erzeugen. Der Bot erzeugt dann auch keine Einträge mehr in der Bot-Analyse oder anderen Log-Files.
Werkzeuge 3 : IP-Sperre
Im Shop-Manager findet man das Werkzeug im Bereich
Konfiguration > Serverinformationen > Zugriff-IP-Block
Darüber kann man IP-Adressen direkt sperren. Die IP-Sperre wird ebenfalls über einen .htaccess-Eintrag gesteuert und ist soweit mehr oder weniger performance-neutral. Im Unterschied zu der Bot-Sperre über den Browsernamen (s. Werkzeuge 2) erfolgt hier die Pflege direkt im Shop-Manager.
Werkzeuge 4 : URL-Überwachung
Als passive Erweiterung gibt es die Möglichkeit bei der Erzeugung einer Session einen URL-Parameter-Scanner zu aktivieren. Dieses Plugin überprüft die aufgerufene URL nach bestimmten Keywords, ganz simple z.B. ob das Keyword „select“ oder „script“ vorkommt. Sollte dies der Fall sein, wird eine E-Mail an den Adminstraotr verschickt und dieser kann dann, wenn notwendig direkt die IP-Adresse sperren (s. Werkzeug 3). Dieser Art der Aufrufe wird i.d.R. von Bots ausgeführt, die nach Schwachstellen im Shopsystem suchen und oft sehr viele Aufrufe parallel durchführen, daher ist es sinnvoll – diese Bots direkt über die IP zu sperren. Zudem gibt es einen weiteren .htaccess-Eintrag der bekannte Muster direkt sperrt, diesen kann man manuell erweitern und wirkt ebenfalls relativ performance-neutral.
Werkzeuge 5 : Front-End Plugins für Content-Schutz und Input-Analyse
Darunter fallen im Shop vor allem das Captcha-Plugin und der Formular-Content-Filter.
Das Captcha-Plugin kann in beliebigen Formularen verwendet werden, z.B. dem Kontakt-Formular oder Newsletter-Anmeldung. Wir setzten hier bewusst auf unsere eigene Lösung, um die Nutzung von Standardlösungen für bekannte Captcha-Lösungen zu verhindern.
Der Formular-Content-Filter kann individuell eingesetzt werden, um Formular-Eingaben (unabhängig von der Anwendung) zu analysieren und ggf. in den System-Ablauf einzugreifen. Die Entwicklung erfolgt sehr individuell und ist in den meisten Fällen nicht notwendig – darüber hätte man aber z.B. die Möglichkeit automatisierte Bestellungen zu erkennen und zu verhindern. Der Formular-Content-Filter zielt auf alle Formulare ab – daneben gibt es noch diverse andere Eingriffsmöglichkeiten, die dann eher funktionsspezifisch sind, wie Valdidation-Plugins für die Adresseingabe im Bestellablauf.
Werkzeuge 6 : Asynchrone Tools
Neben den aktiv nutzbaren Werkzeugen stellen wir auch mehrere asynchrone Tools zur Verfügung, über die man Prüf-Prozesse automatisieren kann. Die beiden wichtigsten Tools wären hier die Session-Verwaltung und die automatische IP-Sperre.
In der Standard-Installation findet die Session-Verwaltung im Shop-System statt, bei jedem neuen Aufruf werden die Sessions analysiert und ggf. alte Sessions gelöscht, das ist je nach Anzahl der Session eine sehr serverlastige Aufgabe. Diese Aufgabe kann man im Shopsystem deaktivieren und per Cronjob einmal die Stunde ausführen lassen, was die Last auch bei „grossen“ Shops auf einen Bruchteil reduziert.
Das zweite Tool ist die automatische IP-Sperre, die ebenfalls per Cronjob ausgeführt werden kann. Das Tool analysiert den aktuellen Traffic und sperrt eine IP-Adresse automatisch anhand bestimmter Kriterien, wie z.B. das Verhältnis von Sessions zu Aufrufen – ist eine bestimme Schwelle überschritten, wird die IP-Adresse automatisch über das Werkzeug 3 gesperrt, auch wieder relativ performance-neutral. Eine Ausführung ist hier alle 15 bis 30 Minuten zu empfehlen, dann begrenzt sich der Schaden der Lastspitzen auf diesen Zeitraum, vor allem außerhalb der Bürozeiten ist das ein sehr nützliches Hilfsmittel.
Ausblick und Unterstützung
Wir werden die Entwicklung des Bot-Traffics weiterhin im Auge behalten - wir analysieren grundsätzlich regelmässig die Log-Files unserer grössten Shops. In diesem Prozess erhalten wir schnell neue Erkenntnisse über neue Entwicklungen und Änderungen im Verhalten der Bots. Bei Kunden die einen Wartungsvertrag haben, werden aktuelle Erkenntnisse grundsätzlich im Rahmen der Updates in die Installation eingebunden.
Wenn Sie für Ihren Shop Unterstützung brauchen, wenden Sie sich jederzeit an uns. Wir stehen Ihnen mit Rat und Tat zur Seite.