Speedlimit im Forum-Plugin; Spam

Wir hatten auf geeklog.net gestern einen kleineren "Spam-DDoS" mit bis zu 10 Spamposts pro Minute. Eine erste Analyse des Angriffs zeigt, dass das Problem allerdings zum Teil auch hausgemacht war ...
Bespammt wurde das Forum auf geeklog.net. Zwar unterstützt das Forum-Plugin ein Speedlimit (d.h. erfordert eine bestimmte Zeit zwischen zwei Posts von der selben IP-Adresse), doch leider ist als Speedlimit im Auslieferungszustand nur eine(!) Sekunde voreingestellt. Abhilfe: In der Datei public_html/forum/include/config.php die Zeile
$forumSpeedLimit = 1;
ersetzen gegen$forumSpeedLimit = $_CONF['commentspeedlimit'];Damit würde für Forumsbeiträge das gleiche Speedlimit wie für Kommentare gelten (und dort sind 45 Sekunden voreingestellt). Natürlich kann man auch einen beliebigen anderen Wert eintragen, nur sollte dieser deutlich größer als 1 sein.
Ich ergreife die Gelegenheit und gebe mal einen Überblick, was sich gerade so im Bereich "Spam auf Websites" tut ...
Ein besonders hartnäckiger Fall, der auch für den o.g. DDoS verantwortlich ist, bespammt schon seit Monaten geeklog.net vorwiegend mit Links zu Poker-Sites. Spam aus der gleichen Quelle schlägt auch auf anderen Websites ein, wie z.B. Wordpress-User zu berichten wissen. Auch die deutschen PHP-Gurus Kristian Köhntopp und Sebastian Bergmann werden von ihm belästigt.
Offensichtlich hat dieser nette Mitmensch auch Skripte im Einsatz, die speziell auf das Forum-Plugin für Geeklog abgestimmt sind. Im Webserver-Logfile kann man verfolgen, dass er vor dem Spamversuch brav den Forum-Editor sowie eine Preview aufruft. Tatsächlich wird natürlich nur ein passender HTTP-Request gesendet, damit es auf den ersten Blick so aussieht, als würde da tatsächlich ein Mensch einen Forumsbeitrag schreiben. Die im Forum-Editor vorhandenen Bilder (Smilies, etc.) werden dagegen nie abgerufen, womit klar ist, dass hier nur ein Skript am Werk ist.
Den Forum-Spam haben wir auf geeklog.net bisher, dank SpamX-Plugin, gut im Griff. Regelmäßige Updates der MT-Blacklist sowie die wichtigsten Stichwörter aus den Spamversuchen in der Personal Blacklist haben sich bisher als sehr effektiv erwiesen. Auffallend ist, dass dieser Spammer offenbar bisher noch kein deutschsprachiges Geeklog-Forum bespammt hat. Aber das ist bestimmt auch nur eine Frage der Zeit ...
Neuerdings hat unser spezieller "Freund" auch Trackback entdeckt. Zeitgleich mit einer Welle von Trackback-Spam auf Kristian Köhntopps Weblog geriet auch geeklog.info in sein Visier. Ein paar Spams sind durchgekommen, der weitaus größte Teil wurde aber vom SpamX-Plugin abgewehrt.
Und an einer dritten Front ist unser Freund unterwegs: Referrer-Spam. Wer einmal einen Blick in das Logfile seines Webservers wirft, wird viele vermeintliche Zugriffe sehen, die von Sex-Sites oder eben von Poker-Sites kommen. Auch hier hat unser Spammerfreund nur ein Rudel Skripte losgelassen, die sinnlose Anfragen an Websites schicken, in der Hoffnung, dass dies irgendwie seine Site bekannter machen würde, z.B. durch leichtsinnig veröffentlichte Webstatistiken oder die Anzeige von Referrern direkt auf der Website (im Falle von Geeklog z.B. mit dem Stats-Plugin).
Referrer-Spam ist die harmloseste Variante, kann aber u.U. zu mehr "Load" auf dem Server führen, denn auch für diese unsinnigen Anfragen wird extra eine Session erzeugt, Geeklog muss die komplette Seite aufbauen, usw. Auf geeklog.net habe ich in einem Forumsbeitrag erklärt, wie man unerwünschte Requests schon vom Webserver abblocken lassen kann, so dass der PHP-Interpreter gar nicht erst anspringen muss und sie auch keinen Load für den MySQL-Server erzeugen. Dies funktioniert auch recht gut gegen diverse kursierende Würmer (Santy, Spyki) und gegen die allgegenwärtigen Scriptkiddies.
Und was tut sich an der Front der Spamgegner? Da wäre zunächst der viel beachtete Vorschlag von Google und diversen Herstellern von Blog-Software, einfach alle Links in Besucher-Beiträgen mit einem neuen Attribut rel="nofollow" zu versehen, was Google dann dazu veranlassen würde, solche Links nicht in den Pagerank für die verlinkte Site einfliessen zu lassen. Damit, so die Idee, wäre den Kommentarspammern die Motivation genommen, überhaupt solche Links zu posten.
Im Gegenzug sind damit aber automatisch alle Links in Beiträgen "wertlos" - auch wenn sie erwünscht waren. Das erscheint mir persönlich keine sehr erstrebenswerte Lösung zu sein. Spam abzublocken bzw. schnellstmöglich zu löschen erscheint mir da die logischere Alternative. Wer will schliesslich schon den ganzen Müll auf seiner Site stehen haben? In einem Interview mit einem Kommentarspammer zeigt sich dieser von dem Google-Vorschlag auch wenig beeindruckt.
Da E-Mail-Spam und Kommentarspam doch einige Gemeinsamkeiten haben, macht es möglicherweise Sinn, hier die Kräfte zu vereinen. Die Autoren des E-Mail-Spamfilters SpamAssassin haben hierzu eine Arbeitsgruppe gegründet. SpamAssassin ist sehr weit verbreitet und hat als offizielles Apache-Projekt auch einiges an Ressourcen zur Verfügung, was sich als sehr nützlich erweisen könnte (in einem etwas älteren Artikel hat z.B. Mark Pilgrim schon darauf hingewiesen, dass der Kampf der Blogger gegen die Spammer Züge von "David gegen Goliath" aufweist).
Das Thema Spam wird uns sicher noch eine Weile beschäftigen und vorerst wird es wohl auch eher schlimmer als besser werden. Wir bleiben aber am Ball. Und mit dem Poker-Spammer haben wir ja auch ein Versuchskaninchen für neue Abwehrmaßnahmen an der Hand ...
bye, Dirk