DoS Attacke - Tipps?

  • Betroffene Version
    WoltLab Suite 5.2

    Kleine tragische Geschichte: Jemand hat richtig Spaß uns mit billigen DoS Attacken ziemlich effektiv Schaden anzurichten.

    Idee ist ganz simpel: Ein Bot ruft ganz viele nicht existierende Seiten im Forum auf. So viele, dass die Apache Worker komplett ausgelastet sind und MySQL an die Grenzen geht.

    Verursacht wird das mutmaßlich dadurch, dass ja gecheckt werden muss, ob die gesuchte Unterseite existiert und dann wird natürlich jede Session einzeln in MySQL vom Forum gespeichert.

    Habt ihr da Vorschläge, wie ich da am effektivsten die Auswirkungen abflachen lassen kann, sodass nicht alles einknickt?


    Haben jetzt erstmal paar Übergangslösungen (Limits für IPs usw.) auf dem Server hinzugefügt, aber die schönste Lösung ist es natürlich nicht.

    Habt ihr da Tipps, was sich da nun eigenen würde? (bspw. dass invalide Anfragen gefiltert werden?)

  • markusmarkusz 27. Juni 2020 um 01:04

    Hat den Titel des Themas von „DoS Attacke“ zu „DoS Attacke - Tipps?“ geändert.
  • Cloudflare hilft meiner Erfahrung nach aber nur wenn man das recaptcha davor schaltet, der Under Attack bzw. JS-Challenge hilft bei gescheiten Botnetzen nicht viel. Es sei denn es hat sich bei Cloudflare mittlerweile betreffend diesem Thema was geändert.

    ┌П┐(◉_◉)┌П┐

  • Cloudflare hilft meiner Erfahrung nach aber nur wenn man das recaptcha davor schaltet, der Under Attack bzw. JS-Challenge hilft bei gescheiten Botnetzen nicht viel. Es sei denn es hat sich bei Cloudflare mittlerweile betreffend diesem Thema was geändert.

    Die JS Challenge ist genau so nutzlos wie vorher auch.

  • Dann bringt "Unter Attack" oder "JS-Challenge" genauso wenig wie früher auch :D

    Das einzige was geholfen hat war "Recaptcha" davor zu schalten indem man verschiedene Länder dazu zwingt.

    Gibs eigentlich mittlerweile eine andere Möglichkeit das Recaptcha davor zu schalten außer die Länder dazu zu "zwingen"? Vielleicht über eine Page-Rule wenn mal eine Attacke stattfindet?

    Weil das die ganze Zeit aktiviert zu lassen, stört Besucher schon extrem bzw. schreckt einige bereits vor dem Besuch ab :D

    ┌П┐(◉_◉)┌П┐

  • Die Frage ist, ist das wirklich nur ein DoS oder eher ein DDoS Angriff?

    Weil bei einem DoS kannst du das relative einfach selber machen und das am Webserver. Möglichkeit eins, wenn es immer die gleiche IP ist, einfach auf die Blacklist und per iptables blockieren.

    Ansonsten kannst du ganz einfach ein Rate Limit einsetzen, es wird die Last nicht auf 0 bringen aber wenn du das rate Limit richtig einsetzt, so das normale Benutzer nicht beeinträchtigt werden, dann sollte der bot nicht den ganzen Server und Seite lahmlegen können.


    Sollte es aber ein DDoS Angriff sein, dann hilft wie oben schon gesagt wurde nur ein externer Dienst oder eine passende Infrastruktur des Hosters mit DDoS Erkennung und Abwehr.

  • Das ganze dürfte nicht als DoS-Attacke eingestuft werden.

    Prinzip hinter einer DoS-Attacke (oder auch DDoS) ist das Reservieren von Pufferspeicher in Routern und Netzwerkkarten beim Verbindungsaufbau über TCP während des Handshakes, indem beim sogenannten 3-Way-Handshake die letzte Bestätigung des Verbindungsaufbau nicht erneut bestätigt wird. Hier werden also insbesondere die begrenzte Hardware des Server ausgenutzt.

    Hier handelt es sich viel mehr um ein einfaches Ausnutzen der Technik von Apache.

    Apache startet bei jeder Anfrage einen Worker, der allein für diese Anfrage gedacht ist, bis diese abgearbeitet ist. Das klappt bei einigen wenigen 100 Anfragen pro Sekunde vielleicht gut, wird aber bei mehreren (und vor allem länger andauernden) Anfragen schnell zum Verhängnis, da sich Apache mit seinem eigenen System in die Knie zwingt, weil es einfach keine Threads mehr gestartet bekommt, weil der Server überlastet ist. Es ist hier also mehr eine Überlastung durch Software.

    Abhilfe schafft am Ehesten eine Umstellung auf einen anderen Webserver, sofern dies möglich ist. Insbesondere nginx bleibt seinem Motto "High Performance Web Server" treu, indem es durchgehend Worker bereit hält, um Anfragen zu bearbeiten. Die Anzahl, die bereit gehalten wird, kannst du entsprechend konfigurieren. Standardmäßig sind es glaube ich 8 Threads. Hier fällt also das Anfrage-gesteuerte Starten der Worker weg, das zu einer Überlastung führen kann.

    Damit aber nginx auch mehr als dann nur 8 Anfragen gleichzeitig bearbeiten kann, nutzt nginx nebenbei noch eine Event-Loop. Nginx reicht die Anfragen quasi an PHP oder andere Systeme, z.B. Node.js-Webserver oder andere Software, weiter und hakt die Anfrage erstmal ab. Irgendwann liefert der Webserver dann eine Antwort, die durch die Event-Loop von nginx erfasst wird und durch diese dann dem Nutzer bereitgestellt wird.

    Node.js nutzt die gleiche Funktionsweise.

    Ich hoffe ich bin nicht zu weit vom Thema abgekommen und konnte trotzdem das nötigste nennen. Ich tendiere gerne zum ersteren :D

    Gruß

    ilou

  • Cloudflare.

    Bin ich noch am Überlegen.

    Die Frage ist, ist das wirklich nur ein DoS oder eher ein DDoS Angriff?

    Weil bei einem DoS kannst du das relative einfach selber machen und das am Webserver. Möglichkeit eins, wenn es immer die gleiche IP ist, einfach auf die Blacklist und per iptables blockieren

    Es ist eine DoS Attacke, leider auch nicht die erste. Bisher haben wir sie nur immer ignoriert, da die Angriffe auf den Webserver bisher nie wirklich Auswirkungen hatten und meist ziemlich schwach waren.

    Die IP konkret in diesem Fall haben wir logischerweise gesperrt, aber es wird vermutlich ja nicht die letzte sein.

    Das ganze dürfte nicht als DoS-Attacke eingestuft werden.

    Prinzip hinter einer DoS-Attacke (oder auch DDoS) ist das Reservieren von Pufferspeicher in Routern und Netzwerkkarten beim Verbindungsaufbau über TCP während des Handshakes, indem beim sogenannten 3-Way-Handshake die letzte Bestätigung des Verbindungsaufbau nicht erneut bestätigt wird. Hier werden also insbesondere die begrenzte Hardware des Server ausgenutzt.

    Was du beschreibst klingt, wenn ich mich gerade nicht irre, nach einem SYN Flood.

    Unser Problem befindet sich mehr auf Software-Ebene (Layer 7).

    Hier handelt es sich viel mehr um ein einfaches Ausnutzen der Technik von Apache.

    Apache wirkte zwar kraftlos, aber am Schluss ist der Server abgestürzt/gekillt worden, da das Forum zu viele Anfragen an die MySQL Datenbank geschickt hat und der MySQL Server den gesamten Server auf 100% über längere Zeit hinweg ausgelastet hat.

  • DDoS-Arten gibt es viele.

    Ein Umstieg auf Cloudflare wird nicht viel helfen wenn dem Angreifer die IP des Backends bekannt ist wird es wohl seine Angriffsweise ändern und direkt auf die IP hauen oder sonst irgendwie. Naja außer es ist ein Script-Kiddie was nicht wirklich Ahnung davon hat was er macht :D

    Layer 7 konnte ich in Vergangenheit nur migrieren indem ich Cloudflare recaptcha davor geschaltet habe, vorher natürlich die IP des Servers gewechselt.

    Und ob nun nginx oder apache irgendwann gehen beide in die Knie das hat damit nicht viel zu tun.

    Große Botnetze haben soviel Rechner da kannste nicht viel mehr machen wenn die alle auf dein System feuern.

    ┌П┐(◉_◉)┌П┐

  • Die Frage ist, ist das wirklich nur ein DoS oder eher ein DDoS Angriff?

    Weil bei einem DoS kannst du das relative einfach selber machen

    Das war nämlich auch sofort mein erster Gedanke, schon beim Lesen des Titels.

    Einzelne DoS Angriffe sind inzwischen eigentlich recht selten und auch nicht unbedingt weiter "gefährlich".

    Wenn jemand wirklich echten Schaden anrichten und evtl. auch einen Server-Verbund in die Knie zwingen will, nutzt er dazu eher große Bot-Netze und sorgt für "flächendeckende Befeuerung".

    So wurden bekanntlich schon ganze Formen-Netzwerke namhafter (auch IT-) Unternehmen temporär auf den Boden gezwungen und dagegen hat man zunächst kaum Chancen.


    Die Frage ist: Betreibst Du den Server selber, oder steht ein Hoster samt Support dahinter? Denn dann wäre ja zunächst der einzuschalten und auch die Hoster gehen i.d.R. dann (vesuchsweise) zunächst über einen Reverse-Proxy, bevor sie die Domain im Extremfall temporär abschalten um Schlimmeres zu verhindern.

    Gruß

    Jörg

    (Jaydee)

  • Weil es zunächst auch immer schwer zu unterscheiden ist, ob ein Aufruf nun "ernst gemeint, gutmütig" ist oder in zerstörerischer Absicht erfolgt.

    Solange man externen Zugriff auf ein Netzwerk, eine Domain gewährt, muss man theoretisch immer auch mit solchen Dingen rechnen.

    Ebenso wie sich in Foren nicht nur "liebe User" registrieren können, sondern auch Bots und Nervensägen.

    Das wird man nie gänzlich verhindern können.

    Gerade dieser Umstand macht DDoS ja so nervig und umgekehrt effizient für potentielle Angreifer. Einen 100% Schutz gibt es auch dagegen nicht.

    Gruß

    Jörg

    (Jaydee)

  • Ein Umstieg auf Cloudflare wird nicht viel helfen wenn dem Angreifer die IP des Backends bekannt ist wird es wohl seine Angriffsweise ändern und direkt auf die IP hauen oder sonst irgendwie. Naja außer es ist ein Script-Kiddie was nicht wirklich Ahnung davon hat was er macht :D

    Das stimmt. Wobei es zumindest die Auswirkungen mildern könnte, da es ja primär Anfragen an den Webserver sind und man eine Umleitung über Cloudflare zumindest auf Software-Ebene erzwingen kann. Natürlich existiert trotzdem eine gewisse Auslastung, aber damit könnte zumindest die Datenbank geschont werden.

    Einzelne DoS Angriffe sind inzwischen eigentlich recht selten und auch nicht unbedingt weiter "gefährlich".

    Sie sind selten. Aber wenn sie unbemerkt bleiben und der Server abschmiert bzw. gekillt wird, weil kein Verantwortlicher es sofort bemerkt, ist es halt blöd.

    Die Frage ist: Betreibst Du den Server selber, oder steht ein Hoster samt Support dahinter? Denn dann wäre ja zunächst der einzuschalten und auch die Hoster gehen i.d.R. dann (vesuchsweise) zunächst über einen Reverse-Proxy, bevor sie die Domain im Extremfall temporär abschalten um Schlimmeres zu verhindern.

    Wir betreiben den Server selbst.

    Gerade dieser Umstand macht DDoS ja so nervig und umgekehrt effizient für potentielle Angreifer. Einen 100% Schutz gibt es auch dagegen nicht.

    Korrekt. Aktuell arbeiten wir deswegen auch an Konzepten, wie wir vor allem den Layer 7 Attacken entgegenwirken können.

  • Abseits von technischen Tipps würde ich noch empfehlen, Anzeige bei der Polizei zu erstatten. Geht heute oft online. Ob es was bringt, ist zwar meist fraglich, aber unmöglich auch nicht. Ist nur etwas zeitaufwendig, alle Beweise zu sichern (Logs usw.). Ich hatte mir vor einigen Jahren mal die Mühe gemacht, in meinem Fall wurden die Ermittlungen aber irgendwann eingestellt, weil ein Täter nicht zu ermitteln war.

    Ansonsten half bei mir nur Abwarten, bis derjenige seine Lust verlor.

  • King555

    Wird vermutlich leider nichts bringen.

    Die Beweisführung ist leider zu dünn. Haben ja nichts weiter als einen access-Log von Apache. Und der zeigt nur, dass etwa 30 Minuten lang der Webserver mit Anfragen geflutet wurde und dann der Webserver verendet ist. Alles weitere (Datenbankbelastung, Server Absturz, etc.) geht daraus nicht hervor.

    Und eine Textdatei ist nun mal kein ausreichender Beleg.

    Aktuell geben wir unser bestes die Attacken durch eigene Software (Filter, Proxy, usw.) zu mitigieren. Aber wenn eine neue Form von Angriffen stattfindet, dauert des logischerweise jedes Mal.

  • OK, das ist wirklich etwas wenig. Ich hatte etwas mehr. Die Attacken liefen drei Monate lang und derjenige hat sich öfters mal per Mail und PN zu Wort gemeldet und in einem Hackerforum damit geprahlt.

  • Das ist ja auch immer eine Frage des "öffentlichen Interesses".

    Solange nur ein einzelnes Forum und eine Domain betroffen ist, wird eine Staatsanwaltschaft das wahrscheinlich nicht sehen und vermutlich auch nicht weiter verfolgen.

    Das sähe bei Firmen wie Microsoft oder deutschen Behörden schon ganz anders aus.

    Gruß

    Jörg

    (Jaydee)

  • Das ist ja auch immer eine Frage des "öffentlichen Interesses".

    Solange nur ein einzelnes Forum und eine Domain betroffen ist, wird eine Staatsanwaltschaft das wahrscheinlich nicht sehen und vermutlich auch nicht weiter verfolgen.

    Das sähe bei Firmen wie Microsoft oder deutschen Behörden schon ganz anders aus.

    Bei DDoS Attacken sollte meiner Meinung nach immer ein öffentliches Interesse vorliegen.

    Es gibt zu viele Fälle, wo alles klein anfing und aus einzelnen Attacken hochkriminelle Energie entstand. (Mirai, zuletzt der Vorfall mit der DKB, uvm.)


    Aber mal zum Ursprungsthema: Vorschläge, wie ich den Server gegen solche Attacken sichern kann? Das größte Problem sind eben die Auswirkungen auf die Datenbank, welche durch die vielen Zugriffe auf's Forum überproportional ausgelastet wird.

  • Abseits von technischen Tipps würde ich noch empfehlen, Anzeige bei der Polizei zu erstatten. Geht heute oft online. Ob es was bringt, ist zwar meist fraglich, aber unmöglich auch nicht. Ist nur etwas zeitaufwendig, alle Beweise zu sichern (Logs usw.). Ich hatte mir vor einigen Jahren mal die Mühe gemacht, in meinem Fall wurden die Ermittlungen aber irgendwann eingestellt, weil ein Täter nicht zu ermitteln war.

    Ansonsten half bei mir nur Abwarten, bis derjenige seine Lust verlor.

    Oder man ergreift sofort die richtigen Mittel zur Abwehr und hat Ruhe. Hierbei Anzeige zu erstatten, bringt nichts, gerade dann, wenn Booter eingesetzt werden. Das würde sich wahrscheinlich nur lohnen, wenn jemand seine "UDP-Kanone" auspackt und von einer einzigen IP flooded.

  • Das ist ja auch immer eine Frage des "öffentlichen Interesses".

    Sehe ich nicht so, Straftat ist Straftat, oder nicht?

    wird eine Staatsanwaltschaft das wahrscheinlich nicht sehen und vermutlich auch nicht weiter verfolgen.

    In meinem Fall hat sie das meiner Meinung nach getan, es kam nur eben nichts dabei raus. ;) Wobei ein User, den ich verdächtigt hatte, tatsächlich schnell ermittelt und befragt wurde. War nur dummerweise ein Unbeteiligter.

    Oder man ergreift sofort die richtigen Mittel zur Abwehr und hat Ruhe

    Wenn man die hat, klar. Damals brachte selbst ein komplettes Sperren aller Anfragen via iptables nichts, weil einfach die Netzwerkkarte zu 100% ausgelastet war. Mein Server hatte allerdings auch "nur" 100 MBit/s zu dem Zeitpunkt.

    Vorschläge, wie ich den Server gegen solche Attacken sichern kann?

    Ich hatte damals ganz gute Erfolge mit "ddos deflate". Hat zwar auch Unschuldige gesperrt, aber wer vorsichtig war, konnte das Forum nutzen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!