Arten von DDoS-Angriffen

Ihre Häufigkeit nimmt Jahr für Jahr zu. Deshalb haben wir beschlossen, diesen Artikel zu schreiben und viele DDoS-Angriffe zu erklären, denen Sie wahrscheinlich nie begegnen werden, von deren Existenz Sie aber dennoch wissen sollten. Los geht’s!


Zero-Day-DDoS

Die Bezeichnung entstand zur Beschreibung neuer DDoS-Angriffe, die bestimmte, bis dahin unbekannte Schwachstellen ausnutzen. In der Regel lassen sie sich mit entsprechenden Patches beheben. 


UDP-Typen

DNS Flood

Das ist wohl der berüchtigtste und verbreitetste DDoS-Angriff, dem Sie im Netz begegnen können. Es handelt sich um einen UDP-Flood-Angriff, der auf DNS-Server abzielt. Dass er so häufig eingesetzt wird, liegt daran, dass er schwer zu erkennen und erst recht schwer zu verhindern ist. Wie wird er ausgeführt? Der Hacker sendet eine riesige Menge gefälschter DNS-Anfragen, die sich kaum von echten unterscheiden lassen. Multiplizieren Sie das nun mit Tausenden von IPs, und schon haben Sie den Angriff.


Ihr Server kann nicht erkennen, welche Anfragen legitim sind und welche nicht. Infolgedessen gehen ihm die Ressourcen zur Verarbeitung dieser Anfragen aus, und er stürzt ab. 


UDP Flood

Der Name ist selbsterklärend. Der Angriff zielt mit UDP-Paketen auf einen Server (wie sonst). Während der DNS Flood die Hardware erschöpft, erschöpft der UDP Flood die Bandbreite. UDP-Traffic ist für Angreifer sehr praktisch, weil er nicht wie TCP-Traffic von Server und Client geprüft werden muss. Im Grunde wird ständig eine große Zahl gefälschter oder maskierter UDP-Pakete an den Server gesendet. Sie werden maskiert, damit die zurückgesendeten ICMP-Pakete ihren Host nicht erreichen und der Angriff anonym bleibt.


Direct UDP Flood

Der Direct UDP Flood verfolgt einen anderen Ansatz. Während ein gewöhnlicher UDP Flood in der Regel gefälscht ist, ist der direkte es nicht. Das hat für Angreifer gewisse Vorteile, denn der über das Botnetz laufende Traffic kann als legitim eingestuft werden, was seine Erkennung durch die betroffene Seite erschwert. Wie beim UDP Flood besteht das Hauptziel darin, die Ressourcen des Servers vollständig aufzubrauchen. 


UDP Fragmentation Flood

Eine recht interessante Variante des UDP Flood ist seine fragmentierte Version. Ähnlich wie der Direct UDP Flood imitiert er legitimen Traffic, der sich innerhalb der Grenzen bewegt. Daher ist er sehr schwer zu erkennen, weil die Pakete recht groß, aber zugleich fragmentiert sind. Er erschöpft die Bandbreite noch stärker. Stellen Sie sich vor, Sie haben Teile von drei verschiedenen Puzzles und erhalten für jedes unterschiedliche Teile, können aber nicht erkennen, welches Teil zu welchem Puzzle gehört. Multiplizieren Sie das nun mit tausend Puzzles, und Sie verstehen, wie sich Ihr Server unter einem UDP Fragmentation Flood fühlt. Eine üble Sache. 


VoIP Flood


Wir haben ihn unter UDP eingeordnet, weil er VoIP-Server mit UDP-Paketen flutet. Gefälschte Anfragen, die meist von einem riesigen Pool an IPs gesendet werden, überlasten den Server massiv. Das Problem bei VoIP ist, dass sich nur sehr schwer erkennen lässt, welcher Traffic echt ist und welcher nicht. Die Serverleistung leidet erheblich, was entweder zu schlechter Performance oder zu einem Neustart des Servers führt. 


ICMP Flood und seine Arten

ICMP Flood

ICMP nutzt dieselbe Methode wie UDP. Es gibt keinen Ende-zu-Ende-Prozess für den Datenaustausch, was es zu einer möglichen Alternative zum UDP Flood macht. Ähnlich wie bei UDP sendet der Angreifer eine große Menge an ICMP-Paketen von zahlreichen Bots mit unterschiedlichen IPs. Infolgedessen kann das System nicht alle Anfragen verarbeiten, was zu einem Neustart des Servers führt oder seine Leistung erheblich beeinträchtigt. 


ICMP Fragmentation Flood

Eine weitere Variante des vorherigen Flood ist seine fragmentierte Form. Ähnlich wie beim UDP-Pendant zerlegt der Angreifer ICMP-Pakete einfach in kleine Stücke und überlastet den Server, indem er zusammenhanglose Teile verschiedener Pakete sendet, die keinerlei Verbindung zueinander haben. Im Normalfall kann der Server damit umgehen, allerdings nur bis zu einer bestimmten Menge. Wird diese Menge überschritten, fällt der Server aus.


Ping Flood

Die Version 2.0 des ICMP Flood heißt Ping Flood. Es sind dieselben gefälschten Anfragen, die auf die Anwendung abzielen. Stellen Sie sich vor, Sie pingen einen beliebigen Server an. Sie fragen den Server: „Wie hoch ist die Latenz zwischen uns?“, und der Server antwortet, in der Regel 5- bis 10-mal. Stellen Sie sich nun vor, dass 100.000 Menschen dasselbe fragen. Verfügt die Hardware über genügend Ressourcen, kann sie das bewältigen, andernfalls fällt der Server aus. Der Traffic eines Ping Flood ist sehr schwer zu unterscheiden, weil er ebenfalls als legitim gelten kann. 


Protokollebene

NTP Flood

NTP bzw. Network Time Protocol wurde ursprünglich entwickelt, um die Zeit zwischen Uhren und Computern zu synchronisieren. Im Grunde fragt der Computer beim Hauptserver die aktuelle Uhrzeit ab und synchronisiert sie über das Paketsystem mit seiner eigenen Uhr. Dies ist eine weitere Möglichkeit, wie ein Angreifer Ihren Server angreifen kann, sofern dieser NTP nutzt, was praktisch jeder Server tut. Letztlich werden diese gefälschten Anfragen genutzt, um UDP Floods an das Ziel zu senden. Während der Server versucht zu verstehen, was was ist, bricht er schließlich unter der Datenflut zusammen.


CharGEN Flood

Das ist ein Veteran. Wir führen ihn nur der Vollständigkeit halber auf. Bereits 1984 wurde dieses Protokoll als Character Generator Protocol entwickelt und als Quelle für einen Bytestrom zum Debuggen von TCP-Netzwerkcode verwendet. Heute ist es in modernen Systemen standardmäßig blockiert. Wenn Sie also ein System finden, auf dem es noch läuft, herzlichen Glückwunsch! Sie haben ein Relikt der Vergangenheit entdeckt. Früher war es auf Netzwerkdruckern, Kopierern und anderen Geräten recht verbreitet, inzwischen ist diese Sicherheitslücke jedoch beseitigt. Ursprünglich zielte der Angreifer einfach auf dessen Port 19 und schickte darüber einen UDP Flood.


SNMP Flood

SNMP bzw. Simple Network Management Protocol ist ein Protokoll zum Verwalten, Erfassen und Ändern von Informationen über Geräte in IP-Netzwerken. Es ist eine weitere Art von Flood, die verstärkt werden kann, das heißt, der Angreifer kann mit weniger Ressourcen mehr Schaden anrichten. Er ist die attraktivere Wahl, weil der Verstärkungseffekt weit größer ist als bei DNS oder CharGEN Floods. Im Grunde zielt der Angriff auf Geräte, die dieses Protokoll nutzen, und sendet über dieses Protokoll einen Flood. 


SSDP Flood

Simple Service Discovery Protocol bzw. SSDP dient dazu, Netzwerkdienste und Präsenzinformationen anzukündigen und zu erkennen, ohne dabei DHCP oder DNS zu verwenden. Es wird meist in kleinen Büros eingesetzt, in denen die Hardware Zugriff auf das UPnP-Protokoll (Universal Plug n’ Play) hat. 2014 führte dies zu einem DDoS-Angriff auf solche Geräte, bei dem Pakete mit der gefälschten IP des Ziels an die Geräte gesendet wurden, was Serverabstürze zur Folge hatte.


HTTP-Ebene

HTTP Flood

Angreifer, die einen HTTP Flood einsetzen, überlasten den Server mit GET- und POST-Anfragen. GET-Anfragen beanspruchen dabei nicht allzu viele Ressourcen des Servers. Das kann etwa die Anfrage sein, bestimmte Bilder oder andere statische Inhalte anzuzeigen. Bei POST-Anfragen sieht es anders aus, denn sie fordern den Server in der Regel auf, etwas für sie zu verarbeiten, etwa einen bestimmten Wert in der Datenbank zu finden oder Informationen auf irgendeine Weise zu bearbeiten. Ein HTTP Flood erfordert kein IP-Spoofing, daher sind die Voraussetzungen für einen Angriff geringer. 


Fragmented HTTP Flood

Ein HTTP Flood wird immer mit Bots mit gültigen IPs durchgeführt, weil diese von Trojanern gekapert wurden. Vor dem Angriff schlummerten sie also und wussten nicht einmal, dass ihre Ressourcen für einen DDoS-Angriff genutzt werden würden. Durch die Fragmentierung kann der Angreifer den Angriff bis an die Grenze des Timeouts ausdehnen. So lässt sich die Verbindung über einen beträchtlichen Zeitraum aufrechterhalten, bevor eine Abwehr greifen kann. Apache beispielsweise verfügt über keine speziellen Timeout-Mechanismen, die Ihnen hier helfen könnten, daher nutzen Hacker dies aktiv aus.


Single Request HTTP Flood

Mit der Zeit haben Programmierer und DDoS-Schutzsysteme herausgefunden, wie sich Angriffe durch mehrere eingehende Pakete abwehren lassen, also suchten Hacker nach einem Ausweg. Daraus entstand ein weiteres Schlupfloch, das wir gleich erklären.


Alles läuft auf die Manipulation von Paketen hinaus. Was, wenn man mehrere GET/POST-Anfragen innerhalb einer HTTP-Sitzung erstellen kann? Das ist möglich, aber sie können als mehrere Pakete gezählt werden. Die Angreifer haben einen Weg gefunden, sie in einem Paket zu bündeln. Dadurch tarnt sich der Angreifer als legitimer Nutzer und ist nur sehr schwer aufzuspüren.


Single Session HTTP Flood

Eine recht alte Methode, die sich in HTTP 1.1 umsetzen lässt, indem Anfragen aus einer einzigen HTTP-Sitzung gesendet werden. Sie hilft Angreifern, die von DDoS-Abwehrmechanismen festgelegten Grenzen für die Anzahl zulässiger Sitzungen zu umgehen. 


Recursive HTTP GET Flood

Ein recht interessanter Angriff, der eine GET-Anfrage nutzt. Der Hacker ruft einige Webseiten ab und erhält Informationen über sie. Danach analysiert er jedes Objekt auf der Seite und sendet rekursive Anfragen für jedes Objekt auf der Website. Sehr schwer nachzuverfolgen, weil diese Anfragen legitim erscheinen. 


Random Recursive GET Flood

Eine Variante des vorherigen Angriffs, die vor allem auf Blogs, Websites mit fortlaufend nummerierten Seiten oder Blogs abzielt. Ähnlich wie der HTTP GET Flood durchläuft sie die Seiten und beginnt dann, zufällige Anfragen zu senden. Der Punkt ist: Um wie ein legitimer Nutzer auszusehen, muss der Angreifer zufällige Seiten auswählen und dann zufällige Nummern von der Seite wählen, um jedes Mal eine neue GET-Anfrage zu senden. Letztlich führt dies zu einer schlechten Serverleistung bis hin zu einem Neustart oder Absturz des Servers. 


ACK & SYN 

ACK & PUSH Flood

Klären wir zunächst, was ACK ist. ACK ist ein Flag, das dem Server oder dem Client anzeigt, dass die Daten erfolgreich empfangen wurden. Beispielsweise fragt der Client, ob der Server das abgesendete Formular erhalten hat, und der Server antwortet mit einem ACK, das dem Client mitteilt: Alles in Ordnung, ich habe es erhalten. Wie funktioniert nun dieser Angriff?


Der Angreifer kann verschiedene Informationen an den Server senden und ein ACK-Flag setzen, damit der Server meldet, dass er die Informationen erhalten hat. 


Das PUSH-Flag bewirkt das Gegenteil. Es fordert den Server über Pakete auf, bestimmte Informationen für ihn zu verarbeiten. 


Solche Anfragen verbrauchen mehr Ressourcen als die vorherigen Angriffe und haben Vorrang vor anderen, weil sie zu keiner Sitzung in der Verbindungsliste des Servers gehören. Dadurch verarbeitet der Server diese Anfragen zuerst und die aus der Verbindungsliste zuletzt, was zum Absturz des Servers führt.


ACK Fragmentation Flood

Diese Variante des ACK Flood verwendet eine kleine Anzahl von Paketen maximaler Größe, etwa 1.500 Byte. Das eigentliche Ziel ist hier, die Netzwerkbandbreite des Ziels zu erschöpfen. Dieser Flood ist recht raffiniert, da er Ihre Netzwerkgeräte wie Router oder Firewall leicht passieren kann, wenn keine Filter auf Anwendungsebene eingesetzt werden, weil die Pakete für diese legitim aussehen können. Die Pakete enthalten in der Regel nutzlose Daten, denn für den Angreifer gibt es keinen Grund, dort irgendwelche Informationen einzufügen, da sein Ziel lediglich darin besteht, die Bandbreite zu erschöpfen. 


SYN Flood

SYN ist die Bezeichnung für eine Verbindungsanfrage über TCP. Wenn ein Client versucht, sich per TCP mit einem Server zu verbinden (zum Beispiel beim Aufbau einer HTTP- oder HTTPS-Verbindung), muss er zunächst einen Drei-Wege-Handshake durchlaufen, bevor ein Datenaustausch zwischen Client und Server möglich ist. Da der Initiator des TCP-Drei-Wege-Handshakes immer der Client ist, sendet er zuerst ein Paket mit dem SYN-Flag an den Server.


Bei einem TCP-SYN-Flood-Angriff senden Angreifer massenhaft SYN-Pakete mit gefälschten IP-Adressen an den Server. Dadurch ist der Server gezwungen, auf jede dieser falschen Anfragen mit einem SYN-ACK-Paket zu antworten, Ressourcen zu reservieren und seine Ports „halboffen“ zu lassen, während er auf zahlreiche Antworten (Pakete mit gesetztem ACK-Flag) von Hosts wartet, die in Wirklichkeit nicht existieren und folglich keine Bestätigungen senden werden.


SYN-ACK Flood

Wir haben bereits über den Drei-Wege-Handshake gesprochen. Diese Art von Angriff zielt auf den Host. Wenn der Angreifer ein SYN-Paket sendet, erzeugt der Host ein entsprechendes ACK-Paket. Der Server kann nicht nachvollziehen, warum er solche Pakete außerhalb der Reihenfolge des legitimen Traffics erhält, und versucht, sie zu verstehen und zu verarbeiten. All das führt letztlich dazu, dass der Server zu beschäftigt ist, um den eigentlichen Traffic zu bewältigen, was einen Neustart oder Absturz des Servers zur Folge hat.


RST/FIN Flood

Wir haben über Floods vom Typ SYN gesprochen und wie sie funktionieren. Nach dem Schließen jeder TCP-SYN-Sitzung sollte ein Austausch von RST- oder FIN-Paketen erfolgen. Wenn ein RST/FIN Flood beginnt, erhält der Server gefälschte Pakete, die zu keiner der aktuell bestehenden Sitzungen des Servers gehören. Ähnlich wie beim SYN-ACK Flood kann der Server nicht erkennen, woher sie stammen, verwendet viel Zeit auf ihre Verarbeitung und scheitert schließlich daran. 


IP-Ebene

Fake Session Attack

Diese Art von Angriff verwendet keine gefälschten IPs, sondern die echten IP-Adressen der angreifenden Bots. Zwischen Server und Bot wird eine TCP-SYN-Sitzung aufgebaut. Der Angriff wird so durchgeführt, dass die Sitzung durch Verzögern der ACK-Pakete in ein Timeout läuft. Leere Sitzungen erschöpfen den Server zunehmend, bis er schließlich ausfällt oder nur noch schlecht funktioniert.


IP Null Attack

Jeder IPv4-Header muss gemäß RFC Informationen über das verwendete Transportprotokoll enthalten. Der Null-Angriff hat seinen Namen von der „Null“, die Angreifer in dieses Feld eintragen. Das bedeutet, dass diese Pakete Router oder Firewalls umgehen, weil sie undefiniert oder nicht kategorisiert sind. Heute ist dieser Wert für die IPv6 Hop-by-Hop Option reserviert, was aber nicht bedeutet, dass heute jeder Server diese Art von Paketen tatsächlich verarbeiten kann. Multiplizieren Sie das nun mit Tausenden, und der Server fällt aus.


Angriffe auf Anwendungsebene

Angriffe auf Anwendungsebene zielen auf bestimmte Schwachstellen ab. Eines der beliebtesten Ziele sind Server, auf denen verschiedene CMS wie WordPress, Drupal oder  Joomla laufen. Natürlich schließen diese Projekte Sicherheitslücken stets, doch Hacker finden von Zeit zu Zeit bestimmte Schwachstellen. Eine andere Möglichkeit ist, die Datenbanken des Opfers mit SQL-Injections anzugreifen. Letztlich kann der Server die gefälschten Anfragen nicht mehr bewältigen und fällt aus. Stellen Sie sicher, dass Sie die neuesten CMS-Versionen verwenden und Ihre Datenbank von Fachleuten administriert wird. 


Application Misuse Attack

Diese Art von Angriff lässt sich nicht gegen jedes Unternehmen ausführen. Das Opfer muss etwas hosten, das viel Traffic erzeugt, und es muss einen weiteren Server geben, an den dieser gesamte Traffic gehen kann. Das ähnelt einigen Flussläufen, die man manuell auf den Zielserver des Opfers umleitet, um ihn zum Absturz zu bringen. Die Methode bleibt dieselbe: Der Server wird mit übermäßigem Traffic überlastet. Das Hauptproblem dabei ist, dass der Traffic tatsächlich legitim ist, weil die Server versuchen, eine legitime Verbindung herzustellen. 


Fazit

Wir haben versucht, die meisten DDoS-Angriffe abzudecken, denen Sie begegnen können. Sicherlich haben wir einige übersehen, aber wir denken, dass Sie nun einen allgemeinen Überblick darüber haben, welche Arten von DDoS-Angriffen es gibt. Vielen Dank für Ihre Zeit!



Blog