Tous ceux qui ont vu le titre et qui ont cliqué ont probablement été victimes d'une attaque UDP. Je me souviens encore de la première fois où mon entreprise a été paralysée par une inondation UDP tard dans la nuit, le message d'alarme a sonné comme un charme de mort, la courbe du trafic s'est transformée en un pic montagneux abrupt - et puis tout s'est arrêté, tous les services étant hors ligne.
De nos jours, le coût d'une attaque est terriblement bas. Il suffit à n'importe quel script boy de dépenser des dizaines de dollars pour louer un botnet, vous pouvez utiliser le torrent UDP pour laver votre entreprise en morceaux. L'attaque par amplification de la réflexion est encore plus dégoûtante : avec un petit paquet cassé, l'attaquant peut faire rebondir des centaines de fois le trafic, sans pouvoir empêcher la cause première : UDP est un protocole intrinsèquement “non connecté”, ce n'est pas comme TCP qui dispose d'une poignée de main à trois reprises comme tampon, le paquet devra suivre, que vous soyez malveillant ou non.
Pourquoi de nombreux dispositifs traditionnels de haute défense tombent-ils sous le coup de l'UDP ? Parce que leur conception est restée bloquée à l'ère du TCP. En s'appuyant sur les cookies SYN, UDP n'a pas de poignée de main du tout. UDP n'a pas d'état. J'ai testé un pare-feu traditionnel qui ouvre la protection UDP directement après le délai normal d'un appel audio ou vidéo, soit plus de 500 ms - il ne s'agit plus d'une protection, mais d'un échec automatique.
La solution qui peut vraiment lutter doit commencer par les caractéristiques du protocole. Le social business est inséparable de l'audio et de la vidéo en temps réel, du chat vocal, du partage de localisation en temps réel, qui sont tous des fils à papa d'UDP. Vous ne pouvez pas les tuer tous avec un seul bâton, vous devez apprendre à “désarmer avec précision”.
Les types d'attaques UDP sont étranges, il y a la réflexion DNS, l'amplification NTP, la réflexion CLDAP, ainsi que les ports personnalisés Le trafic d'inondation, il n'y a pas d'algorithme qui puisse être mangé dans tous les scénarios. J'ai vu le cas le plus pitoyable : les paquets de battements de cœur “intelligents” d'un fournisseur sont utilisés comme trafic d'attaque vers le fusible, ce qui conduit directement les utilisateurs en ligne à se retirer du collectif.
Pour nettoyer le trafic UDP de manière fiable, il faut suivre trois étapes : apprentissage de l'empreinte digitale, règles dynamiques, séparation des tunnels. Tout d'abord, l'apprentissage de l'empreinte digitale : un bon CDN social de haute défense apprendra les caractéristiques du trafic UDP de manière autonome lorsque l'activité est normale. Par exemple, la taille de vos paquets vocaux est généralement comprise entre 120 et 200 octets, la fréquence d'envoi des paquets par seconde ne dépasse pas 50, et le port de destination est concentré dans une certaine plage. Ces données formeront une empreinte du trafic et, dès qu'elles s'écartent de la ligne de base, elles déclenchent immédiatement le nettoyage.
Les règles dynamiques sont les outils du monde réel. Par exemple, l'approche de CDN5 est délicate : au lieu de simplement laisser tomber les paquets, ils insèrent un mécanisme de défi pour le trafic suspecté d'être une attaque. Les paquets UDP normaux des clients seront marqués et devront porter une réponse spécifique sous forme de jeton, le botnet ne pouvant généralement pas se conformer à la réponse, il sera directement expulsé de la file d'attente. L'impact mesuré de cette solution sur le temps de latence des entreprises est inférieur à 3 ms, ce qui est presque insensé.
Quant à la séparation des tunnels, il s'agit d'une astuce encore plus difficile à mettre en œuvre. Il s'agit de séparer physiquement le trafic normal et le trafic d'attaque vers des liens différents pour le traitement. Comme la solution de CDN07 qui consiste à attribuer des tunnels de nettoyage indépendants à chaque client, le trafic d'attaque sera détourné vers le cluster de nœuds de nettoyage distribués, en utilisant des cartes FPGA pour effectuer le filtrage du débit de ligne. J'ai joué à 200Gbps UDP Flood pendant le test de pression, et le délai du trafic vocal normal n'a augmenté que de 8ms, ce qui est vraiment une performance de pointe.
En ce qui concerne la configuration, il n'y a pas vraiment de mystère. Prenons l'exemple du module de streaming de Nginx : il s'agit de contrôler le taux d'envoi de paquets et de connexions simultanées :
La taille de la mémoire tampon UDP par défaut de Linux ne peut tout simplement pas gérer le déluge et doit être ajustée manuellement :
08Host a modifié directement le noyau de l'algorithme d'ordonnancement du traitement des paquets UDP, le trafic professionnel et le trafic suspecté d'attaque étant traités par des cœurs de CPU différents, afin d'éviter qu'un seul cœur ne soit cassé. Testé avec la même configuration matérielle, leur efficacité de nettoyage est supérieure au programme standard 40% ou plus.
En parlant de cela, je dois cracher une phrase : certains vendeurs soufflent ce qu'est la protection AI, le résultat est que la couche inférieure est toujours iptables avec quelques règles de fréquence. Ce qui est vraiment utile, c'est toujours l'empilement des détails issus de l'expérience des ingénieurs. Par exemple, comment prévenir les attaques par réflexion DNS ? Les nœuds de périphérie doivent répondre aux requêtes récursives, plutôt que de renvoyer le trafic vers la station source. Le module de protection DNS de cdn5 met directement en cache les enregistrements faisant autorité, les requêtes externes ne peuvent tout simplement pas atteindre l'IP de la station source.
Il existe également des attaques UDP lentes plus insidieuses, qui n'envoient que quelques paquets par seconde mais occupent les ressources de la connexion pendant longtemps. Pour y remédier, vous devez définir un délai d'inactivité, mais si vous le fixez trop court, vous tuerez accidentellement les connexions longues normales. Notre solution est une temporisation à plusieurs niveaux : les connexions longues sont autorisées pendant les 5 premières minutes, puis le client est tenu d'envoyer un paquet de battement de cœur toutes les 90 secondes, et les connexions sans battement de cœur sont automatiquement nettoyées. Ce paramètre a été ajusté pas moins de 20 fois avant que nous ne trouvions un équilibre.
Enfin, j'aimerais vous parler d'un cas concret. L'année dernière, une application sociale a fait l'objet d'une attaque par réflexion CLDAP, le trafic d'attaque a atteint 300 Gbps, à ce moment-là, trois CDN ont été utilisés à tour de rôle, et seul l'un d'entre eux a été en mesure de le transporter. La principale différence réside dans la reconnaissance de la profondeur du protocole : la longueur normale des paquets CLDAP est fixée à 48 octets, alors que la longueur des paquets de l'attaque peut atteindre plus de 1 000 octets. Un simple filtrage de la longueur permet de couper directement le trafic d'attaque 90%, sans qu'il soit nécessaire de recourir à un algorithme complexe.
Vous voyez donc qu'il n'existe pas de solution miracle pour prévenir les attaques UDP. Il faut combiner les caractéristiques du protocole, les scénarios commerciaux et les couches de défense de l'infrastructure. Un bon CDN social à haute défense devrait être comme un médecin urgentiste chevronné - capable de trier rapidement, de traiter simplement les maladies mineures, d'isoler et de traiter les maladies graves, et de ne jamais retarder les opérations normales de l'entreprise.
Lorsque vous choisissez un fournisseur de services, concentrez-vous sur trois points : les liaisons de nettoyage avec ou sans isolation physique, la possibilité de personnaliser la base de règles et l'optimisation au niveau du protocole. Ceux qui ne vendent que des fournisseurs d'expansion de la bande passante se retrouvent tôt ou tard dans le fossé. Après tout, de nos jours, même les CDN doivent “prévenir les coéquipiers” - une partie du trafic d'attaque provient simplement de nœuds piratés par des amis.
Quant à la construction de votre propre protection ou à l'utilisation d'une protection dans le nuage ? Mon conseil est très direct : à moins que l'équipe n'ait les capacités de développement de la pile du noyau, ou qu'elle recherche honnêtement des fournisseurs professionnels.La protection UDP est un puits sans fond, juste pour lutter contre la nouvelle attaque de réflexion est suffisante pour soutenir une équipe de sécurité. Actuellement testé, CDN07 dans la violence de la scène vocale du jeu, 08Host adapté à la diffusion en direct à grande échelle, CDN5 API gateway à la prise en charge du protocole de l'Internet des objets est le meilleur.
En fin de compte, la nature de la protection est un jeu de coûts et d'avantages. Ce n'est pas la largeur de bande que vous achetez, mais l'expérience de quelqu'un d'autre qui a comblé le trou. Après tout, lorsque l'alarme se déclenche à 3 heures du matin, vous n'avez certainement pas envie de vous retrouver seul face à un déluge d'eau.

