La lutte contre les attaques DDoS continue d’évoluer. Dans le rapport 2023 sur les tendances des attaques DDoS, 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 multivecteurs complexes, ils se tournent également davantage vers des attaques ciblant exclusivement la couche applicative (couche 7). Rien qu’en 2022, la prévalence des attaques de couche 7 a augmenté de 165 %.

En règle générale, les attaquants choisissent la voie la plus facile pour atteindre leur objectif, qu’il s’agisse d’empêcher le fonctionnement d’un site web ou d’extorquer leur cible. Cette augmentation des attaques de couche 7 peut indiquer qu’il devient plus difficile de lancer une attaque DDoS en recourant uniquement à une stratégie volumétrique ou protocolaire, et que les attaques visant la couche applicative s’avèrent plus efficaces.
Protéger les applications modernes avec eBF et XDP
Pour protéger vos applications contre les attaques DDoS, il est important de tirer parti autant que possible des avancées technologiques afin de maximiser les chances de maintenir vos applications disponibles (et de satisfaire vos utilisateurs). Bien que la technologie filtre de paquets Berkeley étendu (eBPF) associée à eXpress Data Path (XDP) existe depuis 2014, elle connaît actuellement un essor considérable auprès des communautés de développeurs, de 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 de données intégrée au noyau Linux, qui permet aux utilisateurs d’exécuter des programmes de manière sûre et efficace. Elle étend également les capacités du noyau lors de l’exécution, sans modifier son code source ni ajouter de modules supplémentaires. eBPF fonctionne par déclenchement d’événements : il détecte une activité spécifique sur un hôte Linux et exécute une action précise. Cette technologie offre une visibilité complète sur l’ensemble de la pile des applications et de leurs services, avec la possibilité de suivre la connectivité et les transactions entre les microservices et les utilisateurs finaux. L’éventail des données disponibles est très vaste. Elle permet de répondre à des besoins critiques en matière d’observabilité, d’analyser la gestion du trafic réseau et les exigences de sécurité à l’exécution, et de tirer parti de l’efficacité intrinsèque de sa conception pour réduire les coûts de calcul.
Regardez la vidéo « Qu’est-ce qu’eBPF ? » de F5 DevCentral pour découvrir rapidement la technologie eBPF.
XDP
XDP offre l’avantage de performances réseau élevées. Il permet aux programmes en espace utilisateur de lire et d’écrire directement les données des paquets réseau, et de décider de la manière de traiter un paquet avant qu’il n’atteigne le niveau du noyau. Cette technologie permet aux développeurs d’attacher un programme eBPF à un point d’accroche de bas niveau, implémenté par le pilote du périphérique réseau au sein du noyau Linux.
Comment NGINX App Protect DoS utilise-t-il eBPF ?
NGINX App Protect DoS est une solution avancée d’atténuation des attaques DDoS de couche 7 basée sur l’analyse comportementale, qui s’exécute sur NGINX Plus et NGINX Ingress Controller afin de protéger les applications HTTP et HTTP/2 contre des attaques telles que Slowloris et HTTP Flood. En bref, NGINX App Protect DoS protège contre les attaques visant la couche applicative que les solutions DDoS réseau classiques ne peuvent pas détecter.

Lorsqu’il est utilisé avec NGINX App Protect DoS, eBPF permet d’envisager une capacité d’absorption des attaques DDoS considérablement accrue. NGINX App Protect DoS utilise eBPF (qui n’est pas disponible dans NGINX Ingress Controller lui-même) dans le cadre d’une solution multicouche qui accélère les performances d’atténuation en bloquant le trafic provenant d’acteurs malveillants, identifiés par leur adresse IP source, seule ou associée à une empreinte TLS.
Examinons maintenant les principes de base du fonctionnement de NGINX App Protect DoS, qui se déroule en trois phases : détection des anomalies, création dynamique de règles et apprentissage adaptatif, et application des règles.
Détection des anomalies
NGINX App Protect DoS surveille en permanence votre application protégée et utilise l’apprentissage automatique pour créer un modèle statistique du site représentant le comportement de l’application et des clients. Il observe le trafic en temps réel et suit plus de 300 métriques de requêtes HTTP afin d’établir une référence complète de l’activité et des performances, constamment mise à jour. Outre la surveillance passive du trafic de l’application, NGINX App Protect DoS effectue également des contrôles actifs de l’état de l’application et surveille des métriques telles que les temps de réponse et les requêtes abandonnées.
Lorsque l’application subit une attaque DDoS de couche 7, ses temps de réponse (ou ses taux d’erreur) s’écartent du modèle appris, ce qui déclenche le système de protection de l’application.
Création dynamique de règles et apprentissage adaptatif
Après la détection d’une anomalie, NGINX App Protect DoS crée dynamiquement des règles afin d’identifier et de 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 établit un profil statistique du comportement des clients afin de déterminer 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 continu l’efficacité des mesures d’atténuation et s’appuie sur un apprentissage adaptatif afin d’assurer en permanence une sécurité robuste des applications et de bloquer les attaques zero-day. Une fois les clients et les requêtes à l’origine d’une attaque identifiés, il crée une règle pour bloquer ce trafic.
NGINX App Protect DoS met en œuvre une stratégie de défense multicouche qui comprend :
- Blocage des acteurs malveillants en fonction de leur adresse IP ou de leur empreinte TLS
- Blocage des requêtes malveillantes présentant des signatures d’attaque
- Application d’une limitation globale du débit
Ces trois mesures d’atténuation sont appliquées progressivement afin de bloquer autant que possible les attaquants sans affecter les utilisateurs légitimes. Cependant, l’essentiel du blocage intervient souvent lors de la phase initiale, qui combine le blocage par adresse IP et empreinte TLS, ou lors de la phase de blocage par adresse IP uniquement. Heureusement, ce sont précisément les types de règles qu’un programme eBPF peut appliquer efficacement.
Application des règles
NGINX App Protect DoS utilise les règles créées et les applique au trafic entrant de l’application afin de bloquer les requêtes malveillantes. Comme l’ensemble du trafic de l’application est transmis par proxy à l’application backend (ou en amont) par le proxy NGINX Plus, toutes les requêtes correspondant aux règles de blocage sont simplement rejetées et ne sont pas transmises à l’application backend.
Même si NGINX Plus est un proxy hautes performances, la charge de travail supplémentaire générée par l’attaque et les règles d’atténuation peut malgré tout saturer les ressources disponibles de la plateforme sur laquelle NGINX s’exécute. C’est là qu’intervient eBPF. En appliquant dans le noyau un blocage fondé uniquement sur l’adresse IP, ou en le combinant à un blocage fondé sur l’adresse IP et l’empreinte TLS, le trafic malveillant peut être évalué et bloqué en amont au niveau de la couche transport (couche 4). Cette méthode est bien plus efficace que lorsque ces opérations sont effectuées par NGINX dans l’espace utilisateur.
Sur les plateformes prises en charge, lorsque NGINX App Protect DoS crée des règles visant à bloquer les attaquants en fonction de leur adresse IP source ou de leur empreinte TLS, ces règles sont compilées dans un programme en bytecode eBPF, qui est exécuté par le noyau lorsque des événements réseau (appelés « hooks ») se produisent. Si un événement réseau particulier déclenche la règle, le trafic est bloqué en amont au niveau de la couche 4. Cela permet d’accélérer l’atténuation des attaques DDoS avant qu’elles n’atteignent la couche 7. Comme toute cette activité se déroule dans le noyau, elle est très efficace et permet de filtrer davantage de trafic (avant l’épuisement des ressources) que lorsque les règles sont mises en œuvre dans l’espace utilisateur.

Activation de l’atténuation accélérée par eBPF sur NGINX App Protect DoS
L’atténuation accélérée de NGINX App Protect DoS 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 :
- Installez le package NGINX App Protect DoS compatible avec eBPF et effectuez toutes les tâches supplémentaires requises. (Consultez la documentation d’installation pour plus de détails, car les tâches post-installation varient selon la distribution.)
- Configurez NGINX App Protect DoS comme d’habitude.
- Ajoutez la directive suivante dans le bloc
http{}de la configuration NGINX Plus.
protect_dos_accelerated_mitigation on;- Rechargez la configuration de NGINX.
$ sudo nginx -t && nginx -s reloadRésumé
La combinaison des capacités d’apprentissage adaptatif de NGINX App Protect DoS et du traitement hautement efficace du trafic grâce à l’exécution d’eBPF dans le noyau offre une stratégie multicouche et accélérée d’atténuation des attaques DDoS de couche 7, mieux adaptée aux attaques DDoS actuelles à vecteurs multiples et ciblant les applications. Elle permet également de réduire les coûts d’infrastructure et de calcul en diminuant les ressources nécessaires pour atténuer chaque attaque DDoS.
Testez NGINX App Protect DoS par vous-même grâce à un essai gratuit de 30 jours ou contactez-nous pour discuter de vos cas d’usage.
Ressources supplémentaires
- Livre blanc – Protéger les applications modernes contre les attaques DoS de couche 7
- Blog – Comment NGINX App Protect Denial of Service s’adapte à l’évolution du paysage des attaques
- Fiche technique – Défendez-vous, adaptez-vous et atténuez les attaques DoS de couche 7
À propos de l’auteur

Articles de blog associés

Tendances actuelles des technologies cloud natives, de l’ingénierie de plateforme et de l’IA
Découvrez les principaux enseignements tirés des réponses à l’enquête annuelle F5 NGINX sur les dernières tendances en matière de technologies cloud natives, de sécurité, d’ingénierie de plateforme et d’IA.
Quels contrôleurs Ingress NGINX sont affectés par les vulnérabilités CVE-2022-4886, CVE-2023-5043 et CVE-2023-5044 ?
Lorsque de nouvelles CVE sont signalées, il est facile de ne plus savoir si elles concernent un outil de contrôleur Ingress NGINX particulier, car il existe plusieurs projets. Cet article présente les CVE et explique comment distinguer les différents projets de contrôleurs Ingress afin de dissiper toute confusion.
Votre API est-elle en temps réel ? Testez sa latence avec l’outil rtapi de NGINX
Votre API répond-elle aux requêtes en moins de 30 ms ? Si ce n’est pas le cas, il ne s’agit pas d’une API en temps réel offrant la faible latence exigée par la grande majorité des organisations. Mesurez la latence de votre API avec l’outil rtapi de NGINX et découvrez comment NGINX peut l’aider à offrir une réactivité en temps réel.

Un testeur d’expressions régulières pour NGINX et NGINX Plus
Le testeur d’expressions régulières (regex) pour NGINX et NGINX Plus vous évite de tâtonner en vous indiquant si une expression régulière utilisée dans un bloc location ou map correspond aux valeurs comme prévu. Il génère la configuration appropriée et affiche les valeurs des groupes de capture.
Caches partagés avec les clusters de cache NGINX Plus, partie 1
Optimisez la capacité de votre cache web en le répartissant entre plusieurs serveurs de cache web NGINX ou NGINX Plus. Découvrez comment procéder dans cet article.
Introduction aux microservices
Les microservices suscitent actuellement beaucoup d’intérêt. Cet article de blog est le premier d’une série de sept consacrée à la conception, au développement et au déploiement de microservices.