Константин Рябцев, администратор на инфраструктурата на kernel.org, публикува резултатите от анализа на трафика на услугата git.kernel.org, която позволява преглед на съдържанието на git хранилища на проекти, свързани с разработката на ядрото на Linux. Всеки ден услугата обработва около 6 милиона запитвания за информация за комити, от които 66% са от роботи, които успяваме да блокираме с помощта на системата Anubis. 33% от запитванията преминават проверка от системата Anubis, която разрешава вход само след подбиране на стойност на езика JavaScript, хеш SHA-256 от която в комбинация с издадената от сървъра строка съдържа определен брой водещи нули (тази задача изисква ресурси на CPU за решаване, но не изисква ресурси за проверка).
Точно да се определи кой от тези 33% е човек, а кой напреднал робот, е невъзможно, но по характеристиките на запитванията е направен извод, че общият дял на легитимните запитвания е приблизително 2%, а останалите 98% са от скрепери. Един от признаците на роботите се счита за директни запитвания за стари комити в случайни стари клонове, които е малко вероятно да са нужни на хората в работата. Активността на роботите създава огромно паразитно натоварване на сървъри тъй като вместо да заредят целия код и историята на комитите чрез операцията 'git clone', роботите изпращат милиарди запитвания, опитвайки всички варианти на достъп през уеб интерфейса и многократно запитвайки същите данни с различни параметри.
Блокирането на роботи по IP адреси и автономни системи достатъчно бързо спря да работи, тъй като роботите преминаха към изпращане на запитвания от милиони случайни IP адреси от домашни или мобилни мрежи, получени в резултат на активността на ботнети или монетизация на браузърни добавки. От всеки адрес се изпращат само 4-5 запитвания, така че блокирането им на ниво междусетеви екрани е безполезно.
Някога блокирането на роботите помагаше със системата Anubis, но с времето роботите се адаптираха да изпълняват изискванията, предлагани от Anubis. Между другото роботите научиха как да решават задача от 5-то ниво на трудност, а след това увеличаването на нивото е проблематично, тъй като дори петото ниво изисква няколко секунди изчисления и силно дразни легитимните потребители.
В крайна сметка, за обслужването на заявките на скраперите в инфраструктурата на kernel.org се харчат повече ресурси, отколкото за всички останали видове легитимни операции, включително „git clone“. На 5 сървъри, обслужващи git.kernel.org, по всяко време 14-16 от наличните 90 ядра CPU постоянно са заети с показването на git-комити за ботовете. За да намалят натоварването, администраторите сега се опитват да ограничат възможностите на услугата, да деактивират някои ресурсоемки операции, да ограничат анонимния достъп и да намалят броя на наличните за навигация линкове.
Източник: opennet.ru
