Konstantin Ryabtsev, správce infrastruktury kernel.org, zveřejnil výsledky analýzy provozu služby git.kernel.org, která umožňuje prohlížet obsah git-repozitářů projektů souvisejících s vývojem jádra Linux. Služba denně zpracovává přibližně 6 milionů dotazů na informace o commitech, z nichž 66 % tvoří roboti, které se daří blokovat systémem Anubis. 33 % dotazů prochází kontrolou systému Anubis, který povoluje vstup pouze po zjištění hodnoty v jazyce JavaScript, jejíž SHA-256 hash v kombinaci s řetězcem vydaným serverem obsahuje určité množství vedoucích nul (tento úkol vyžaduje CPU zdroje pro řešení, ale nevyžaduje zdroje pro kontrolu).
Přesně určit, kteří z těchto 33 % jsou lidé a kteří pokročilé boti, není možné, ale podle charakteru dotazů bylo zjištěno, že celkový podíl legitimních dotazů je přibližně 2 %, zatímco zbývajících 98 % tvoří scrappery. Jedním z znaků robotů jsou přímé dotazy na staré commity v náhodných starých větvích, které je velmi nepravděpodobné, že by lidé potřebovali ke své práci. Aktivita robotů vytváří obrovskou parazitní zátěž na servery protože místo toho, aby jednou stáhli celý kód a historii commitů pomocí operace „git clone“, roboti zasílají miliardy dotazů, přičemž procházejí všechny varianty přístupu prostřednictvím webového rozhraní a opakovaně požadují stejná data s různými parametry.
Blokování robotů na IP adresy a autonomních systémech přestalo být dostatečně efektivní, protože roboti přešli na zasílání dotazů z milionů náhodných IP adres z domácích nebo mobilních sítí, získaných v důsledku aktivity botnetů nebo monetizace prohlížečových doplňků. Z každé adresy je odesíláno pouze 4-5 dotazů, takže jejich blokování na úrovni firewallu je zbytečné.
Nějakou dobu pomáhal systém Anubis blokovat roboty, ale s časem se roboti přizpůsobili k provádění výpočtů nabízených v Anubis. Mezi jiným se roboti naučili řešit úkol páté úrovně složitosti, a dále zvyšovat úroveň je problematické, protože i pátá úroveň vyžaduje několik sekund výpočtů a značně rozčiluje legitimní uživatele.
Nakonec si infrastruktura kernel.org vyžaduje více prostředků na obsluhu požadavků scraperů než na všechny ostatní legální operace, včetně "git clone". Na 5 serverech, obsluhující git.kernel.org, je v každém okamžiku 14-16 z 90 dostupných CPU jader neustále vytíženo zobrazováním git commitů pro boty. Aby se snížila zátěž, se administrátoři nyní snaží omezit možnosti služby, vypnout některé náročné operace, omezit anonymní přístup a zkrátit počet dostupných odkazů pro navigaci.
Zdroj: opennet.ru
