hahaha Webcrawler legt den Apachen lahm / DDoS

Vor ein paar Tagen war ich auf einem Rechner zu Gast, der sofort nach dem Start des Apache2 so viele Prozesse öffnete bis dieser in die Knie geht. Das error.log Dokument zeigt dies auch an ...server reached MaxClients setting...

Das access.log File zeigt zu diesem Zeitpunkt folgende Einträge an:

62.226.71.77 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
67.230.15.201 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
82.228.255.82 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
67.230.15.201 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
67.230.15.201 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
85.247.44.177 - - [01/Dec/2010:19:13:10 +0100] "GET /apache2-default/ HTTP/1.1" 200 44 "-" "hahaha"
83.119.147.38 - - [01/Dec/2010:19:13:10 +0100] "GET /apache2-default/ HTTP/1.1" 200 44 "-" "hahaha"
62.226.71.77 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
83.119.147.38 - - [01/Dec/2010:19:13:10 +0100] "GET /apache2-default/ HTTP/1.1" 200 44 "-" "hahaha"
84.24.148.207 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
81.185.240.110 - - [01/Dec/2010:19:13:10 +0100] "GET /apache2-default/ HTTP/1.1" 200 44 "-" "hahaha"
77.180.6.60 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
62.226.71.77 - - [01/Dec/2010:19:13:10 +0100] "GET /apache2-default/ HTTP/1.1" 200 44 "-" "hahaha"
86.20.52.230 - - [01/Dec/2010:19:13:10 +0100] "GET /apache2-default/ HTTP/1.1" 200 44 "-" "hahaha"
87.147.56.201 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
82.168.48.203 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
84.29.49.141 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
82.168.211.13 - - [01/Dec/2010:19:13:10 +0100] "GET /apache2-default/ HTTP/1.1" 200 44 "-" "hahaha"
207.161.34.194 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
77.180.6.60 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
87.94.124.6 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
212.99.78.126 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
83.119.147.38 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
83.119.147.38 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
87.208.63.191 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
77.180.6.60 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"
212.99.78.126 - - [01/Dec/2010:19:13:10 +0100] "GET / HTTP/1.1" 302 303 "-" "hahaha"

Es ist ziemlich leicht zu erkennen was hier passiert. Verschiedene IP Adressen rufen mittels des User Agents "hahaha" die Webseite so oft auf, bis dem Apache2 bzw. dem Server an sich die Puste ausgeht. Man könnte hier von einer Distributed Denial of Service (DDoS) Attacke sprechen.
Der Angriff erfolgt dabei von so vielen IP Adressen, dass die Rechner die diese Anfragen absenden vermutlich nicht einmal was davon mitbekommen. Am Webserver der Domain wo alle diese Anfragen zusammenlaufen ergibt dies pro Sekunde mehrere hundert Abfragen und den damit verbundenen Ausfall.

Da die IP Adressen sehr unterschiedlich waren, war der kleinste gemeinsame Nenner dieser Anfragen der User Agent "hahaha". Dieser wurde mit folgenden beiden Zeilen in der vhost.conf (oder auch im .htaccess File) geblockt:

# Block User-Agent Apache2
SetEnvIfNoCase User-Agent "hahaha" bad_bot
Deny from env=bad_bot

Danach erfolgten keine Angriffe mehr. Es scheint als könnte der Angreifer bei seinen Bots nur das Ziel steuern, nicht aber den Namen. Ein Glück...

Schreibe einen Kommentar