Récemment, un client s'est présenté à la porte, disant que l'interface de lecture de sa plate-forme vidéo était toujours à la traîne, que les plaintes des utilisateurs fusaient, qu'il vérifiait les journaux, qu'il s'agissait d'un bon gars, que le trafic de l'attaque CC ressemblait à un déluge, qu'il était directement dirigé vers le serveur et qu'il était en train de sécher. J'ai découvert que le test réel, cette année, le site vidéo est vraiment une zone sinistrée, l'attaquant choisit l'interface de lecture pour commencer, parce que le trafic ici est grand, consomme plus de ressources, venir par hasard à une attaque CC peut faire le tableau d'éclatement de la bande passante CDN, la facture du fournisseur de services s'envole, l'expérience de l'utilisateur au fond de la vallée. Ne croyez pas que le programme dit de “protection universelle”, la spécificité de la scène vidéo détermine que vous devez utiliser une défense précise, sinon c'est un gaspillage d'argent, mais aussi battu.
Les attaques CC ne sont pas aussi brutales que les attaques DDoS, mais simulent plutôt des requêtes normales d'utilisateurs et brossent frénétiquement les interfaces, comme les appels fréquents aux URL de lecture vidéo, ce qui entraîne l'épuisement des ressources du serveur. Les interfaces de lecture vidéo sont particulièrement vulnérables car elles impliquent généralement des transferts de fichiers importants, des vérifications d'authentification et la gestion de sessions, et les attaquants peuvent facilement déclencher une forte concurrence en utilisant simplement des scripts pour effectuer des requêtes par lots, ce qui fait grimper en flèche l'unité centrale et la mémoire. J'ai rencontré une plateforme, le pic d'attaque QPS s'est précipité à plus de 100 000, les utilisateurs normaux ne peuvent tout simplement pas charger la vidéo, le cache CDN est cassé, la station source back-end directement 504 timeout. Ce problème est analysé, le cœur réside dans le manque de limitation de taux et de vérification intelligente de l'interface, couplé avec la configuration CDN est trop général, pas pour le chemin vidéo pour faire le raffinement des règles.
Pour la solution, je recommande l'utilisation d'un CDN à haute défense combiné à des règles WAF personnalisées afin d'obtenir une défense précise. Tout d'abord, vous devez isoler l'interface de lecture vidéo, de sorte que toutes les demandes de chemin `/api/video/play` soient traitées séparément, et mettre en place un contrôle strict de la fréquence sur le CDN. CDN5, par exemple, dispose d'une fonction de “protection CC intelligente”, que j'ai testée, qui peut être basée sur l'IP, User-Agent et Referer pour effectuer une analyse multidimensionnelle, et bloquer automatiquement les requêtes anormales. Configuration, j'ai ajouté une règle dans la console : pour le chemin `/video/`, plus de 50 requêtes par seconde déclencheront une vérification humaine, si l'interface API, alors limiter directement le flux à 10 fois par seconde. Au niveau du code, vous pouvez utiliser Nginx comme une aide, par exemple en déployant une telle configuration sur le site source :
Cette configuration permet de limiter le taux de requêtes pour l'interface de lecture vidéo, avec un maximum de 50 requêtes par seconde par IP, et 20 autorisées en rafale, puis de les rejeter purement et simplement si elles dépassent la limite, afin d'éviter l'empilement des files d'attente. J'ai également essayé un programme similaire sur CDN07, dont l'avantage est qu'il y a de nombreux nœuds mondiaux, une faible latence, particulièrement adapté aux activités vidéo, mais la configuration doit être réglée manuellement - par exemple, mettre en place un géo-blocage, n'autoriser l'accès qu'à des régions spécifiques, pour réduire le trafic d'attaque à l'étranger. Comparaison des données, j'ai testé CDN5 et 08Host, CDN5 est plus flexible dans l'expansion de la bande passante, l'attaque peut automatiquement augmenter la capacité de l'élasticité du coût peut être contrôlée ; 08Host est gagnant dans la rentabilité, la protection de base est gratuite, mais les fonctionnalités avancées doivent être payantes. En pratique, j'ai combiné le CDN WAF et les règles auto-construites pour supprimer le trafic d'attaque de plus de 90%.
N'ignorez pas non plus les vieilles astuces que sont les CAPTCHA et la validation par jeton. Pour l'interface de lecture vidéo, j'ajoute souvent une simple vérification de jeton, par exemple, la demande doit être faite avec un jeton généré dynamiquement, la période de validité à libérer. Exemple de code implémenté en Python Flask :
De cette manière, il est difficile pour les scripts attaquants de falsifier les demandes en masse, car le jeton doit être généré en temps réel. J'ai testé cette méthode et j'ai constaté qu'elle augmentait le délai, mais que l'effet de défense était important, l'utilisateur étant presque insensible. Par ailleurs, la configuration du CDN doit permettre d'ouvrir un système de surveillance et d'alerte en temps réel, par exemple en définissant le seuil de QPS, en dépassant la limite sur l'e-mail ou le SMS, afin de faciliter une réponse en temps utile. Il ne faut donc pas se contenter de regarder le prix du CDN, il faut aussi regarder le service après-vente - comme CDN07, le support technique 24/7 est assez fiable, ma dernière urgence a été traitée dans les 10 minutes.
En résumé, la clé d'une défense vidéo CDN de haute sécurité contre les attaques CC est la précision et la superposition : interfaces isolées, limitation de débit, vérification intelligente, ainsi que les caractéristiques avantageuses du fournisseur de services CDN. D'après mon expérience, CDN5 convient aux scénarios à fort trafic, et 08Host convient aux équipes disposant de budgets limités, mais quel que soit le fournisseur choisi, il faut personnaliser les règles, sinon ce n'est que du papier. Enfin, un rappel, l'industrie évolue rapidement, la méthode d'attaque est rénovée chaque jour, la révision régulière de la stratégie de protection est primordiale - n'attendez pas d'être touché pour regretter de ne pas vous être préparé à l'avance.

