Konstantin Ryabtsev, administrator infrastrukture kernel.org, objavio je rezultate analize prometa usluge git.kernel.org, koja omogućuje pregledavanje sadržaja git repozitorija projekata povezanih s razvojem Linux jezgre. Usluga svakodnevno obrađuje oko 6 milijuna zahtjeva za informacijama o commitima, od kojih se 66% odnosi na botove, koje se uspijeva blokirati pomoću sustava Anubis. 33% zahtjeva prolazi provjeru sustava Anubis, koji dopušta ulaz samo nakon što se na jeziku JavaScript pronađe vrijednost čiji hash SHA-256, u kombinaciji s stringom izdanom od strane poslužitelja, sadrži određeni broj vodećih nula (ovaj zadatak zahtijeva CPU resurse za rješavanje, ali ne zahtijeva resurse za provjeru).
Točno odrediti tko od tih 33% su ljudi, a tko napredni botovi, nemoguće je, ali na temelju karaktera zahtjeva došlo se do zaključka da ukupni udio legitimnih zahtjeva iznosi otprilike 2%, a preostalih 98% otpada na scrapere. Jedan od znakova botova smatraju se izravni zahtjevi za starim commitima u slučajnim starim granama, koji su malo vjerojatni da bi mogli biti potrebni ljudima u radu. Aktivnost botova stvara ogromno parazitsko opterećenje na servere jer umjesto da jednom preuzmu cijeli kod i povijest commitova putem operacije „git clone“, botovi šalju milijarde zahtjeva, isprobavajući sve opcije pristupa putem web sučelja i neprekidno tražeći iste podatke s različitim parametrima.
Blokiranje botova putem IP adrese i autonomnih sistema prestalo je relativno brzo funkcionirati, budući da su botovi prešli na slanje zahtjeva s milijuna nasumičnih IP adresa iz kućnih ili mobilnih mreža, dobivenih kao rezultat aktivnosti botneta ili monetizacije dodataka preglednicima. S svake adrese šalje se samo 4-5 zahtjeva, pa je beskorisno blokirati ih na razini vatrozida.
Neko vrijeme blokiranje botova pomogla je sustav Anubis, ali s vremenom su se botovi prilagodili za izvršavanje izračuna predloženih u Anubisu. Osim toga, botovi su naučili rješavati problem 5. nivoa težine, a daljnje povećavanje nivoa je problematično, jer čak i peti nivo zahtijeva nekoliko sekundi proračuna i jako iritira legitimne korisnike.
Na kraju, za obranu zahtjeva sakupljača u infrastrukturi kernel.org troši se više resursa nego za sve ostale vrste legitimnih operacija, uključujući „git clone“. Na 5 poslužiteljima, koji posluju na git.kernel.org, u bilo kojem trenutku 14-16 od dostupnih 90 CPU jezgri stalno je zauzeto prikazivanjem git commit-a za botove. Kako bi se smanjilo opterećenje, administratori sada pokušavaju smanjiti mogućnosti servisa, onemogućiti neke resursno zahtjevne operacije, ograničiti anoniman pristup i smanjiti broj dostupnih linkova za navigaciju.
Izvor: opennet.ru
