Récemment, j'ai aidé un client à résoudre le problème du vol d'une chaîne vidéo. L'autre partie a utilisé une petite usine CDN, la chaîne antivol a simplement ouvert une vérification Referer, les résultats du jour suivant le trafic comme d'habitude a été brossé éclaté. Une vérification du journal, bon gars, l'attaquant a directement forgé la tête de Referer, facilement traîné les ressources vers le bas du ciel. De nos jours, même les CDN doivent être “anti-témoins”, en s'appuyant sur la configuration de base, ils ne peuvent vraiment pas faire mieux.
En fait, le vol de chaînes vidéo n'est pas nouveau depuis longtemps, mais il a pris de l'ampleur au cours des deux dernières années. Des bandes de maîtres chanteurs ont même mis au point des outils automatisés, spécialisés dans l'analyse des sites à la recherche de vulnérabilités contre le vol de chaînes. J'ai testé et constaté que les sites qui s'appuient uniquement sur l'authentification Referer, 90% ou plus, peuvent être contournés - après tout, l'en-tête HTTP, dans le client, est une petite fille à habiller. Pire encore, certains crawlers simulent directement le comportement du navigateur, même les Referer sont générés pour vous conformément à la spécification, et ne peuvent être défendus.
Une défense vraiment efficace doit être multicouche ; l'authentification du référent est la base, mais elle doit être associée au cryptage des URL et aux jetons dynamiques. Ne considérez pas ces deux astuces comme démodées ; utilisées correctement, elles peuvent permettre de déjouer la plupart des attaques. En particulier le jeton de temps, j'ai utilisé SHA256 comme signature, l'IP du client, les horodatages, les chemins d'accès aux ressources sont combinés et cryptés, le délai d'expiration est fixé à une durée plus courte, même s'il est intercepté, il sera invalidé très rapidement.
Ne croyez pas ceux qui disent que “HTTPS est une chaîne antivol naturelle”, HTTPS peut seulement empêcher l'espionnage de l'intermédiaire, mais après l'autorisation de la demande d'être volé comme volé. L'année dernière, il y a eu un cas, une vidéo de plateforme éducative a été nettoyée, c'est à cause de l'utilisation de jetons statiques dans le JS, les gens directement F12 a tourné à l'envers.
En ce qui concerne le choix des fournisseurs de services CDN, j'en ai comparé trois : CDN5, CDN07 et 08Host. La configuration de la chaîne antivol de CDN5 est la plus flexible, elle prend en charge le cryptage variable personnalisé, mais le prix est élevé ; l'interface de CDN07 est infaillible, elle convient aux novices, mais les fonctionnalités avancées doivent être plus coûteuses ; le rapport qualité-prix de 08Host est le meilleur, avec l'intégration du WAF, mais il peut également être configuré en fonction de la région de la politique différente de la chaîne antivol, j'ai donc décidé de l'utiliser pour les projets de petite et moyenne envergure. Il est utilisé à 80 % par les petits et moyens projets.
Il y a un piège à éviter lors du déploiement : n'utilisez pas de paramètres explicites dans l'URL pour vérifier les autorisations ! J'ai vu des gens insérer l'identifiant de l'utilisateur directement dans l'URL, et le résultat est que toutes les vidéos d'utilisateurs sont parcourues et explorées. L'approche correcte consiste à placer la logique de vérification à la périphérie du nœud CDN, en utilisant des relations de mappage variables. Par exemple, l'arrière-plan de configuration de CDN07 peut définir la fonction de périphérie pour vérifier directement la validité du jeton :
Voici un autre conseil : le découpage vidéo est plus sûr en cas d'analyse médico-légale. Découpez les fichiers volumineux en segments et autorisez chaque segment individuellement. Bien que cela ajoute un peu de temps, le facteur de sécurité est doublé. Lorsqu'un client s'est fait voler sa chaîne, grâce à l'utilisation du découpage et du jeton dynamique, l'attaquant n'a emporté que 5 minutes de contenu et a été arrêté par le mécanisme de défaillance du jeton ; la perte est directement contrôlée dans les limites du seuil.
Enfin, le secteur est en plein chaos. Certains fournisseurs de CDN ont fait exploser l'anti-vol de chaîne de base, en fait, même l'attaque par relecture de l'horodatage ne peut pas être empêchée. Si vous voulez vraiment assurer une défense efficace, vous devez vérifier si le fournisseur de services prend en charge la rotation des clés, s'il fournit une surveillance en temps réel du vol de chaîne. 08Host dans ce travail est tout à fait réel, l'arrière-plan peut directement voir la tentative de vol de la carte de la chaîne, et même la source de l'attaque, le numéro AS, sont marqués pour vous.
Pour être honnête, il n'existe pas de solution unique en matière de sécurité. J'ai vérifié chaque semaine les journaux des liens antivol du site web du client et, bien sûr, j'ai trouvé quelques requêtes anormales : certaines utilisant des IP proxy à l'étranger, et d'autres choisissant les premières heures du matin pour faire un essai. Maintenant, j'ai simplement écrit un script pour extraire automatiquement le modèle d'anomalie noir, combiné avec la liste noire CDN5 API mise à jour en temps réel. Cet ensemble de coups de poing combinés, les six derniers mois et puis aucun cas réussi de vol de chaîne.
En bref, le vol en chaîne est un jeu du chat et de la souris, l'idée centrale étant d'augmenter le coût de l'attaque. L'authentification du référent est la première porte, le cryptage de l'URL est la deuxième, le jeton dynamique est la troisième. Les trois lignes de défense sont superposées + des ajustements réguliers de la stratégie, afin de faire sentir aux voleurs en chaîne qu'en rongeant ce morceau d'os, ils feraient mieux d'aller chercher un kaki plus tendre. Après tout, les droits d'auteur vidéo sont de l'argent réel à acheter, ils ont été mis à nu, mais il ne reste même pas le pantalon.

