BLOG | NGINX

Accélération de l'atténuation des attaques DDoS avec eBPF dans F5 NGINX App Protect DoS

NGINX-Partie-de-F5-horiz-black-type-RGB
Vignette de Robert Haynes
Robert Haynes
Publié le 5 avril 2023

La lutte contre les attaques DDoS continue de se transformer. Dans le rapport 2023 DDoS Attack Trends , F5 Labs a analysé trois années de données récentes sur les attaques par déni de service distribué (DDoS) et a constaté que si les attaquants utilisent toujours des attaques DDoS multi-vectorielles complexes, ils sont également passés au lancement d'attaques plus purement au niveau de la couche applicative (couche 7). Rien qu'en 2022, la prévalence des attaques de couche 7 a augmenté de 165 %.

Diagramme montrant le nombre de types d'attaques DDoS (volumétriques, de protocole, d'application et multi-vecteurs) de 2020 à 2022
Nombre de types d'attaques DDoS, 2020-2022, montrant une forte augmentation du nombre d'attaques d'applications et une réduction correspondante des attaques volumétriques et multi-vectorielles.

En règle générale, les attaquants empruntent le chemin le plus simple pour atteindre leur objectif, qu’il s’agisse d’empêcher le fonctionnement d’un site Web ou d’extorquer une cible. Cette augmentation des attaques de couche 7 peut indiquer qu’il devient plus difficile de lancer une attaque DDoS en utilisant uniquement une stratégie volumétrique ou de protocole, et que les attaques de couche applicative s’avèrent plus efficaces.

Protéger les applications modernes avec eBF et XDP

Lorsque vous défendez vos applications contre les attaques DDoS, il est important de tirer parti des avancées technologiques dans la mesure du possible pour maximiser les chances de maintenir vos applications disponibles (et vos utilisateurs satisfaits). Bien que la technologie eBPF ( Extended Berkeley Packet Filter ) avec eXpress Data Path (XDP) existe depuis 2014, sa popularité est actuellement en plein essor parmi les communautés de développeurs, SRE et d'exploitation en raison de l'adoption croissante des microservices et des architectures cloud natives.

eBPF

eBPF est une machine virtuelle (VM) de la couche liaison dans le noyau Linux qui vous permet d'exécuter des programmes de manière sûre et efficace. Elle étend aussi les capacités du noyau en temps réel, sans modifier son code source ni ajouter de modules. eBPF réagit aux événements : il détecte une activité précise sur un hôte Linux et agit en conséquence. Cette technologie vous offre une visibilité complète sur les applications et leurs services, avec la possibilité de tracer les connexions et les transactions entre microservices et utilisateurs finaux. La diversité des données accessibles est très large. Elle sait répondre aux besoins d'observabilité aiguisée, analyser la gestion du trafic réseau et renforcer la sécurité à l’exécution, tout en réduisant les coûts de calcul grâce à son design efficace.

Regardez la vidéo Qu'est-ce que eBPF ? de F5 DevCentral pour un aperçu rapide de la technologie eBPF.

XDP

XDP offre l’avantage d’une mise en réseau hautes performances. Il permet aux programmes de l'espace utilisateur de lire et d'écrire directement dans les données des paquets réseau et de prendre des décisions sur la manière de gérer un paquet avant d'atteindre le niveau du noyau. Cette technologie permet aux développeurs d’attacher un programme eBPF à un hook de bas niveau, implémenté par le pilote de périphérique réseau dans le noyau Linux.

Comment l'application NGINX protège-t-elle contre les attaques DoS en utilisant eBPF ?

NGINX App Protect DoS est une solution avancée d'atténuation des attaques DDoS de couche 7 basée sur le comportement qui s'exécute sur NGINX Plus et NGINX Ingress Controller pour défendre les applications HTTP et HTTP/2 contre les attaques telles que Slowloris et HTTP Flood . En bref, NGINX App Protect DoS protège contre les attaques de couche applicative que les solutions DDoS réseau simples ne peuvent pas détecter.

Diagramme montrant les types d'attaques contre lesquelles NGINX App Protect DoS se défend
NGINX App Protect DoS peut être déployé sur NGINX Plus au niveau de l'équilibreur de charge ou de la passerelle API, et sur NGINX Ingress Controller ou à l'intérieur du cluster en tant que proxy par pod ou par service. Il peut également être facilement intégré en tant que « sécurité en tant que code » dans les pipelines CI/CD pour DevOps agile.

En associant eBPF à NGINX App Protect DoS, vous bénéficiez d’une capacité bien supérieure pour absorber les attaques DDoS. NGINX App Protect DoS utilise eBPF (absent de NGINX Ingress Controller) comme couche d’une solution complète qui accélère la mitigation en bloquant le trafic des acteurs malveillants, identifiés par leur adresse IP source, seuls ou combinés à un empreinte TLS.

Ensuite, examinons les mécanismes de base du fonctionnement de NGINX App Protect DoS en trois phases : détection des anomalies , création de règles dynamiques et apprentissage adaptatif , et application des règles .

Détection d'anomalies

NGINX App Protect DoS surveille en permanence votre application protégée et utilise l'apprentissage automatique pour créer un modèle de site statistique du comportement de l'application et du client. Il observe le trafic en temps réel et suit plus de 300 mesures de requêtes HTTP pour créer une base de référence complète et constamment mise à jour de l'activité et des performances. En plus de surveiller passivement le trafic des applications, NGINX App Protect DoS effectue également des contrôles de santé actifs des applications et surveille des mesures telles que les temps de réponse et les demandes abandonnées.

Lorsque l'application est soumise à une attaque DDoS de couche 7, les temps de réponse de l'application (ou taux d'erreur) s'écartent du modèle appris et le système de protection de l'application est déclenché.

Création de règles dynamiques et apprentissage adaptatif

Une fois une anomalie détectée, NGINX App Protect DoS crée dynamiquement des règles pour identifier et bloquer le trafic malveillant. Dans le but de permettre aux utilisateurs légitimes d'accéder à l'application tout en bloquant les attaquants malveillants, il crée une image statistique du comportement du client pour identifier quels utilisateurs contribuent ou non à l'attaque.

En plus de déployer des signatures dynamiques pour bloquer les attaques, NGINX App Protect DoS mesure en permanence l'efficacité de l'atténuation et applique l'apprentissage adaptatif pour fournir en permanence une sécurité robuste des applications et bloquer les attaques zero-day. Une fois les clients et les requêtes à l’origine d’une attaque identifiés, une règle est créée pour refuser ce trafic.

NGINX App Protect DoS met en œuvre une stratégie de défense multicouche qui comprend :

  • Blocage des mauvais acteurs en fonction de l'adresse IP ou de l'empreinte digitale TLS
  • Blocage des mauvaises requêtes avec des signatures d'attaque
  • Application de la limitation de débit globale

Ces trois mesures d’atténuation sont appliquées de manière incrémentielle pour garantir que les attaquants sont bloqués autant que possible sans impact sur les utilisateurs légitimes. Cependant, la majeure partie de l’activité de blocage se produit fréquemment lors de la combinaison initiale du blocage de l’adresse IP et de l’empreinte digitale TLS ou lors de la phase de blocage de l’adresse IP uniquement. Heureusement, ce sont exactement les types de règles qui peuvent être appliquées efficacement par un programme eBPF.

Application des règles

NGINX App Protect DoS utilise les règles créées et les applique au trafic d'application entrant pour bloquer les requêtes malveillantes. Étant donné que tout le trafic d'application est acheminé vers l'application principale (ou en amont ) par le proxy NGINX Plus, toutes les demandes correspondant aux règles de blocage sont simplement supprimées et ne sont pas transmises à l'application principale.

Même si NGINX Plus est un proxy très performant, la charge supplémentaire créée par les règles d’attaque et d’atténuation peut rapidement saturer les ressources disponibles sur la plateforme où NGINX s’exécute. C’est là qu’intervient eBPF. En réalisant un blocage basé uniquement sur l’adresse IP, ou en associant le blocage par IP et empreinte TLS au niveau du noyau, vous pouvez détecter et bloquer le trafic malveillant tôt, dès la couche transport (couche 4). Cette approche est bien plus efficace que de laisser NGINX gérer cela en espace utilisateur.

Sur les plateformes compatibles, NGINX App Protect DoS crée des règles pour bloquer les attaquants selon l'adresse IP source ou l'empreinte TLS, puis compile ces règles en un programme bytecode eBPF exécuté par le noyau à chaque événement réseau (appelé hook). Quand un événement réseau déclenche la règle, vous bloquez le trafic dès la couche 4. Cela vous permet d’accélérer la lutte contre les attaques DDoS avant d’arriver à la couche 7. Cette activité se déroule directement dans le noyau, ce qui la rend très efficace et vous fait filtrer plus de trafic (avant d’épuiser les ressources) qu’avec une application des règles en espace utilisateur.

Diagramme montrant comment NGINX App Protect DoS invoque une règle codée eBPF dans le noyau pour repousser un attaquant
NGINX App Protect DoS avec eBPF bloque le trafic malveillant dans le noyau avant d'atteindre l'espace utilisateur, accélérant ainsi l'atténuation des attaques DDoS et réduisant les coûts de calcul.

Activation de l'atténuation accélérée eBPF sur les attaques DoS NGINX App Protect

L'atténuation accélérée des attaques DoS NGINX App Protect est disponible sur les distributions Linux suivantes :

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

Pour activer l’atténuation accélérée des attaques DDoS, procédez comme suit :

  1. Installez le package DoS NGINX App Protect compatible eBPF et effectuez toutes les tâches supplémentaires. (Consultez la documentation d’installation pour plus de détails, car les tâches de post-installation varient selon la distribution.)
  2. Configurez NGINX App Protect DoS comme d’habitude.
  3. Ajoutez la directive suivante dans le bloc http{} de la configuration NGINX Plus.

    protect_dos_accelerated_mitigation activé ;
    
  4. Rechargez la configuration NGINX.

    $ sudo nginx -t && nginx -s recharger
    

Résumé

En combinant les capacités d’apprentissage adaptatif de NGINX App Protect DoS avec la gestion performante du trafic via l’exécution du noyau eBPF, nous mettons en œuvre une stratégie d’atténuation multi‑couches et accélérée des attaques DDoS de couche 7, adaptée aux attaques actuelles multi‑vecteurs et ciblant les applications. Vous réduisez aussi vos coûts d'infrastructure et de calcul en limitant les ressources nécessaires pour contrer chaque attaque DDoS.

Testez vous-même NGINX App Protect DoS avec un essai gratuit de 30 jours ou contactez-nous pour discuter de vos cas d'utilisation .

Ressources complémentaires


« Cet article de blog peut faire référence à des produits qui ne sont plus disponibles et/ou qui ne sont plus pris en charge. Pour obtenir les informations les plus récentes sur les produits et solutions F5 NGINX disponibles, explorez notre famille de produits NGINX . NGINX fait désormais partie de F5. Tous les liens NGINX.com précédents redirigeront vers un contenu NGINX similaire sur F5.com."