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

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

Почти весь трафик git.kernel.org генерируют боты: нагрузку создают скрапперы, а не люди.

Администратор инфраструктуры kernel.org Константин Рябцев поделился результатами разбора трафика на сервисе git.kernel.org. Этот ресурс используется для просмотра git-репозиториев проектов, связанных с ядром Linux. По словам администратора, ежедневно обрабатывается примерно 6 млн запросов о коммитах, и значительная их часть — дело рук автоматизированных программ.

Из этого потока 66% запросов удаётся отсечь с помощью системы Anubis, которая требует выполнения вычислений на JavaScript: нужно подобрать значение, дающее SHA-256 с определённым числом нулей. Оставшиеся 33% проходят проверку, но выяснить, кто из них человек, а кто — продвинутый бот, почти невозможно. Однако по характеру обращений администраторы пришли к выводу, что лишь около 2% запросов можно считать легитимными. Остальные 98% — это скрапперы, которые перебирают данные через web-интерфейс вместо того, чтобы один раз выполнить git clone.

Ботов выдаёт, например, обращение к старым коммитам в случайных ветках — такая активность вряд ли нужна человеку в реальной работе. Вместо загрузки полной истории боты шлют миллиарды запросов, многократно запрашивая одни и те же данные с разными параметрами, что создаёт колоссальную паразитную нагрузку. Простая блокировка по IP тут не работает: скрапперы используют миллионы случайных адресов из домашних и мобильных сетей, полученных через ботнеты и монетизацию браузерных дополнений. С каждого адреса приходит всего 4–5 запросов, поэтому межсетевые экраны бессильны.

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

Чтобы снизить нагрузку, администраторы планируют урезать функциональность сервиса: отключить ресурсоёмкие операции, ограничить анонимный доступ и сократить количество ссылок для навигации. Пока это вынужденная мера, чтобы сохранить работоспособность ресурса для реальных пользователей.

Ссылка на основную публикацию