Konstantin Ryabtsev, infrastructuurbeheerder van kernel.org, heeft de resultaten van een verkeersanalyse van de service git.kernel.org gepubliceerd, waarmee de inhoud van git-repositories van projecten gerelateerd aan de ontwikkeling van de Linux-kernel kan worden bekeken. De service verwerkt dagelijks ongeveer 6 miljoen verzoeken om informatie over commits, waarvan 66% afkomstig is van bots, die kunnen worden geblokkeerd met behulp van het Anubis-systeem. 33% van de verzoeken worden gecontroleerd door het Anubis-systeem, dat toegang alleen toestaat nadat een waarde is gevonden in JavaScript die, samen met de door de server uitgegeven string, een bepaald aantal leidende nullen bevat (deze taak vereist CPU-resources om op te lossen, maar niet voor de verificatie).
Het is onmogelijk om precies te bepalen wie van deze 33% mensen zijn en wie geavanceerde bots, maar op basis van het soort verzoeken is geconcludeerd dat het totale aandeel van legitieme aanvragen ongeveer 2% is, terwijl de overige 98% afkomstig zijn van scrapers. Een van de tekenen van bots zijn directe verzoeken voor oude commits in willekeurige oude takken, die onwaarschijnlijk zijn dat ze door mensen in hun werk nodig zijn. De activiteit van bots creƫert enorme parasitaire belasting op servers omdat bots in plaats van de volledige code en geschiedenis van commits in ƩƩn keer te downloaden via de 'git clone'-bewerking, miljarden verzoeken verzenden en alle varianten van benaderingen via de webinterface doorlopen, waarbij ze herhaaldelijk dezelfde gegevens met verschillende parameters opvragen.
Het blokkeren van bots op IP-adressen en autonome systemen stopt vrij snel met werken, omdat bots begonnen zijn verzoeken te verzenden vanaf miljoenen willekeurige IP-adressen uit huishoudelijke of mobiele netwerken, verkregen door de activiteit van botnets of door browser-add-ons te monetiseren. Van elk adres worden slechts 4-5 verzoeken verzonden, dus het is nutteloos om ze op firewall-niveau te blokkeren.
Een tijdlang hielp het Anubis-systeem om bots te blokkeren, maar na verloop van tijd hebben bots zich aangepast om de berekeningen die door Anubis worden aangeboden uit te voeren. Onder andere hebben bots geleerd om de taak van niveau 5 moeilijkheidsgraad op te lossen, en het is problematisch om het niveau verder te verhogen, omdat zelfs het vijfde niveau enkele seconden rekenkracht vereist en dat irriteert legitieme gebruikers sterk.
Uiteindelijk vereist de verwerking van verzoeken van scrapers in de infrastructuur van kernel.org meer middelen dan alle andere soorten legitieme operaties, inclusief "git clone". Op 5 servers, die git.kernel.org bedienen, zijn op elk moment 14-16 van de 90 beschikbare CPU-kernen voortdurend bezig met het weergeven van git-commits voor bots. Om de belasting te verlagen, proberen beheerders nu de mogelijkheden van de service te beperken, bepaalde middelenintensievere operaties uit te schakelen, anonieme toegang te beperken en het aantal beschikbare navigatielinks te verminderen.
Bron: opennet.ru
