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 consulter le contenu des dĂ©pĂŽts git des projets liĂ©s au dĂ©veloppement du noyau Linux. Chaque jour, le service traite environ 6 millions de requĂȘtes d'informations sur les commits, dont 66 % proviennent de bots que l'on parvient Ă bloquer grĂące au systĂšme Anubis. 33 % des requĂȘtes passent par le systĂšme Anubis, qui n'autorise l'accĂšs qu'aprĂšs avoir trouvĂ© en JavaScript une valeur dont le hachage SHA-256, combinĂ© avec une chaĂźne fournie par le serveur, comporte un certain nombre de zĂ©ros initiaux (cette tĂąche nĂ©cessite des ressources CPU pour ĂȘtre rĂ©solue, mais pas pour la vĂ©rification).
Il est impossible de dĂ©terminer exactement qui parmi ces 33 % sont des humains et qui sont des bots avancĂ©s, mais en raison de la nature des requĂȘtes, on conclut que la part totale des requĂȘtes lĂ©gitimes est d'environ 2 %, tandis que les 98 % restants concernent des scrapers. L'une des caractĂ©ristiques des bots est de faire des requĂȘtes directes sur d'anciens commits dans des branches anciennes au hasard, ce qui est peu probable qu'il soit nĂ©cessaire pour les humains dans leur travail. L'activitĂ© des bots gĂ©nĂšre une Ă©norme surcharge parasite sur serveurs car au lieu de 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, parcourant toutes les options d'accĂšs via l'interface web et demandant sans cesse les mĂȘmes donnĂ©es avec diffĂ©rents paramĂštres.
Le blocage des bots par adresses IP et systĂšmes autonomes a rapidement cessĂ© de fonctionner, car les bots ont commencĂ© Ă envoyer des requĂȘtes depuis des millions d'adresses IP alĂ©atoires provenant de rĂ©seaux domestiques ou mobiles, obtenues grĂące Ă l'activitĂ© de botnets ou Ă la monĂ©tisation d'extensions de navigateur. Depuis chaque adresse, seulement 4 Ă 5 requĂȘtes sont envoyĂ©es, il est donc inutile de les bloquer au niveau du pare-feu.
Pendant un certain temps, le systĂšme Anubis a aidĂ© Ă bloquer les bots, mais avec le temps, les bots se sont adaptĂ©s pour rĂ©aliser les calculs proposĂ©s dans Anubis. Parmi d'autres, les bots ont appris Ă rĂ©soudre des problĂšmes de niveau 5 de difficultĂ©, et il devient difficile d'augmenter le niveau car mĂȘme le cinquiĂšme niveau nĂ©cessite plusieurs secondes de calcul, ce qui agace fortement les utilisateurs lĂ©gitimes.
En fin de compte, la gestion des requĂȘtes des scrapers dans l'infrastructure de kernel.org nĂ©cessite plus de ressources que toutes les autres opĂ©rations lĂ©gitimes, y compris « git clone ». Sur 5 serveurs, servant git.kernel.org, Ă tout moment, 14-16 des 90 cĆurs CPU disponibles sont constamment occupĂ©s Ă afficher les commits git pour les bots. Afin de rĂ©duire la charge, les administrateurs essaient dĂ©sormais de restreindre les capacitĂ©s du service, de dĂ©sactiver certaines opĂ©rations gourmandes en ressources, de limiter l'accĂšs anonyme et de rĂ©duire le nombre de liens disponibles pour la navigation.
Source : opennet.ru
