98% запросов к git.kernel.org формируют боты, создавая огромную паразитную нагрузку

Константин Рябцев, администратор инфраструктуры kernel.org, опубликовал результаты анализа трафика сервиса git.kernel.org, позволяющего просматривать содержимое git-репозиториев проектов, связанных с разработкой ядра Linux. Ежедневно сервис обрабатывает около 6 млн запросов информации о коммитах, из которых 66% приходятся на ботов, которых удаётся блокировать при помощи системы Anubis. 33% запросов проходят проверку системы Anubis, разрешающей вход только после подбора на языке JavaScript значения, хэш SHA-256 от которого в сочетании с выданной сервером строкой содержит определённое число лидирующих нулей (данная задача требует ресурсов CPU для решения, но не требует ресурсов для проверки).

Точно определить кто из этих 33% люди, а кто продвинутые боты, невозможно, но по характеру обращений сделан вывод, что общая доля легитимных запросов примерно 2%, а остальные 98% приходятся на скрапперы. Одним из признаков ботов рассматриваются прямые запросы старых коммитов в случайных старых ветках, которые маловероятно, что могут понадобиться людям в работе. Активность ботов создаёт огромную паразитную нагрузку на серверы так как вместо того, чтобы один раз загрузить весь код и историю коммитов через операцию «git clone» боты отправляют миллиарды запросов, перебирая все варианты обращения через web-интерфейс и многократно запрашивая одни и те же данные с разными параметрами.

Блокировка ботов по IP-адресам и автономным системам достаточно быстро перестала работать, так как боты перешли на отправку запросов с миллионов случайных IP-адресов из домашних или мобильных сетей, полученных в результате активности ботнетов или монетизации браузерных дополнений. С каждого адреса отправляется лишь 4-5 запросов, поэтому блокировать их на уровне межсетевого экрана бесполезно.

Какое-то время блокировать боты помогала система Anubis, но со временем боты адаптировали для выполнения предлагаемых в Anubis вычислений. Среди прочего боты научились решать задачу 5 уровня сложности, а дальше повышать уровень проблематично, так как даже пятый уровень требует нескольких секунд вычислений и сильно раздражает легитимных пользователей.

В итоге, на обслуживание запросов скрапперов в инфраструктуре kernel.org приходится тратить больше ресурсов, чем на все остальные виды легитимных операций, включая «git clone». На 5 серверах, обслуживающих git.kernel.org, в любой момент времени 14-16 из имеющихся 90 ядер CPU постоянно заняты отображением git-коммитов для ботов. Для того чтобы снизить нагрузку администраторы теперь пытаются урезать возможности сервиса, отключить некоторые ресурсоёмкие операции, ограничить анонимный доступ и сократить число доступных для навигации ссылок.

Источник: opennet.ru

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster