Heute hat’s den ersten richtigen Einschlag beim Blogspam-Projekt gegeben. Um ca. 18 Uhr ist der Server (auf dem auch die meisten anderen Projekte von mir laufen) unter der Last der Spammer zusammengebrochen. Binnen weniger Minuten sind mehrere Tausend Spamversuche auf einmal eingeprasselt, was letztendlich Web- und Datenbankserver gekillt hat.
Glücklicherweise war ich nicht weit weg vom Rechner und konnte direkt eingreifen.
So sahen die Requests der Spammer aus:
xxxxxx - - [07/Jun/2007:18:48:42 +0200] "POST /2007-04/spam-comment-spam-und-trackback-spam/ HTTP/1.0" 200 5002070 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)"
Keine IP-Adresse war soweit ich es überblicken konnte mehr als einmal vorhanden. Sie scheinen als in diesem Fall mit einem Trojaner zu arbeiten, der weltweit seine Dienste auf ungeschützten Rechnern verrichtet und auf Kommando loslegt. Anders ist der schlagartige Anstieg von 0 auf 100 nicht zu erklären. Da stellt sich natürlich die Frage ob Spam der primär Zweck dieser Aktion ist., oder ob’s unterm Strich doch eine dDOS-Attacke sein soll. Eines der Hauptprobleme war sicherlich, dass es sich um einen Artikel handelt, der schon 2000+ Kommentare zu dem Zeitpunkt hatte.
Glücklicherweise gab sich dieser Trojaner gleich via Useragent zu erkennen und so hat ein einfaches:
SetEnvIfNoCase User-Agent "Maxthon" spammer=yes
order deny,allow
deny from env=spammer
in der .htaccess gereicht um die Request im Logfile danach so aussehen zu lassen:
xxxxxx - - [07/Jun/2007:19:55:28 +0200] "POST /2007-04/spam-comment-spam-und-trackback-spam/ HTTP/1.0" 403 1503 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)"
für die Laien unter den Lesern. im zweiten Request steht „403“ was kennzeichnet, dass der Aufruf nur ein „forbidden“ gesehen hat im Gegensatz zum Beispiel oben (Status Code 200 für erfolgreich).
Zum Schluß bleibt noch festzuhalten, dass keiner dieser Requests in einem Kommentar geendet ist. Warum weiß ich aktuell selber noch nicht – jemand Ideen?
P.S.: Ganz dickes sorry an die SimpleSnip-User die so zu Beginn gleich einen Ausfall des Dienstes in Kauf nehmen mussten.
Nachtrag: Bleibt noch zu vermerken, dass die Serverlast zwischendurch bei 158 angekommen war. Der Normalwert liegt unter 1. Mittlerweile ist sie wieder auf 1.5 gesunken. Die Requests dauern aber an. Die Trojaner sind offenbar dumm genug um selbst wenn sie ausgesperrt werden nicht den Blog/Server zu wechseln.
Nachtrag 2: So sah das dann im Apache-Status Frontend aus – das war aber schon nachdem alles im Griff war.
Schreibe einen Kommentar