Hallo,
wir haben hier ein Problem auf einem Kundenserver.
Die Historie:
Es begann damit, dass die Webseite am Donnerstag kaum noch erreichbar war. Die Ursache war schnell festgestellt:
Im Apache Status stand alles auf Reading und netstat lieferte hunderte Verbindungen von einer fiktiven IP.
So weit so gut.
Die IP haben wir ausgesperrt. Wenige Minuten später wurde diese aber gewechselt, so dass wir diese und die folgenden 10 immer wieder ausgesperrt haben.
Als nächstes hat sich unser "Besucher" angepasst und von ca. 15 IP's losgelegt. Wir haben daraufhin Syn-Cookies aktiviert (hoffe, ich habes das richtig geschrieben).
Seit Freitag Mittag hat er es also immer wieder versucht, den Server in die Knie zu zwingen.
Nun ist es Sonntag. Der Kerl hat einen Zahn zugelegt. Den Server erreichen nun jede Minute tausende von Anfragen von UNTERSCHIEDLICHEN IP's, die natürlich nicht aktiv sind.
Nach diversem Googeln habe ich noch ein paar Artikel z.B. bei Heise gefunden, die meist damit enden:
"Mit diesen Methoden kann ein Angriff stark erschwert werden. Einen kompletten Schutz stellt jedoch auch dieses Verfahren bei entsprechendem Aufwand nicht dar, wenn der Angreifer entsprechende Recourcen zur Verfügung hat (z.B. über ein Botnetz)"
Nun stellt sich die Frage, was wir weiter tun können. Da die IP's aus den unterschiedlichen Netzen kommen, haben wir da kaum eine Chance. Problematisch ist einfach, dass die Anfragen aufgrund Ihrer Vielfzahl und unterschiedlichen Herkunft kaum noch von normalen Requests unterschieden werden können.
Ungewöhnlich ist die Ausdauer von dem Kerl. Nun schon 5 Tage.
Zwei Dinge würden wir gerne tun:
1. Die Attacke so weit ausbremsen, dass der Server nicht mehr so stark belastet wird und die Besucher auch Webseiten erhalten.
2. Den Kerl finden und vor den Kadi ziehen! Der Schaden ist, wie man sich vorstellen kann, inzwischen beträchlich.
Kurz zum System:
Ein Debian 2.4 (2.6 klappt leider nicht mit dem Raid) sowie Apache 1.3...
Das ganze läuft auf einem Dual-Xeon 2,8 GHZ-System mit 4 GB Ram
Bei der Konfig wundert es mich, dass er es wirklich schafft, die 600 Slots des Apache dicht zu bekommen, da die Firewall die Verbindungen nach spätestens 3 Sekunden sperrt und die IP blockt.
Für Hilfen, Anregungen und Quellen zu weiteren Infos wäre ich sehr dankbar.
Bye,
Sebastian
Apache-Reading-Attacke - Schon 5 Tage
Re: Apache-Reading-Attacke - Schon 5 Tage
Ich hatte immer gedacht, dass IP-Spoofing nur bei UDP funktioniert, kann man das denn auch mit tcp machen?
Ansonsten hat man da IMHO wenig Chancen, was zu machen... Wenn der Angreifer soo viele IPs zur Verfügung hat, und dann auch noch unterschiedliche Seiten requestet, dann kann man nur noch hoffen, dass er es irgendwann aufgibt. Einzigste Chance sehe ich vielleicht noch im http-Agent, aber selbst wenn, sollte er da innherhalb kürzester Zeit dahinter kommen, und auch dieses "Hindernis" umgehen.
Ansonsten hat man da IMHO wenig Chancen, was zu machen... Wenn der Angreifer soo viele IPs zur Verfügung hat, und dann auch noch unterschiedliche Seiten requestet, dann kann man nur noch hoffen, dass er es irgendwann aufgibt. Einzigste Chance sehe ich vielleicht noch im http-Agent, aber selbst wenn, sollte er da innherhalb kürzester Zeit dahinter kommen, und auch dieses "Hindernis" umgehen.
-
- Userprojekt
- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
- Contact:
Re: Apache-Reading-Attacke - Schon 5 Tage
Ja. Ist halt nur "etwas" mehr Aufwand, aber gerade wenn's "nur" um DOS geht ziemlich trivial.Ich hatte immer gedacht, dass IP-Spoofing nur bei UDP funktioniert, kann man das denn auch mit tcp machen?
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
Re: Apache-Reading-Attacke - Schon 5 Tage
Es wird ja nur das erste SYN gesendet und keine komplette Verbindung aufgebaut. Daher ist auch das sehr einfach.kase wrote:Ich hatte immer gedacht, dass IP-Spoofing nur bei UDP funktioniert, kann man das denn auch mit tcp machen?
Und die benötigt er halt nichtmal, sondern nur einen Provider, der keinen Spoofing-Schutz implementiert hat; und davon gibt es halt mehr als genug. Eigentlich traurig, daß sich RFC 2827 noch nicht tumgesprochen hat.Ansonsten hat man da IMHO wenig Chancen, was zu machen... Wenn der Angreifer soo viele IPs zur Verfügung hat,
Re: Apache-Reading-Attacke - Schon 5 Tage
Hallo,
vielen Dank erst ein mal.
Wir haben hier noch ein wenig mehr gebastelt. Inzwischen hat der gute keine Chance mehr (hoffen wir) und die Serverlast ist dadurch kaum nennenswert.
Trotzdem versucht er es bis jetzt immer noch. Das kann ja nicht ewig so weitergehen. Gibt es eine Möglichkeit, ist inaktive IP's direkt beim Connect zu identifizieren und gleich zu blocken ?
Es kommt mir sowieso sehr komisch vor, dass der Kerl einfach nicht aufhört. So etwas hartnäckiges hatten wir hier noch nie.
Bye,
Sebastian
vielen Dank erst ein mal.
Wir haben hier noch ein wenig mehr gebastelt. Inzwischen hat der gute keine Chance mehr (hoffen wir) und die Serverlast ist dadurch kaum nennenswert.
Trotzdem versucht er es bis jetzt immer noch. Das kann ja nicht ewig so weitergehen. Gibt es eine Möglichkeit, ist inaktive IP's direkt beim Connect zu identifizieren und gleich zu blocken ?
Es kommt mir sowieso sehr komisch vor, dass der Kerl einfach nicht aufhört. So etwas hartnäckiges hatten wir hier noch nie.
Bye,
Sebastian
Re: Apache-Reading-Attacke - Schon 5 Tage
Was habt Ihr denn jetzt gebastelt? Vielleicht hilft lingerd, womit man die nicht mehr benötigten Verbindungen vom Apache an diesen zum Schließen übergibt? Habt Ihr keep-alive deakitviert? Es gibt doch Einstellungen bzgl. TCP/IP, womit die Verbindungs-Dauer reduziert werden kann, oder? Würde mich mal interessieren was Ihr noch so unternommen habt!
Re: Apache-Reading-Attacke - Schon 5 Tage
Vor einer Zeitlang habe ich in dem Zusammenhang mod_throttle gelesen, ggf. mal einen Blick drauf werfen, ob es euch hilft.
Aber Abwehrmaßnahmen würden mich auch interessieren, gerne auch per PM. :)
Aber Abwehrmaßnahmen würden mich auch interessieren, gerne auch per PM. :)