Beschleunigte DDoS-Abwehr mit eBPF in F5 NGINX App Protect DoS

NGINX | 05. April 2023

Der Kampf gegen DDoS-Angriffe entwickelt sich stetig weiter. Im Bericht zu den DDoS-Angriffstrends 2023, analysierte F5 Labs aktuelle Daten aus drei Jahren zu verteilten Denial-of-Service-Angriffen (DDoS) und stellte fest, dass Angreifer zwar weiterhin komplexe Multi-Vektor-DDoS-Angriffe einsetzen, inzwischen jedoch auch vermehrt reine Angriffe auf Anwendungsebene (Layer 7) starten. Allein im Jahr 2022 nahm die Häufigkeit von Layer-7-Angriffen um 165 % zu.

Diagramm mit der Anzahl der DDoS-Angriffe nach Angriffstyp (volumetrisch, protokollbasiert, anwendungsbasiert und Multi-Vektor) für die Jahre 2020 bis 2022
Anzahl der DDoS-Angriffstypen von 2020 bis 2022, die einen starken Anstieg der Anwendungsangriffe und einen entsprechenden Rückgang der volumetrischen und Multi-Vektor-Angriffe zeigt.

In der Regel wählen Angreifer den einfachsten Weg, um ihr Ziel zu erreichen – sei es, den Betrieb einer Website zu verhindern oder ein Ziel zu erpressen. Dieser Anstieg der Angriffe auf Layer 7 könnte darauf hindeuten, dass es zunehmend schwieriger wird, einen DDoS-Angriff ausschließlich mit einer volumetrischen oder protokollbasierten Strategie durchzuführen, und dass sich Angriffe auf Anwendungsebene als effektiver erweisen.

Moderne Anwendungen mit eBF und XDP schützen

Bei der Abwehr von DDoS-Angriffen auf Ihre Anwendungen ist es wichtig, technologische Fortschritte wann immer möglich zu nutzen, um die Wahrscheinlichkeit zu maximieren, dass Ihre Anwendungen verfügbar bleiben (und Ihre Benutzer zufrieden sind). Obwohl die Technologie Extended Berkeley Packet Filter (eBPF) mit eXpress Data Path (XDP) bereits seit 2014 existiert, erfreut sie sich derzeit in Entwickler-, SRE- und Betriebsteams zunehmender Beliebtheit, da Microservices und Cloud-native-Architekturen immer häufiger eingesetzt werden.

eBPF

eBPF ist eine virtuelle Maschine (VM) der Sicherungsschicht im Linux-Kernel, mit der Benutzer Programme sicher und effizient ausführen können. Zudem erweitert eBPF die Funktionen des Kernels zur Laufzeit, ohne den Kernel-Quellcode zu ändern oder zusätzliche Kernelmodule hinzuzufügen. eBPF ist ereignisgesteuert – es erkennt bestimmte Aktivitäten auf einem Linux-Host und führt entsprechende Aktionen aus. Diese Technologie bietet vollständige Transparenz über den gesamten Stack von Anwendungen und Anwendungsdiensten und ermöglicht es, Verbindungen und Transaktionen zwischen Microservices und Endbenutzern nachzuverfolgen. Der Umfang der verfügbaren Daten ist beträchtlich. Damit lassen sich dringende Anforderungen an die Observability erfüllen, das Netzwerkverkehrsmanagement und die Laufzeitsicherheit analysieren sowie dank des grundsätzlich effizienten Designs die Rechenkosten senken.

Sehen Sie sich das Video „Was ist eBPF?“ von F5 DevCentral an, um einen kurzen Überblick über die eBPF-Technologie zu erhalten.

XDP

XDP bietet den Vorteil einer leistungsstarken Netzwerkverarbeitung. Es ermöglicht Programmen im Userspace, Netzwerkpaketdaten direkt zu lesen und zu schreiben sowie zu entscheiden, wie ein Paket behandelt werden soll, bevor es die Kernel-Ebene erreicht. Mit dieser Technologie können Entwickler ein eBPF-Programm an einen Low-Level-Hook anbinden, der vom Netzwerkgerätetreiber im Linux-Kernel implementiert wird.

Wie nutzt NGINX App Protect DoS eBPF?

NGINX App Protect DoS ist eine fortschrittliche, verhaltensbasierte Lösung zur Abwehr von DDoS-Angriffen auf Layer 7, die auf NGINX Plus und dem NGINX Ingress Controller ausgeführt wird, um HTTP- und HTTP/2-Anwendungen vor Angriffen wie Slowloris und HTTP Flood zu schützen. Kurz gesagt schützt NGINX App Protect DoS vor Angriffen auf Anwendungsebene, die einfache Lösungen zur Abwehr von Netzwerk-DDoS-Angriffen nicht erkennen können.

Diagramm mit den Arten von Angriffen, vor denen NGINX App Protect DoS schützt
NGINX App Protect DoS kann auf NGINX Plus am Load Balancer oder API-Gateway sowie auf dem NGINX Ingress Controller oder innerhalb des Clusters als Proxy pro Pod oder pro Service bereitgestellt werden. Zudem lässt es sich für agile DevOps problemlos als „Security as Code“ in CI/CD-Pipelines integrieren.

Bei Verwendung mit NGINX App Protect DoS bietet eBPF das Potenzial für eine deutlich höhere Kapazität zur Abwehr von DDoS-Angriffen. NGINX App Protect DoS nutzt eBPF (das im NGINX Ingress Controller selbst nicht verfügbar ist) als Teil einer mehrschichtigen Lösung, die Abwehrmaßnahmen beschleunigt, indem sie den Datenverkehr böswilliger Akteure blockiert. Diese werden anhand ihrer Quell-IP-Adresse identifiziert – entweder allein oder in Kombination mit TLS-Fingerprinting.

Sehen wir uns nun die grundlegende Funktionsweise von NGINX App Protect DoS in drei Phasen an: Anomalieerkennung, dynamische Regelerstellung und adaptives Lernen, und Regeldurchsetzung.

Anomalieerkennung

NGINX App Protect DoS überwacht Ihre geschützte Anwendung kontinuierlich und erstellt mithilfe von maschinellem Lernen ein statistisches Modell des Anwendungs- und Clientverhaltens. Die Lösung beobachtet den Datenverkehr in Echtzeit und erfasst über 300 HTTP-Anforderungsmetriken, um eine umfassende, fortlaufend aktualisierte Baseline für Aktivität und Leistung zu erstellen. Neben der passiven Überwachung des Anwendungsdatenverkehrs führt NGINX App Protect DoS auch aktive Zustandsprüfungen der Anwendung durch und überwacht Metriken wie Antwortzeiten und verworfene Anfragen.

Wenn die Anwendung Ziel eines Layer-7-DDoS-Angriffs wird, weichen die Antwortzeiten (oder Fehlerraten) der Anwendung vom erlernten Modell ab, und das Anwendungsschutzsystem wird aktiviert.

Dynamische Regelerstellung und adaptives Lernen

Nachdem eine Anomalie erkannt wurde, erstellt NGINX App Protect DoS dynamisch Regeln, um schädlichen Datenverkehr zu identifizieren und zu blockieren. Damit legitime Benutzer auf die Anwendung zugreifen können, während böswillige Angreifer blockiert werden, erstellt es ein statistisches Bild des Clientverhaltens, um zu ermitteln, welche Benutzer zum Angriff beitragen und welche nicht.

Neben dem Einsatz dynamischer Signaturen zur Abwehr von Angriffen misst NGINX App Protect DoS kontinuierlich die Wirksamkeit der Abwehrmaßnahmen und nutzt adaptives Lernen, um dauerhaft einen robusten Anwendungsschutz zu gewährleisten und Zero-Day-Angriffe abzuwehren. Sobald die Clients und Anfragen identifiziert wurden, die einen Angriff verursachen, erstellt es eine Regel, um diesen Datenverkehr zu blockieren.

NGINX App Protect DoS setzt eine mehrschichtige Verteidigungsstrategie um, die Folgendes umfasst:

  • Blockieren böswilliger Akteure anhand der IP-Adresse oder des TLS-Fingerabdrucks
  • Blockieren schädlicher Anfragen anhand von Angriffssignaturen
  • Globale Ratenbegrenzung anwenden

Diese drei Schutzmaßnahmen werden schrittweise angewendet, um Angreifer so weit wie möglich zu blockieren, ohne legitime Nutzer zu beeinträchtigen. Der Großteil der Blockierungsaktivitäten findet jedoch häufig bereits in der ersten Phase statt, in der entweder eine Kombination aus IP-Adresse und TLS-Fingerabdruck oder ausschließlich die IP-Adresse blockiert wird. Glücklicherweise handelt es sich dabei genau um die Regeltypen, die sich mit einem eBPF-Programm wirksam durchsetzen lassen.

Regeldurchsetzung

NGINX App Protect DoS verwendet die erstellten Regeln und wendet sie auf den eingehenden Anwendungsdatenverkehr an, um schädliche Anfragen zu blockieren. Da der gesamte Anwendungsdatenverkehr über den NGINX Plus-Proxy an die Backend- (oder Upstream-)Anwendung weitergeleitet wird, werden alle Anfragen, die den Blockierungsregeln entsprechen, einfach verworfen und nicht an die Backend-Anwendung weitergeleitet.

Obwohl NGINX Plus ein Hochleistungs-Proxy ist, kann die durch die Angriffs- und Abwehrregeln verursachte zusätzliche Arbeitslast die verfügbaren Ressourcen der Plattform, auf der NGINX ausgeführt wird, dennoch überlasten. Hier kommt eBPF ins Spiel. Durch eine ausschließlich auf IP-Adressen basierende Blockierung oder deren Kombination mit einer auf IP-Adressen und TLS-Fingerabdrücken basierenden Blockierung im Kernel kann schädlicher Datenverkehr frühzeitig auf der Transportschicht (Layer 4) geprüft und blockiert werden. Dies ist wesentlich effizienter als die Verarbeitung durch NGINX im Userspace.

Wenn NGINX App Protect DoS auf unterstützten Plattformen Regeln erstellt, um Angreifer anhand der Quell-IP-Adresse oder des TLS-Fingerabdrucks zu blockieren, werden diese Regeln in ein eBPF-Bytecode-Programm kompiliert, das beim Auftreten von Netzwerkereignissen (sogenannten Hooks) vom Kernel ausgeführt wird. Löst ein bestimmtes Netzwerkereignis die Regel aus, wird der Datenverkehr frühzeitig auf Layer 4 verworfen. Dadurch lässt sich die DDoS-Abwehr beschleunigen, bevor der Datenverkehr Layer 7 erreicht. Da all diese Vorgänge im Kernel stattfinden, sind sie äußerst effizient und können mehr Datenverkehr filtern (bevor die Ressourcen erschöpft sind), als wenn die Regeln im User Space implementiert werden.

Diagramm, das zeigt, wie NGINX App Protect DoS eine eBPF-codierte Regel im Kernel aufruft, um einen Angreifer abzuwehren
NGINX App Protect DoS mit eBPF blockiert schädlichen Datenverkehr bereits im Kernel, bevor er den User Space erreicht. Dadurch wird die DDoS-Abwehr beschleunigt und der Rechenaufwand reduziert.

Aktivieren der eBPF-beschleunigten Abwehr in NGINX App Protect DoS

Die beschleunigte Abwehr von NGINX App Protect DoS ist für die folgenden Linux-Distributionen verfügbar:

  • Alpine 3.15+
  • Debian 11+
  • RHEL 8+
  • Ubuntu 20.04+

Führen Sie die folgenden Schritte aus, um die beschleunigte DDoS-Abwehr zu aktivieren:

  1. Installieren Sie das eBPF-fähige NGINX App Protect DoS-Paket und führen Sie alle weiteren erforderlichen Aufgaben aus. (Weitere Informationen finden Sie in der Installationsdokumentation, da die nach der Installation erforderlichen Aufgaben je nach Distribution variieren.)
  2. Konfigurieren Sie NGINX App Protect DoS wie gewohnt.
  3. Fügen Sie die folgende Direktive im http{}-Block der NGINX Plus-Konfiguration hinzu.
protect_dos_accelerated_mitigation on;
  1. Laden Sie die NGINX-Konfiguration neu.
$ sudo nginx -t && nginx -s reload

Zusammenfassung

Die Kombination der adaptiven Lernfunktionen von NGINX App Protect DoS mit der hocheffizienten Datenverkehrsverarbeitung durch die Ausführung von eBPF im Kernel ermöglicht eine mehrschichtige, beschleunigte Strategie zur Abwehr von Layer-7-DDoS-Angriffen, die besser auf heutige DDoS-Angriffe mit mehreren Angriffsvektoren und gezieltem Anwendungsbezug ausgelegt ist. Darüber hinaus senkt sie die Infrastruktur- und Rechenkosten, da weniger Ressourcen für die Abwehr eines DDoS-Angriffs benötigt werden.

Testen Sie NGINX App Protect DoS selbst mit einer kostenlosen 30-Tage-Testversion oder kontaktieren Sie uns, um Ihre Anwendungsfälle zu besprechen.

Weitere Ressourcen


Teilen

Über den Autor

Ähnliche Blogbeiträge

Die Zukunft von NGINX: Zurück zu unseren Open-Source-Wurzeln
NGINX | 23.08.2022

Die Zukunft von NGINX: Zurück zu unseren Open-Source-Wurzeln

Beim NGINX Sprint 2022 besinnen wir uns auf unsere Open-Source-Wurzeln. Erfahren Sie mehr über die Initiativen, die wir im kommenden Jahr verfolgen, und teilen Sie uns mit, was Sie sich wünschen.

Ein Leitfaden zur Auswahl eines Ingress-Controllers, Teil 1: Ermitteln Sie Ihre Anforderungen
NGINX | 08.09.2021

Ein Leitfaden zur Auswahl eines Ingress-Controllers, Teil 1: Ermitteln Sie Ihre Anforderungen

Ein Ingress-Controller kann eines der leistungsstärksten Tools in Ihrem Kubernetes-Stack sein. Erfahren Sie, wie Sie Ihre Ingress-Anforderungen ermitteln, um die beste Option auszuwählen.

Bereitstellung des NGINX Ingress Controllers auf Amazon EKS: So haben wir getestet
NGINX | 16.08.2021

Bereitstellung des NGINX Ingress Controllers auf Amazon EKS: So haben wir getestet

Wir haben kürzlich den Lösungsleitfaden zum NGINX Ingress Controller um Empfehlungen zur Dimensionierung für Amazon Elastic Kubernetes Service (EKS) ergänzt. In diesem Blogbeitrag erläutern wir, wie wir diese Empfehlungen erarbeitet haben, und stellen Ihnen alle Informationen zur Verfügung, die Sie benötigen, um selbst ähnliche Tests durchzuführen.

Protokollierung des Datenverkehrs zwischen NGINX und Upstream-Servern bei CDN77
NGINX | 12.12.2018

Protokollierung des Datenverkehrs zwischen NGINX und Upstream-Servern bei CDN77

Bei der Fehlersuche bei Datenverkehrsproblemen zwischen NGINX und Upstream-Servern konnte CDN77 die benötigten Daten nur aus dem Fehlerprotokoll mit aktivierter Debug-Ausgabe beziehen, was die Leistung beeinträchtigt und riesige Dateien erzeugt. Daher entwickelte das Team ein neues benutzerdefiniertes Modul, das ausschließlich die benötigten Daten protokolliert.

Ankündigung von NGINX Plus R16
NGINX | 05.09.2018

Ankündigung von NGINX Plus R16

NGINX Plus R16 ist eine einheitliche, elastische Ingress- und Egress-Schicht für Anwendungen, die die Funktionen eines Load Balancers, API-Gateways und einer WAF vereint und neue Features wie clusterfähige Ratenbegrenzung, Schlüssel-Wert-Speicher, „Random with Two Choices“, verbessertes UDP-Load-Balancing und vieles mehr bietet.

5 Gründe für den Umstieg auf softwarebasiertes Load Balancing
NGINX | 13.10.2016

5 Gründe für den Umstieg auf softwarebasiertes Load Balancing

Entdecken Sie fünf Gründe für den Wechsel zu einem softwarebasierten Load Balancer wie NGINX Plus, darunter Kosteneinsparungen, die Einführung von DevOps und eine einheitliche Lösung für alle Umgebungen.