Was tun gegen DDOS auf Webserver?

worel

Well-Known Member
Hallo!

Ich grüble und tüftle schon einige Tage herum, wie man einen DDOS Angriff am ehesten abschwächen kann.

Im Grunde ist es schon mal ein Problem zu definieren, was denn ein DDOS "Angriff" ist. Was für den dicken Webserver Cluster kein Problem ist, rückt den kleinen Webserver an den Rand des ko's.

Jedenfalls stehen folgende Maßnahmen zur verfügung:

- mod_security (gut, keine gegenmaßnahme für DOS per se)
- mod_evasive (eigentlich auch nur bei DOS hilfreich, für weitreichendes DDOS wahrscheinlich nicht geeignet - wie auch)
- Firewall Limits bezüglich syn, sessions auf source und destination

Alles schön und gut. Aber eigentlich kann ich mich damit nur gegen Hosts schützen, die es it dem Verbindungsaufbau wissentlich übertreiben damit dann Schwellwerte überschritten werden (-> Sperre)

Unterschied zwischen DDOS und einem Ansturm auf die Firmenhomepage durch zigtausende ernsthafte Kunden? Gibts eigentlich nicht, naja, die einen wollen den Service killen, die anderen deine Produkte sehen. Aber das Ergebnis wäre dasselbe -> Service überlastet.

Hilft es wirklich nur die Server bezüglich dem zu erwartendem Ansturm zu dimensionieren? Oder habt ihr weitere Strategien zum Thema DDOS?

-> hoffen und beten dass man nie Opfer von DDOS wird gilt nicht ;-)
 
DDOS ist eigentlich schon etwas anderes. Beim DDOS geht man absichtlich an den Server mit Anfragen, die ihn am effektivsten auslasten.

Wenn Du so eine Website hast, die mit normaler Nutzung zu kämpfen hat, dann kannst Du Dir vorstellen wie da jemand vielfach mehr Schaden anrichten kann, wenn er Dich effizient mit Anfragen zupflastert.

Es gibt Strategien, um die Last von Servern zu nehmen. Meistens läuft das darauf hinaus an arbeitsintensiven Stellen zu optimieren. Vielleicht braucht ein Kunde nicht immer die aktuellsten Daten in der ersten Übersicht, sondern gecachte/statische unverbindliche Angaben. Vielleicht gehen die Kunden und machen den nächsten Klick gar nicht?

Du musst etwas das Nutzerverhalten studieren, abgucken wie Webseiten innerhalb des Themas Deiner Domäne strukturiert sind und notfalls selbst das Gehirn benutzen.

Ich gebe Dir ein Beispiel. Wenn Du zum Beispiel in der Einstiegsseite ein Skript hast, welches rekursiv Verzeichnisse durchgeht und Dir den Inhalt eines git-Repositorys (gitweb ;) ) aller Deiner Projekte anzeigt. Dann hast Du es Dir mit vielen Leuten verscherzt, die eigentlich die Info von der nächsten Seite haben wollen, die nur einen Teil der Last erzeugt, verglichen mit der Frontseite.
 
Jup, der Einstieg sollte halt möglichst "lightweight" sein.

Aber auch eine "403 forbidden" Seite generiert Last, auch wenn eine kleine...

Habe ein wenig gegoogelt und es gibt tatsächlich Anbieter, welche einem nen Proxyservice verkaufen welcher angeblich DDOS erkennt und verhindert. Sauteuer das ganze. Wie der unterscheiden will ob es um einen Kundenansturm oder es sich um ein echtes DDOS handelt ist mir nicht klar. (evtl. gibts da ja Muster die charakteristisch sind)

HAProxy hat ein interessantes Feature: "Connection Tarpitting"
Funktioniert laut eigener Aussage aber "nur bei kleinen DDOS Angriffen" -> ein paar tausend Zombies. Naja, ist ja auch schon was.

Konkret habe ich derzeit nicht das Problem, aber ich bastle grad an einer experimentellen Webserver Farm mit allemöglichem Schnickschnack.

Achja: mod_spamhaus für Apache schreibt sich auch (unter anderem) DDOS Protection auf die Fahnen. So unrecht haben die nicht, aber das Teil arbeitet halt mit DNSBL. (durchaus nicht schlecht)
 
Eigentlich gibt es gegen DDOS keine Rezepte. Wenn Du Dich auf irgendwelche Garantien einlassen willst, dann sei da skeptisch und frag nach wie es funktioniert.

Aber wie gesagt, ein Kundenansturm sollte Deine Seite nicht zerlegen. Die "Anti-DDOS-Maßnahme" die hier greift böte Dir eher eine kontraintuitive Lösung und würde Deinen Kunden in die Wüste schicken. Das ist eher nicht das was Du willst. Du willst ja Deine Kunden bedienen können.
 
*g* allein die Tatsache, dass riorey auf der Startseite nen Screenshot mit IE hat lässt das Produkt in einem schlechten Licht erscheinen...

Ich würde sagen, wenn man eine Seite hat, die 1. Es sich nicht leisten kann down zu sein und 2. Gefahr läuft geDDOSt zu werden sollte man sich eine vielseitige Strategie überlegen, in der ausreichende Kapazität vom Server her eine wesentliche Rolle spielt.

Packetfiler nehmen den Antwort Traffic raus, Caches erhöhen die Performance extrem. Gegebenenfalls und wenn möglich sehr Kostspielige Services nur eingeloggten Usern zur Verfügung zu stellen (Dann kann nür über billige Dinge geDDOSt werden). etc. Ich denke man kann sich da was ausdenken.

EDIT: Hehe, kommt auf den Service an, aber man kann ja z.B. eingeloggte User von einem ganz anderen Server bedienen, somit sind die schonmal nicht betroffen.
 
Gegen gezielte DDoS hilft eigentlich nur, den Dienst temporär vom Netz zu nehmen bzw. über vorgeschaltete Filter (teure Hardware-Boxen, die richtig was abkönnen) den erzeugten Traffic so weit zu drücken, dass Dein(e) Server damit noch zurande kommen. Auf den Servern selbst kann man die Latte zwar höher legen (Syncookies, Paketfilter & Co), aber ein willensstarker Angreifer braucht dann bloß die Anzahl der Zombies etwas zu erhöhen, und schon stehst Du wieder an der Wand.

Layer-7-Filter wie mod_security oder mod_evasive machen es einem Angreifer potenziell sogar etwas leichter, weil er die Server schon mit dem (recht arbeitsintensiven) Filtern auf Layer 7 allerfeinst beschäftigen kann, bis sie zu nix anderem mehr Kapazität haben.

In den prominenteren Fällen (Microsoft, Heise, Schlundtech) haben die Angreifer aber dermaßen viele Bots mobilisiert bekommen, dass sich sogar die Infrastruktur (Router etc) in die Hosen gemacht hat. Dann kommt der Traffic zwar gar nicht mehr bis zu den ge-ddosten Systemen durch, aber eben auch kein legitimer Traffic => genauso effektiver DoS...
 
wie nakal schon schrieb gibt es gegen DDoS ansich kein rezept. zumindest nicht wenn der angreifer ueber ein botnetz verfuegt was gross genug ist und ein bisschen ahnung hat.

man pflastert sich zu und wenn man fertig ist, stellt man fest, dass der angreifer einfach das ziel ein hop frueher attackiert.
 
Zurück
Oben