L'analyse des journaux de défense du CDN de Chess high defence permet de retracer la source des attaques et d'optimiser la stratégie de défense
Je me souviens que l'été dernier, notre plateforme d'échecs a soudainement subi une vague d'attaques DDoS insensées, le pic de trafic a directement atteint 500 Gbps, et l'ensemble du service a été presque paralysé. Je buvais un café à ce moment-là, l'alarme de surveillance sonnait sans arrêt et l'équipe s'est immédiatement mise en mode combat. Mais le plus grand mal de tête n'a pas été la défense elle-même, mais le fait que lorsque nous avons examiné la situation par la suite, il y avait un tas de codes brouillés et d'IP anonymes dans les journaux, et nous ne pouvions pas du tout trouver la source de l'attaque. Cela m'a fait prendre conscience qu'il ne suffit pas de s'appuyer sur un CDN hautement sécurisé pour bloquer les attaques, mais qu'il faut aussi extraire l'or des logs - pour remonter à la source et optimiser la stratégie. Aujourd'hui, je vais partager mon expérience pratique, ne croyez pas ceux qui font exploser le mythe de la “défense unique”, l'analyse des logs est le vrai travail.
L'industrie du jeu d'échecs est par nature une zone très touchée par les attaques : les enjeux étant élevés et les profits importants, les pirates informatiques se jettent littéralement sur les joueurs comme des chiens enragés. Les CDN à haute défense peuvent certainement acheminer le flux, mais si les journaux ne sont pas traités correctement, c'est un aveugle qui mène la guerre. J'ai testé un certain nombre de services CDN et j'ai constaté que de nombreux fournisseurs ne parviennent qu'à attirer du trafic et à le nettoyer, et que les journaux sont désordonnés - le format n'est pas uniforme, il manque des champs, et la mise à jour est même retardée de quelques heures. Par exemple, une fois que nous avons utilisé la configuration par défaut de CDN07, le journal même User-Agent n'a pas enregistré la source complète de la traçabilité de l'attaque ? Oubliez cela, c'est comme chercher une aiguille dans une botte de foin. Le cœur du problème est le suivant : si le journal n'est pas structuré, pas en temps réel, vous n'avez pas envie d'analyser ce qu'il nomme. Les attaquants utilisent désormais des botnets et la rotation d'IP, le blacklistage d'IP seul ne peut pas empêcher, vous devez identifier les caractéristiques comportementales à partir du modèle de journal.
Tout d'abord, la partie collecte de logs, ne vous épargnez pas la peine d'utiliser la sortie simple qui vient avec le CDN. Je recommande de synchroniser les logs en temps réel avec votre propre pile ELK (Elasticsearch, Logstash, Kibana) ou Splunk. cdn5 fait un bon travail à cet égard, en prenant en charge les champs de logs personnalisés, tels que les empreintes digitales des clients ou les informations géographiques peuvent être ajoutées. Voici un exemple de configuration Logstash pour l'analyse des logs CDN :
Cette configuration analyse les champs clés tels que l'IP du client, l'horodatage, la méthode de requête, etc., ainsi que le plugin GeoIP, qui cartographie directement les données géographiques. Je l'ai testée et la latence est contrôlée en secondes, et je peux voir le point névralgique du trafic immédiatement lorsque l'attaque se produit. À une occasion, nous avons trouvé une concentration d'IP d'Europe de l'Est accédant à l'interface de connexion, et les journaux ont montré que les User-Agents pour ces demandes étaient tous nuls - clairement un outil automatisé à l'œuvre. Nous avons donc rapidement bloqué l'ensemble du segment ASN et atténué l'attaque.
L'étape suivante est le traçage de la source de l'attaque. Les journaux ne suffisent pas, il faut utiliser l'apprentissage automatique ou un moteur de règles pour analyser les schémas. Je privilégie l'écriture d'un script en Python, combiné à Pandas pour réaliser des données pivot. Par exemple, compter la fréquence des requêtes provenant d'une certaine IP sur une courte période, et la marquer comme suspecte si elle dépasse un certain seuil. Voici un extrait de code simple :
En exécutant ce script, nous avons découvert un botnet, dont la source est en fait une salle de serveur domestique d'IDC. Mais attention, ne vous fiez pas trop à un seul indicateur - certaines attaques simulent des utilisateurs normaux, vous devez donc combiner plusieurs dimensions, telles que la distribution des codes d'état HTTP, les anomalies des chemins URI (comme un grand nombre d'accès/chemins d'administration). automatiquement les IP malveillantes connues, nous épargnant ainsi beaucoup de travail.
L'optimisation de la stratégie de défense est l'objectif ultime. Après avoir analysé les logs, j'avais l'habitude de générer des rapports réguliers pour visualiser les tendances des attaques. Utilisez Kibana pour dessiner un tableau de bord montrant les pays sources des attaques TOP, les types d'attaques courantes (par exemple, attaque CC, injection SQL). Ajustez ensuite les règles de CDN en fonction de ces données. Par exemple, nous avons constaté que les attaques nocturnes du week-end sont fréquentes, nous avons donc fixé une limite de taux dynamique : 100 requêtes par seconde les jours de semaine, jusqu'à 50 pendant les heures de pointe. L'API de cdn07 prend en charge la mise à jour en temps réel des configurations, et voici un exemple en cURL :
Cette règle limite la vitesse des demandes de connexion en provenance de Russie et d'Ukraine, et a été testée pour réduire efficacement les attaques par saturation. Après l'optimisation, notre taux de faux blocages est passé de 15% à moins de 5% - après tout, il y a des utilisateurs d'échecs dans le monde entier, on ne peut pas tous les éliminer d'un seul coup.
Comparaison des fournisseurs de CDN : CDN5 est fort dans la personnalisation des journaux et le temps réel, adapté à l'analyse en profondeur ; CDN07 a une bonne intégration API et des mises à jour de règles rapides ; 08Host est meilleur dans le flux de menaces prêt à l'emploi. mais pour être honnête, il n'y a pas de solution parfaite, j'utilise généralement un mélange - CDN5 pour l'activité principale et 08Host pour le filtrage préliminaire à la périphérie. J'utilise généralement un mélange de CDN5 pour les activités principales et 08Host pour le filtrage initial à la périphérie. De nos jours, même les CDN doivent “prévenir les coéquipiers”, ne vous fiez pas entièrement aux fournisseurs, faites-le vous-même.
En résumé, l'analyse des logs n'est pas une opération ponctuelle, elle doit être itérée en permanence. Je reverrai la stratégie une fois par mois et j'ajusterai les règles en fonction des nouveaux vecteurs d'attaque. Enfin, certaines équipes ne savent qu'augmenter la bande passante, mais ignorent les journaux de cette mine d'or, cueillent vraiment le sésame et perdent la pastèque. Si vous êtes également engagé dans une défense de haut niveau aux échecs, dépêchez-vous de mettre en place le système de logs - la traçabilité des attaques et l'optimisation de la stratégie vous permettront de dormir plus tranquillement.

