Konstantin Ryabtsev, administrateur de l'infrastructure kernel.org, a publié les résultats d'une analyse du trafic du service git.kernel.org, qui permet de visualiser le contenu des dépôts Git des projets liés au développement du noyau. LinuxLe service traite environ 6 millions de requêtes d'informations de commit par jour, dont 66 % proviennent de bots, bloqués par le système Anubis. 33 % des requêtes sont vérifiées par Anubis, qui n'autorise l'accès qu'après avoir trouvé par force brute une valeur JavaScript dont le hachage SHA-256, combiné à la chaîne envoyée par le serveur, contient un certain nombre de zéros non significatifs (cette tâche nécessite des ressources CPU pour être résolue, mais pas pour la vérification).
Il est impossible de déterminer avec précision lesquels de ces 33 % sont des humains et lesquels sont des bots sophistiqués, mais d'après la nature des requêtes, on estime que la part des requêtes légitimes est d'environ 2 %, les 98 % restants provenant de scrapers. Un indicateur de la présence de bots est la requête directe de modifications anciennes dans des branches anciennes aléatoires, peu susceptibles d'être utilisées par des humains. L'activité des bots engendre une charge parasitaire considérable sur le système. serveurs Car au lieu de télécharger une seule fois tout le code et l'historique des commits via l'opération « git clone », les bots envoient des milliards de requêtes, essayant toutes les options possibles via l'interface web et demandant à plusieurs reprises les mêmes données avec des paramètres différents.
Bloquer les bots par adresses IP Les systèmes autonomes ont rapidement cessé de fonctionner, les bots ayant commencé à envoyer des requêtes depuis des millions d'adresses IP aléatoires, issues de réseaux domestiques ou mobiles, obtenues grâce à l'activité de botnets ou à la monétisation d'extensions de navigateur. Chaque adresse n'envoie que 4 à 5 requêtes, rendant leur blocage au niveau du pare-feu inefficace.
Le système Anubis a un temps permis de bloquer les bots, mais ces derniers ont fini par s'adapter et effectuer les calculs qu'il propose. Ils ont notamment appris à résoudre des problèmes de niveau 5, mais augmenter la difficulté pose problème, car même le niveau 5 exige plusieurs secondes de calcul et s'avère très agaçant pour les utilisateurs légitimes.
Par conséquent, le traitement des requêtes de scraping dans l'infrastructure kernel.org consomme plus de ressources que tous les autres types d'opérations légitimes, y compris « git clone ». серверахÀ tout moment, 14 à 16 des 90 cœurs de processeur assurant le service git.kernel.org sont constamment sollicités par l'affichage des commits Git aux robots. Afin de réduire la charge, les administrateurs tentent actuellement de limiter les capacités du service, de désactiver certaines opérations gourmandes en ressources, de restreindre l'accès anonyme et de réduire le nombre de liens disponibles pour la navigation.
Source: opennet.ru
