Konstantin Ryabtsev, administratoren av kernel.org-infrastrukturen, publiserte resultatene av en analyse av trafikken til git.kernel.org-tjenesten, som tillater visning av innholdet i Git-repositorier for prosjekter relatert til kjerneutvikling. LinuxTjenesten behandler omtrent 6 millioner forespørsler om commit-informasjon daglig, hvorav 66 % kommer fra roboter, som blokkeres av Anubis-systemet. 33 % av forespørslene verifiseres av Anubis-systemet, som bare tillater tilgang etter brute-forcering av en JavaScript-verdi hvis SHA-256-hash, kombinert med den serversendte strengen, inneholder et visst antall innledende nuller (denne oppgaven krever CPU-ressurser for å løse, men krever ikke ressurser for verifisering).
Det er umulig å fastslå nøyaktig hvilke av disse 33 % som er mennesker og hvilke som er avanserte roboter, men basert på forespørslenes art har det blitt konkludert med at den totale andelen legitime forespørsler er omtrent 2 %, mens de resterende 98 % kommer fra skrapere. En indikator på roboter er direkte forespørsler om gamle commits i tilfeldige gamle grener som sannsynligvis ikke vil være nødvendige for mennesker. Botaktivitet skaper en enorm parasittisk belastning på servere Fordi i stedet for å laste ned all koden og commit-historikken én gang via «git clone»-operasjonen, sender roboter milliarder av forespørsler, prøver alle mulige alternativer gjennom webgrensesnittet og ber gjentatte ganger om de samme dataene med forskjellige parametere.
Blokkering av roboter av IP-adresser og autonome systemer sluttet raskt å virke, ettersom roboter gikk over til å sende forespørsler fra millioner av tilfeldige IP-adresser fra hjemme- eller mobilnettverk, innhentet gjennom botnettaktivitet eller pengeinntjening fra nettlesertillegg. Hver adresse sender bare 4–5 forespørsler, noe som gjør det ubrukelig å blokkere dem på brannmurnivå.
En stund hjalp Anubis-systemet med å blokkere roboter, men over tid tilpasset robotene seg til å utføre beregningene som Anubis tilbød. Blant annet lærte robotene å løse problemer på vanskelighetsnivå 5, men det er problematisk å øke vanskelighetsnivået, ettersom selv nivå 5 krever flere sekunder med beregning og er svært irriterende for legitime brukere.
Som et resultat bruker betjening av skraperforespørsler i kernel.org-infrastrukturen mer ressurser enn alle andre typer legitime operasjoner, inkludert «git clone». servereTil enhver tid er 14–16 av de 90 CPU-kjernene som betjener git.kernel.org konstant opptatt med å vise Git-commits til roboter. For å redusere belastningen prøver administratorer nå å skalere ned tjenestens funksjoner, deaktivere noen ressurskrevende operasjoner, begrense anonym tilgang og redusere antall lenker som er tilgjengelige for navigasjon.
Kilde: opennet.ru
