Seit Anfang September haben die DDoS-Schutzsysteme von Cloudflare eine Kampagne mit hypervolumetrischen DDoS-Angriffen auf L3/4 bekämpft. Durch unsere Abwehrmaßnahmen konnten im Monatsverlauf mehr als hundert hypervolumetrische DDoS-Attacken auf L3/4 abgewehrt werden, von denen viele die Schwelle von 2 Milliarden Paketen pro Sekunde und 3 Terabit pro Sekunde (Tbit/s) überschritten haben. Der größte Angriff erreichte einen Spitzenwert von3,8 Tbit/s. Es handelte sich dabei um den höchsten jemals von einem Unternehmen öffentlich bekannt gegebenen Wert. Die Erkennung und Abwehr erfolgte völlig autonom. In den folgenden Diagrammen sind zwei separate Angriffe auf denselben Cloudflare-Kunden dargestellt, die autonom abgewehrt wurden.
Ein 65 Sekunden langer, abgewehrter DDoS-Angriff mit 3,8 Tbit/s
Ein 60 Sekunden langer, abgewehrter DDoS-Angriff mit 2,14 Mrd. Paketen pro Sekunde
Cloudflare-Kunden sind geschützt
Cloudflare-Kunden, die HTTP-Reverse-Proxy-Dienste von Cloudflare (z. B. unsere WAF oder unser CDN) nutzen, sind automatisch geschützt.
Das gleiche gilt für Cloudflare-Kunden, die Spectrum und Magic Transit verwenden. Magic Transit-Kunden können ihren Schutz weiter optimieren, indem sie mit Magic Firewall-Regeln ein strenges positives und negatives Sicherheitsmodell auf Paketebene durchzusetzen.
Andere Internetpräsenzen und Webanwendungen sind möglicherweise nicht geschützt
Das Ausmaß und die Häufigkeit dieser Angriffe sind beispiellos. Aufgrund ihrer schieren Größe und der Anzahl von Bits/Paketen pro Sekunde können sie ungeschützte Websites und Internetanwendungen ebenso lahmlegen wie Internetpräsenzen, die durch lokale Ausrüstung oder durch Cloud-Dienstleister geschützt werden und nicht über ausreichende Netzwerkkapazitäten oder die globale Abdeckung verfügen, um solche Traffic-Mengen zusammen mit legitimem Datenverkehr ohne Beeinträchtigung der Performance zu bewältigen.
Cloudflare stehen jedoch die Netzwerkkapazität, die globale Abdeckung und die smarten Systeme zur Verfügung, die erforderlich sind, um diese riesigen Angriffe automatisch abzufangen.
In diesem Blog-Beitrag gehen wir näher auf die Angriffskampagne ein und erläutern, weshalb die Attacken so schwerwiegend sind. Wir beschreiben den Aufbau eines DDoS-Angriffs auf Layer-3/4, seine Ziele und die Art und Weise, wie solche Attacken generiert werden. Anschließend erläutern wir, wie die Systeme von Cloudflare diese monströsen Angriffe autonom erkennen und abwehren konnten, ohne die Performance die Kunden zu beeinträchtigen. Wir beschreiben die wichtigsten Aspekte unserer Verteidigungsmaßnahmen – angefangen damit, wie unsere Systeme (dynamische) Echtzeit-Signaturen generieren, um den Angriffs-Traffic abzugleichen, bis hin dazu, wie wir Kernel-Funktionen zum verzögerungsfreien Verwerfen von Paketen einsetzen.
Analyse der Kampagne
Wir haben beobachtet, dass diese Angriffskampagne sich unter anderem gegen mehrere Kunden aus der Finanzdienstleistungs-, Internet- und Telekommunikationsbranche richtet. Sie zielt auf die Auslastung der Bandbreite und auf die vollständige Beanspruchung der Ressourcen interner Anwendungen und Geräte ab.
Die Angriffe nutzen überwiegend UDP über einem festen Port und kamen aus der ganzen Welt, wobei größere Teile davon ihren Ursprung in Vietnam, Russland, Brasilien, Spanien und den USA hatten.
Die Angriffe mit hoher Paketrate scheinen von mehreren Arten von kompromittierten Geräten zu stammen – darunter MikroTik-Geräte, DVR und Webserver. Die Geräte wurden so orchestriert, dass sie das Ziel gemeinsam mit außergewöhnlich großen Mengen an Traffic bombardieren. Die Attacken mit hoher Bitrate scheinen von einer großen Anzahl kompromittierter ASUS-Heimrouter zu kommen, die wahrscheinlich mithilfe einer kürzlich von Censys entdeckten Sicherheitslücke – CVE 9.8 (Critical) – ausgenutzt wurden.
Anteil der beobachteten Pakete nach Ausgangsstandort
Anatomie von DDoS Angriffen
Bevor wir darauf eingehen, wie Cloudflare die größten jemals beobachteten DDoS-Angriffe automatisch erkannt und abgewehrt hat, ist es wichtig, die Grundlagen von DDoS-Attacken zu verstehen.
Vereinfachte Darstellung eines DDoS Angriffs
Ziel eines DDoS (Distributed Denial of Service)-Angriffs ist es, legitimen Nutzern den Zugriff auf einen Dienst zu verweigern. Das geschieht in der Regel durch die Ausschöpfung der für die Bereitstellung des Dienstes erforderlichen Ressourcen. Im Kontext der jüngsten DDoS-Angriffe auf Layer-3/4 handelt es sich bei diesen Ressourcen um CPU-Zyklen und Netzwerk-Bandbreite.
Vollständige Beanspruchung der CPU-Zyklen
Die Verarbeitung eines Pakets beansprucht CPU-Zyklen. Bei regulärem Traffic (der nicht zu einem Angriff gehört) sorgt ein legitimes Paket, das von einem Dienst empfangen wird, dafür, dass dieser Dienst eine Aktion ausführt. Verschiedene Aktionen erfordern unterschiedliche Mengen an CPU-Rechenleistung. Bevor ein Paket jedoch überhaupt an einen Dienst übermittelt wird, sind für jedes einzelne Paket gewisse Arbeitsschritte erforderlich. Layer3-Paket-Header müssen aufgespalten und verarbeitet werden, damit das Paket an den richtigen Rechner und die richtige Schnittstelle übermittelt wird. Layer4-Paket-Header müssen verarbeitet und gegebenenfalls an den richtigen Socket weitergeleitet werden. Es kann mehrere zusätzliche Verarbeitungsschritte bei der Überprüfung jedes Pakets geben. Wenn ein Angreifer also mit einer ausreichend hohen Paketrate sendet, beansprucht er unter Umständen die verfügbaren CPU-Ressourcen in vollem Umfang, sodass der Dienst legitimen Nutzern nicht mehr zur Verfügung steht.
Um sich vor Angriffen mit hoher Paketrate zu schützen, müssen Sie die bösartigen Pakete mit so wenigen CPU-Zyklen wie möglich prüfen und verwerfen können, damit noch genügend CPU-Leistung zur Verarbeitung der gutartigen Pakete vorhanden ist. Sie können zwar auch mehr oder schnellere CPU für die Verarbeitung anschaffen, das ist aber oft sehr langwierig und kostenintensiv.
Vollständige Ausschöpfung der Bandbreite
Bei der Bandbreite handelt es sich um die Gesamtdatenmenge pro Zeit, die an einen Server übermittelt werden kann. Man kann sich die Bandbreite wie eine Leitung vorstellen, durch die Wasser fließt. Mit einem Strohhalm wird eine viel kleinere Menge Wasser befördert als mit einem Gartenschlauch. Wenn ein Angreifer in der Lage ist, mehr Schrott-Daten in die Leitung zu drücken, als diese übermitteln kann, werden nicht nur die bösartigen, sondern auch die gutartigen Daten am Anfang der Leitung verworfen. Das bedeutet, dass der DDoS-Angriff erfolgreich ist.
Sich vor Angriffen zu schützen, mit denen die Netzwerkbandbreite voll ausgeschöpft werden kann, ist unter Umständen schwierig, weil man nur sehr wenig tun kann, wenn man am Ende der voll ausgelasteten Leitung angesiedelt ist. Tatsächlich stehen nur wenige Möglichkeiten zur Auswahl. Erstens: Sie legen eine größere Leitung. Zweitens: Sie finden einen Weg, den gutartigen Traffic in eine neue Leitung zu verlagern, die nicht voll ausgelastet ist. Drittens: Es gelingt Ihnen, dass die vorgelagerte Stelle das Senden von Daten ganz einstellt oder einschränkt.
Generierung von DDoS-Angriffen
Wenn man darüber nachdenkt, was das aus Sicht der Angreifer bedeutet, wird klar, dass für diese ähnliche Einschränkungen gelten. So, wie das Empfangen eines Pakets CPU-Zyklen beansprucht, ist das auch bei der Erstellung eines Pakets der Fall. Wären die Kosten für das Senden und Empfangen eines Pakets gleich hoch, wäre für das Generieren eines Angriffs die gleiche CPU-Leistung erforderlich wie für seine Abwehr. In den meisten Fällen ist das nicht der Fall. Es besteht eine Kostenasymmetrie, weil der Angreifer in der Lage ist, Pakete mit weniger CPU-Zyklen zu erzeugen, als für den Empfang derselben Pakete benötigt wird. Die Generierung von Angriffen ist aber keineswegs kostenlos und kann ebenfalls eine hohe CPU-Leistung erfordern.
Die vollständige Sättigung der Bandbreite kann sich für einen Angreifer sogar noch schwieriger gestalten. Dafür muss er nämlich in der Lage sein, mehr Bandbreite einzusetzen, als dem Zieldienst zur Verfügung steht. Er muss sogar die Kapazität des empfangenden Diensts übersteigen können. Das ist so schwierig, dass für einen Angriff auf die Netzwerkbandbreite am häufigsten die Reflection-/Amplification-Methode eingesetzt wird, zum Beispiel in Gestalt einer DNS-Amplification-Attacke. Dabei kann der Angreifer ein kleines Paket an einen Zwischendienst senden, der dann ein großes Paket an das Opfer schickt.
Bei beiden Szenarien muss der Angreifer viele Geräte erwerben oder auf sie zugreifen, um den Angriff auszuführen. Diese Geräte können auf verschiedene Weise erworben werden. Es kann es sich um Serverrechner von Cloud-Anbietern oder Hosting-Diensten handeln, oder um kompromittierte Geräte wie DVR, Router und Webcams, die mit der Schadsoftware des Angreifers infiziert wurden. Gemeinsam bilden diese Geräte ein Botnetz.
So bietet Cloudflare Schutz vor großen Angriffen
Nachdem wir die grundlegende Funktionsweise von DDoS-Angriffen erläutert haben, wollen wir nun darauf eingehen, wie Cloudflare Schutz davor bieten kann.
Verteilung der Angriffsfläche mit globalem Anycast-Netzwerk
Zunächst einmal ist das Netzwerk von Cloudflare nach der Anycast-Methode aufgebaut. Kurz gesagt erlaubt Anycast, dass eine einzelne IP-Adresse von mehreren Rechnern auf der ganzen Welt bekannt gegeben wird. Ein an diese IP-Adresse gesendetes Paket wird vom nächstgelegenen Rechner zugestellt. Wird also ein dezentrales Botnetz für einen Angriff genutzt, verteilt sich dieser über das gesamte Cloudflare-Netzwerk: Ein infizierter DVR in Dallas (Texas) sendet Pakete an einen Cloudflare-Server in Dallas und eine infizierte Webcam in London sendet Pakete an einen Cloudflare-Server in London.
Anycast- und Unicast-Netzwerke
Unser Anycast-Netzwerk ermöglicht es Cloudflare außerdem, Rechen- und Bandbreite so nah wie möglich an den Regionen zuzuweisen, wo sie am dringendsten benötigt werden. Dicht besiedelte Regionen erzeugen größere Mengen an legitimem Traffic und die Rechenzentren in diesen Regionen verfügen über mehr Bandbreite und CPU-Ressourcen, um diesen Anforderungen gerecht zu werden. Regionen mit geringer Bevölkerungszahl generieren natürlich weniger legitimen Traffic, sodass die Cloudflare-Rechenzentren dort entsprechend dimensioniert werden können. Weil Angriffs-Traffic hauptsächlich von kompromittierten Geräten ausgeht, sind diese in der Regel so verteilt, dass sie den normalen Traffic-Strömen entsprechen und den Angriffsdatenverkehr anteilig an die Rechenzentren senden, die ihn verarbeiten können. Auf ähnliche Weise wird der Traffic innerhalb eines Rechenzentrums auf mehrere Rechner verteilt.
Das Netzwerk von Cloudflare bietet bei Angriffen mit hoher Bandbreite aber noch einen weiteren Vorteil. Ein großer Teil des Datenverkehrs innerhalb des Cloudflare-Netzwerks verbraucht die Bandbreite nicht in symmetrischer Weise. Die HTTP-Anfrage einer Seite von einer Website, der Cloudflare vorgeschaltet ist, stellt beispielsweise ein relativ kleines eingehendes Paket dar, erzeugt aber eine größere Menge an ausgehendem Traffic zurück zum Client. Somit verlässt das Cloudflare-Netzwerk tendenziell viel mehr legitimer Datenverkehr, als es empfängt. Die Netzwerkanbindungen und die zugewiesene Bandbreite sind jedoch symmetrisch, sodass eine große Eingangsbandbreite für den Empfang von volumetrischem Angriffs-Traffic zur Verfügung steht.
Erstellung von Echtzeit-Signaturen
Wenn Sie einen einzelnen Server in einem Rechenzentrum erreicht haben, ist die Bandbreite des Angriffs bereits so weit verteilt, dass keine der vorgelagerten Anbindungen voll ausgelastet ist. Das heißt aber nicht, dass der Angriff schon vollständig gestoppt wäre, denn die bösartigen Pakete wurden noch nicht verworfen. Dazu müssen wir den Datenverkehr stichprobenartig untersuchen, einen Angriff einstufen und Regeln erstellen, um die schädlichen Pakete zu sperren.
Für die stichprobenartige Prüfung des Datenverkehrs und das Verwerfen schädlicher Pakete ist unsere l4drop-Komponente zuständig. Diese setzt XDP (eXpress Data Path) und eine erweiterte Version der Berkeley-Paketfilterung, bekannt als eBPF (extended BPF), ein. Dadurch sind wir in der Lage, benutzerdefinierten Quellcode im Kernelspace auszuführen und jedes Paket direkt auf Ebene der Netzwerkschnittstellenkarte zu verarbeiten (also zu verwerfen, weiterzuleiten oder anzupassen). Diese Komponente hilft dem System, Pakete effizient zu verwerfen, ohne übermäßige CPU-Ressourcen auf dem Rechner zu beanspruchen.
Die DDoS-Abwehr von Cloudflare im Überblick
Wir verwenden XDP, um Pakete stichprobenartig auf verdächtige Attribute zu untersuchen, die auf einen Angriff hinweisen. Beispiele umfassen unter anderem Felder wie Quell-IP-, Quell-Port, Ziel-IP-, Ziel-Port, Protokoll, TCP-Flags, Sequenznummer, Optionen und Paketrate. Diese Analyse wird vom Denial-of-Service-Daemon (dosd) durchgeführt. Dosd ist unsere Geheimwaffe. Die Lösung verfügt über viele Filter, die ihr auf Grundlage unserer kuratierten Heuristiken sagen, wann die Abwehr eingeleitet werden soll. Diese Filter sind für unsere Kunden logisch nach Angriffsvektoren gruppiert und werden als verwaltete DDoS-Regeln offengelegt. Bis zu einem gewissen Grad können unsere Kunden bei Bedarf das Verhalten anpassen.
Wenn dosd Proben von XDP erhält, generiert die Lösung mehrere Permutationen von Fingerprints für verdächtige Traffic-Muster. Mithilfe eines Daten-Streaming-Algorithmus identifiziert dosd dann die optimalen Fingerprints zur Bekämpfung des Angriffs. Sobald der Angriff kategorisiert wurde, veröffentlicht dosd intern eine Abwehrregel als eBPF-Programm, um den Angriffsdatenverkehr mit chirurgischer Präzision zu unterbrechen.
Die Erkennung und Abwehr von Angriffen durch dosd erfolgt auf Ebene der Server, der Rechenzentren und auf globaler Ebene – und all dies ist softwaredefiniert. Das macht unser Netzwerk extrem widerstandsfähig und führt zu einer nahezu sofortigen Abwehr. Es gibt keine Scrubbing-Center oder -Geräte, die außerhalb des Netzwerkpfads liegen. Stattdessen läuft auf jedem Server der vollständige Stack der Cloudflare-Produktreihe, einschließlich der Komponente zur DDoS-Erkennung und -Abwehr. Und das alles geschieht autonom. Jeder Server überträgt (per Multicast) auch Abwehranweisungen innerhalb eines Rechenzentrums zwischen Servern und weltweit zwischen Rechenzentren. Damit ist sichergestellt, dass dosd bereits intern Abwehrregeln installiert hat – unabhängig davon, ob es sich um einen lokalisierten oder einen global verteilten Angriff handelt.
Starke Verteidigung gegen starke Angriffe
Unsere softwaredefinierten, autonomen Systeme zur Erkennung und Abwehr von DDoS-Angriffen werden in unserem gesamten Netzwerk ausgeführt. In diesem Blog-Beitrag haben wir uns hauptsächlich auf unsere dynamischen Fingerprinting-Funktionen konzentriert. Unser Arsenal an Verteidigungssystemen ist aber noch weitaus größer. Die Advanced TCP Protection- und Advanced DNS Protection-Systeme erkennen gemeinsam mit unserem dynamischen Fingerprinting ausgeklügelte und hochgradig randomisierte TCP-basierte DDoS-Angriffe. Außerdem setzen sie statistische Analysen ein, um komplexe DNS-basierte DDoS-Attacken zu durchkreuzen. Unsere Abwehrmaßnahmen umfassen auch Echtzeit-Bedrohungsdaten, Traffic-Profile und Machine Learning-Klassifizierung als Teil unseres adaptiven DDoS-Schutzes zur Bekämpfung von Datenverkehrsanomalien.
Gemeinsam bauen diese Systeme sowie die gesamte Bandbreite unserer Sicherheitsdienste auf dem Cloudflare-Netzwerk auf, einem der größten Netzwerke der Welt. So wird sichergestellt, dass unsere Kunden auch vor den mächtigsten Angriffen der Welt geschützt sind.