Wie DDoS Protections funktionieren

Wie DDoS Protections funktionieren

Information: Dieser Beitrag richtet sich an Leser, mit Grundkenntnissen in der IT

In diesem Beitrag möchten wir erklären, wie DDoS Protections funktionieren, welchen wichtigen Zweck diese im heutigen Internet haben und wie diese eingesetzt und implementiert werden können.

DDoS Angriffe versuchen heutzutage nicht nur Websiten und Anwendungen in die Knie zu zwingen, sondern werden inzwischen auch zum ablenken von wirklich fatalen Attacken genutzt.

DDoS Angriffe sind für Unternehmen und Projekte eine tatsächliche Gefahr. Denn um diese abzuwehren benötigt man meist teure und wartungsintensive Software- & Hardware. Warum dies so ist, werden wir gleich erklären, wenn wir darauf eingehen, was ein DDoS Angriff im Internet eigentlich so macht.

Was heißt eigentlich DoS oder DDoS?

DoS oder auch DDoS sind zwei, fast identische Arten von Angriffen. Ausgeschrieben bedeutet der Begriff Distributed Denial of Service, eine schöne deutsche Übersetzung davon gibt es eigentlich nicht. Aber wenn man es versuchen würde direkt in Deutsche zu übersetzen, käme so etwas wie “(verteilte) Dienstblockade” heraus. Im Grunde geht es darum, einen Dienst mit Anfragen so lange zu überfordern, bis der Dienst aufhört zu funktionieren, weil er mit der Masse nicht klar kommt. Wenn das Wort “Distributed” voran gehängt wird, bedeutet es, dass der Angriff von mehreren Systemen kam, ohne das “Distributed“, dass die Anfragen von einem Dienst kam.

Ein Beispiel aus dem realen Leben wäre, dass wir bei einem Unternehmen so oft und in so hoher Masse anrufen, dass die Telefone einfach nicht mehr aufhören zu klingeln. Die Mitarbeiter:innen wären ab einem bestimmten Moment, mit den ganzen Anfragen so überfordert, dass diese aufhören die Telefonate entgegenzunehmen oder ihre Arbeit abbrechen, weil sie einfach nicht mehr können.

Wozu dient ein DDoS Angriff?

Es gibt verschiedene Gründem, warum Angreifer die Dienste von anderen damit Angreifen. So kann dies aus reiner Lust & Laune der Angreifer passieren, damit diese den Betrieb einfach stören, es kann aber auch dazu dienen, absichtlich ein Projekt oder einen Ablauf eines Unternehmens oder Projekts zu stören, damit daran nicht mehr weiter gearbeitet werden kann. So können Datenbankserver von Unternehmen angriffen werden, damit die Mitarbeiter:innen nicht mehr arbeiten können.
Ein anderer, immer häufiger, Grund dient zur Ablenkung vor einem richtigen fatalen Angriff. Meist erholen sich die Systeme nach einem Angriff selbst wieder, z.B. durch einen Neustart oder einfach nach dem Ende des Angriffs. Jedoch können Angreifer die Systeme mit dem Angriff auch von außen blockieren, damit diese im inneren Änderungen vornehmen können. So kann das System in der Zwischenzeit gehackt werden und externe Monitorings erkennen dies einfach nicht.

Das OSI-Model

Wie ein Angriff geschieht, hängt vom der Schicht des OSI-Models ab, auf welchem der Angreifer attackiert.

Das OSI-Modell ist ein konzeptioneller Rahmen, der ein Netzwerk- oder Telekommunikationssystem modelliert, das aus 7 verschiedenen “Schichten” (auf englisch “Layern”) besteht:

File:OSI Model - en.png
Quelle: https://commons.wikimedia.org/wiki/File:OSI_Model_-_en.png / Michel Bakni 

DDoS-Angriffe finden am häufigsten auf der Netzwerk- (Schicht 3) oder Transportschicht (Schicht 4) statt und werden als volumetrische Angriffe bezeichnet (Greifen also die Hardware an). Angriffe auf Schicht 6 (Präsentation) und Schicht 7 (Anwendung) gelten als anspruchsvoller: Sie sind oft niedrig und langsam, aber die Ergebnisse können ebenso verheerend sein.

Arten von Angriffen

Wie ein DDoS Angriff auf ein System gestartet wird, kann unterschiedlich sein. Wir möchten hier einmal die Top-5 der häufigsten Angriffe aufzählen:

UDP Flood

TCP und UDP sind die im Internet am häufigsten verwendeten Kommunikationsprotokolle. Ein Angriff auf diese Protokolle findet daher am häufigsten statt. Der unterschied zwischen diesen beiden Protokollen liegt darin, das TCP nicht paketorientiert ist, sondern schreibt eher in einem Stream. UDP ist, im Gegensatz zum TCP, ein verbindungsloses, paketorientiertes Protokoll. Das bedeutet, es werden einzelne Pakete verschickt, die in der falschen Reihenfolge, doppelt oder sogar gar nicht ankommen können. Damit ist der Versendet das Problem auch los, den er muss sich nicht darum kümmern, dass das Paket im ganzen ankommt, wie es bei TCP der Fall ist.

In der Regel wird UDP für Anwendungen und Dienste verwendet, die mit Paketverlusten umgehen können oder sich selber um das Verbindungsmanagement kümmern. Typisch sind DNS-Anfragen, VPN-Verbindungen, Audio- und Video-Streaming.

Der Täter sendet die Ziel-UDP-Pakete mit falschen bzw. manipulierten Informationen, wobei die Ziel-Netzwerkressource das UDP-Paket nicht mit den richtigen zugeordneten Anwendungen abgleichen kann und gibt dadurch eine Fehlermeldung an. Wenn dies oft wiederholt wird, kann das System überfordert werden und letztendlich nicht mehr reagieren.

DNS Flood

DNS bzw Domain-Name-Server sind Server, welche Domainnamen in ihre Ziel IP-Adresse umwandeln. So wird z.B aus devstorage.eu -> 185.244.164.203.

Bei einer DNS Flood wird der Server also mit der Übersetzung dieser einfach überfordert.

Ähnlich dazu ist die DNS Amplification Attack, welche wir hier erklärt haben: https://devstorage.eu/dns-amplification-attack/

SYN Flood

Ein SYN-Flood greift Systeme an, welche TCP-Dienste anbietet (z. B. Webserver oder E-Mail-Server). Eine SYN-Flood ist eine Art von TCP State-Exhaustion-Attacke, die versucht einen Server für legitimen Daten-Traffic nicht verfügbar zu machen, indem er alle verfügbaren Serverressourcen verbraucht. Diese Art des DDoS-Angriffs kann selbst leistungsfähige Geräte, die Millionen von Verbindungen aufrechterhalten können, zum Erliegen bringen.

Beim Aufbau einer TCP-Verbindung sendet ein Rechner ein Synchronisationsflag an den Zielrechner. Der Zielrechner sendet dann eine Empfangsbestätigung an den anfragenden Rechner, woraufhin dieser mit einem Acknowledgement Flag (ACK) antwortet.

Beim SYN-Flooding wird das Internet von einem Host mit TCP-Paketen mit Synchronisationsflags geflutet, wobei eine nicht existierende Quelladresse verwendet wird. Jedes einzelne Datenpaket wird vom angewählten Server als eine Verbindungsanfrage behandelt. Der entsprechende Server bestätigt die Anfrage mit einer Empfangsbestätigung mit gesetztem Acknowledgement-Flag und wartet dann auf die Antwort des sendenden Terminals.

Da der anfragende Server aber nicht wirklich existiert, wird der Server keine Antwort erhalten. Der Server sendet nach einem Timout dann nochmals eine Acknowledgement-Flag Anfrage und wartet dann nochmal einige Zeit. Solang ist die Verbindung weiterhin offen und der Server arbeitet. Der Server kann jedoch nur eine begrenzte Anzahl an Anfragen dieser Art abarbeiten und da diese so lange benötigen, ist dieser irgendwann überfordert und geht in die Knie.

HTTP Flood

HTTP steht für Hypertext Transfer Protocol und ist das grundlegende Internet Protokoll für Internetseiten. Tatsächlich sollte man es in der Browser-Adressleiste sofort sehen, mit einem zusätzlichen “S“, das für sicheres HTTP steht (Hypertext Transfer Protocol Secure).

Die HTTP-Flood ist eine Art von DDoS-Attacke, die auf die Anwendungsschicht (Layer 7 im OSI Model) der Ziel-Website oder des Ziel-Dienstes abzielt. Im Allgemeinen zielt diese Flood darauf ab, eine Zielseite oder einen Internet-Dienst unzugänglich machen, indem sie die verfügbare Bandbreite verbraucht.

Um diesen Angriff auszuführen, werden entweder GET-Anfragen, die den Server nach statischen Inhaltskomponenten abfragt, oder POST-Anfragen, die nach dynamischen Inhaltskomponenten fragt, gestellt. POST-Anfragen sind in der Regel am effektivsten, da die dynamische Erstellung von Inhalten einer komplexer Prozess für einen Server ist, während GET-Anfragen für den Angreifer einfach zu generieren sind und der daraus resultierende GET-basierte Angriff leichter mit einem Botnet skalieren kann. Unabhängig davon, welche Art von Anfrage verwendet wird, nutzen Angreifer HTTP-Floods, um die ressourcenintensivsten Komponenten der Ziel-Website anzufordern, um den Server möglichst effektiv auszulasten.

Ein Beispiel wäre z.B. eine Suchanfrage mit dahinterliegender Datenbank, mit Post Request zu bombardieren. So muss der Webserver immer eine Datenbankverbindung aufbauen und die Datenbankabfrage an die Datenbank schicken. Dabei können dann der Webserver als auch der Datenbankserver mit den Anfragen überfordert sein und ihren Dienst beenden.

ICMP (Ping) Flood

Das Internet Control Message Protocol (ICMP) ist ein Fehlermeldeprotokoll. Bekannt für “Ping”. Im Grunde nutzt man “Ping” um eine kurze Abfrage zu stellen, ob der Server am Ende erreichbar ist und wie lange die Verbindung dauert. Aus dem Ping lässt sich z.B. möglicher Paketverlust oder eine langsame Anbindung feststellen.

Dabei wird eine kleine Anfrage vom Client an den Server gestellt, wobei der Server eine große Anzahl an Informationen an den Client zurücksendet. Eine Ping-Flut ist einfach eine Flut von Ping-Anfragen, sodass die Netzwerkbandbreite des Zielsystems, bei dem Versuch jede Anfrage zu beantworten, zu viel wird und den Dienst beendet.

Was macht die DDoS Protection nun dagegen?

Es gibt mehrere Möglichkeiten, das Netzwerk und/oder die Anwendungen vor DDoS-Angriffen zu schützen. Die größte Herausforderung dabei ist, wie man zwischen legitimem und bösartigem Datenverkehr unterscheidet.

Es gibt heute viele DDoS-Minderungsmethoden, um diese Herausforderung zu meistern, jede mit ihren eigenen Vor- und Nachteilen. Dennoch gibt es drei gängige DDoS-Schutzmethoden, die heute angewandt werden: Clean-Pipe-Methode, CDN-Dilution und TCP/UDP-DDoS-Proxy:

Clean pipe

Das Ziel der “Clean pipe” Methode ist, den gesamten eingehenden Verkehr durch die “Client pipe” laufen zu lassen.

In dieser Clean Pipe wird bösartiger Traffic von legitimem Traffic unterschieden und getrennt, und nur der legitime User-Traffic wird zum Server durchgelassen. Die Clean Pipe Schutzmethode ist mittlerweile sehr beliebt und wird von vielen Hostern (ISP) und DDoS Mitigation Services angeboten. In der Vergangenheit haben ISPs eingehende DDoS-Attacken üblicherweise mit Blackholing abgeschwächt, bei dem der gesamte Traffic, auch der legitime, komplett abgewiesen wird.

Nachteiler bei dieser Art von Abwehr ist jedoch zum einen, dass sie nicht sehr effektiv beim Schutz vor paketbasierten und Application Flood-Angriffen (Layer 7 DDoS-Attacken) ist und sie ziemlich schwierig und teuer zu implementieren ist. Man brauchst einen BGP (Border Gateway Protocol Router) und Hardware, die in der Lage ist, einen GRE-Tunnel zu terminieren.

CDN dilution

CDN, oder Content Delivery Network, ist ein System von verteilten Netzwerken, das Inhalte an die Nutzer ausliefert. So werden die Server, die dem Nutzer am nächsten sind, zum Antworten genutzt und nicht der ursprüngliche Server.

Ein CDN-System hat also zwei entscheidende Vorteile, um das System vor DDoS-Attacken zu schützen: Erstens, da viele Server beteiligt sind, ist die Summe der Bandbreite viel größer. Mit der riesigen Bandbreite kann die CDN-Technologie effektiv Layer-3 oder Layer-4 DDoS-Attacken abwehren.
Zweitens ist der ursprüngliche Server nicht derjenige, der auf die Anfrage des Nutzers antwortet, und so ist es für jeden DDoS-Angriff viel schwieriger, diesen Server zu erreichen. Das soll nicht heißen, dass die CDN dilution DDoS protection perfekt ist, denn es gibt auch einige Nachteile, wie zum Beispiel die hohe Kosten für die Server, welche meist Weltweit verbreitet sind. CDNs sind nur für Webanwendungen anwendbar und können nicht für proprietäre TCP/UDP Anwendungen verwendet werden.

TCP/UDP Proxy

Wenn die Website/Plattform aus TCP- oder UDP-Diensten wie E-Mail (SMTP), SSH-Zugang, Gaming-Diensten und anderen besteht, solltest man wissen, dass deren offene Ports Anfälligkeiten für DDoS-Angriffe sind.

Um dieses Problem anzugehen, wird ein TCP/UDP-basierter Proxy platziert, der ähnlich wie die CDN dilution DDoS protection funktioniert. Bei dieser Methode werden Datenpakete an den TCP/UDP Reverse Proxy geschickt, der dann bösartigen Traffic und Pakete herausfiltert.

Nachteil daran ist jedoch, dass das Backend die Client IP nicht erfährt. Loginsysteme oder Region-Blocking können somit nicht an diese Daten kommen.

Wie die DDoS Protection in Systemen eingebaut werden kann

Die Methode, wie die DDoS Protecion nun in unser System implementiert werden kann, ist unterschiedlich. Daher beschreiben wir hier einmal ein paar Modelle davon:

On-premise DDoS protection model

Bei diesem Modell wird das DDoS-Schutzsystem auf dem Gelände des Unternehmens (d.h. im Hauseigenen Rechenzentrum) implementiert. Der Vorteil dieses Modells liegt auf der Hand: Du hast die direkte Kontrolle über alles und kannst daher jeden Aspekt des DDoS-Schutzsystems jederzeit aktualisieren, ändern, hinzufügen oder entfernen.

Besonders gut ist das bei Unternehmen, die Software und Infrastruktur haben, die auf verschiedene Arten geschützt werden muss. Ebenfalls kann dadurch ein schneller Eingriff, bei einem Angriff, erfolgen.

Cloud-based DDoS protection model

Beim Cloud basierten DDoS Schutz kommen erstmal geringere Kosten auf den Kunden zu, als wenn das Unternehmen oder Projekt die Schutzsysteme selbst wartet und kauft. Denn die Wartung übernimmt nun ein externes Unternehmen, was bessere und ggf. größere Systeme besitzt.

Daher sind viele Kunden dazu übergegangen, Cloud-basierte DDoS-Schutzlösungen einzusetzen, die im Allgemeinen erschwinglicher sind, da hier nicht in eigene Infrastruktur und Ausrüstung investieren werden muss.

Man ist jedoch auch auf die angebotenen Schutzmaßnahmen eingeschränkt, welche der Cloudanbieter anbietet. Denn dieser wird für einen Endkunden meist nicht seine Systeme anpassen.

Hybrid DDoS protection model

Wie der Name zu erahnen gibt, kombiniert dieser Schutz das Beste aus beiden Systemen und schafft eine Kompaktlösung aus lokalen und cloud basiertem Schnutz.

Einer der Hauptvorteile dieses Ansatzes ist die Möglichkeit, ein mehrstufiges System zu implementieren, bei dem DDoS-Angriffe auf niedriger Ebene (Layer 3 und Layer 4) mit einem lokalen-Schutz auf Netzwerkebene wie IP-Reputation-Integration und robusten Firewalls entschärft werden. Gleichzeitig kann die Anwendungsebene die SSL-Terminierung und die Web-Applikations-Firewall übernehmen. Cloud-basierter Schutz kann hingegen Großattacken abfangen, welcher für lokale Hardware meist zu schwer zu handeln sind.

Autor: Thomas Michaelis

Quellen:
https://www.net.t-labs.tu-berlin.de/teaching/computer_networking/03.05.htm
https://www.allot.com/docs/ddos-attack-handbook.pdf
https://commons.wikimedia.org/wiki/File:OSI_Model_-_en.png
https://de.wikipedia.org/wiki/Denial_of_Service
http://www.highgames.com/?set=hardwareview&view=8

administrator
X