Константин Рябицев опубликовал технический разбор «Creepy crawlies» о влиянии сканеров с искусственным интеллектом на нагрузку git.kernel.org. В нём приведены измерения этой нагрузки.
На пяти географически распределённых узлах 14–16 из 90 процессорных ядер постоянно заняты подготовкой коммитов для сканеров. В среднем это составляет 20 процентов мощности сайта.
В linux.git около 1,48 миллиона коммитов, а на git.kernel.org размещено около 922 его форков. Это создаёт для сканеров миллиарды допустимых адресов с повторяющимся содержимым.
Для защиты сайт поставил Anubis перед ресурсами: клиент должен вычислить строку, которая вместе с его адресом и секретом даёт SHA256-сумму с четырьмя начальными нулями. Сейчас git.kernel.org получает около шести миллионов ежедневных запросов к случайным коммитам, и 66 процентов отсекает проверка Anubis.
Проверка утверждений:
- Константин Рябицев опубликовал технический разбор «Creepy crawlies», в котором приводит измерения влияния сканеров с искусственным интеллектом на нагрузку git.kernel.org. (подтверждено самой публикацией: доказательство; «You’ve probably heard me complain about the “AI crawlers” before, but now I actually have some hard numbers I can put up to show their impact.»)
- На пяти географически распределённых узлах 14 процессорных ядер постоянно заняты подготовкой HTML-представлений коммитов для сканеров. (подтверждено самой публикацией: доказательство; «At any one time, across 5 geo-distributed nodes, there are 14 CPU cores doing nothing but rendering git commits as html.»)
- В linux.git около 1,48 миллиона коммитов, а на git.kernel.org размещено около 922 его форков, что создаёт для сканеров миллиарды допустимых адресов с повторяющимся содержимым. (подтверждено самой публикацией: доказательство; «Unless, of course, you’re a scraper, in which case you have, oh, several BILLION valid URLs you can scrape, only to get 922 duplicates of the same 1.48 million commits — which is exactly what the scrapers are doing.»)
- Сканеры стали использовать миллионы жилых и мобильных адресов, делая с каждого по четыре-пять запросов и больше не появляясь в журналах. (подтверждено самой публикацией: доказательство; «Suddenly, the crawlers were coming from millions of random residential or mobile IPs, all pretending to be random modern browsers. An IP like that would make 4-5 requests and then never show up in the logs again.»)
- Для защиты сайт поставил Anubis перед ресурсами: клиент должен вычислить строку, которая вместе с его адресом и секретом даёт SHA256-сумму с четырьмя начальными нулями. (подтверждено самой публикацией: доказательство; «Like, calculate what string, when combined with their own IP and a secret we provide, would generate a sha256 sum with 4 leading zeroes.»)
- Сейчас git.kernel.org получает около шести миллионов ежедневных запросов к случайным коммитам; 66 процентов отсекает проверка Anubis, а 33 процента проходят её. (подтверждено самой публикацией: доказательство; «Today, git.kernel.org receives about 6M daily requests demanding to see random commits. Of these, 66% are still immediately batted away with the Anubis challenge, but 33% are now solving the math and getting through to the main site»)
- По оценке автора с рядом допущений, легитимные запросы составляют лишь около двух процентов трафика git.kernel.org, а остальное приходится на сканеры. (подтверждено самой публикацией: доказательство; «With a bunch of generous assumptions, legitimate requests are only about 2% of git.kernel.org traffic — everything else are scrapers.»)
- Из 90 ядер на пяти географически распределённых узлах 14–16 постоянно заняты подготовкой коммитов для сканеров, что в среднем составляет 20 процентов мощности сайта. (подтверждено самой публикацией: доказательство; «However, you should know that out of the total of the 90 cores across 5 geo-distributed nodes, there are 14-16 cores that are constantly doing nothing but rendering commits for scrapers. On average, that’s 20% of our entire capacity»)
- В ответ на нагрузку команда отключает возможности, уменьшающие число доступных для обхода адресов, и ограничивает анонимный доступ к ресурсоёмким операциям; часть функций может стать недоступной без авторизации. (подтверждено самой публикацией: доказательство; «In terms of what we’re doing, we’re turning off features to reduce the number of crawlable URLs and to gate off actions that are expensive for us to run. Expect to lose some functionality, at least when accessing our resources anonymously.»)
Первоисточники:
оценка 64.5 · тип incident · ревизия 1 · истории st-o3f1hs