Konstantin Ryabtsev, Administrator der Infrastruktur von kernel.org, hat die Ergebnisse der Analyse des Datenverkehrs des Dienstes git.kernel.org veröffentlicht, der es ermöglicht, Inhalte von Git-Repositories von Projekten, die mit der Entwicklung des Linux-Kernels zusammenhängen, einzusehen. Täglich verarbeitet der Dienst etwa 6 Millionen Informationsanfragen zu Commits, von denen 66% auf Bots entfallen, die mit Hilfe des Anubis-Systems blockiert werden können. 33% der Anfragen durchlaufen die Überprüfung des Anubis-Systems, das den Zugang nur nach dem Finden eines Wertes in JavaScript erlaubt, dessen SHA-256-Hash in Kombination mit einer vom Server ausgegebenen Zeichenkette eine bestimmte Anzahl führender Nullen enthält (diese Aufgabe erfordert CPU-Ressourcen zur Lösung, benötigt jedoch keine Ressourcen zur Überprüfung).
Es ist unmöglich genau zu bestimmen, wer von diesen 33% Menschen und wer fortgeschrittene Bots sind, aber aus der Art der Anfragen wird der Schluss gezogen, dass der Gesamtanteil legitimer Anfragen etwa 2% beträgt, während die restlichen 98% auf Scraper entfallen. Eines der Merkmale von Bots sind direkte Anfragen zu alten Commits in zufälligen alten Branches, die vermutlich für Menschen in ihrer Arbeit nicht benötigt werden. Die Aktivität der Bots erzeugt eine enorme parasitäre Belastung auf Server da Bots anstelle von einmaligem Herunterladen des gesamten Codes und der Geschichte von Commits über den Befehl „git clone“ Milliarden von Anfragen senden, indem sie alle möglichen Anfragemöglichkeiten über die Web-Oberfläche durchgehen und wiederholt dieselben Daten mit unterschiedlichen Parametern anfordern.
Die Blockierung von Bots durch IP-Adressen und autonome Systeme hörte relativ schnell auf zu funktionieren, da die Bots auf das Senden von Anfragen von Millionen zufälliger IP-Adressen aus privaten oder mobilen Netzwerken umgestiegen sind, die durch die Aktivität von Botnets oder die Monetarisierung von Browsererweiterungen erhalten wurden. Von jeder Adresse werden nur 4-5 Anfragen gesendet, deshalb ist es nutzlos, sie auf der Ebene der Firewall zu blockieren.
Eine Zeit lang half das Anubis-System dabei, Bots zu blockieren, aber im Laufe der Zeit haben sich die Bots angepasst, um die in Anubis vorgeschlagenen Berechnungen durchzuführen. Unter anderem haben die Bots gelernt, ein Problem des Schwierigkeitsgrads 5 zu lösen, und es ist schwierig, die Stufe weiter zu erhöhen, da selbst die fünfte Stufe mehrere Sekunden Berechnungen erfordert und legitime Benutzer stark irritiert.
Letztendlich werden mehr Ressourcen für die Bearbeitung von Scraper-Anfragen in der Infrastruktur von kernel.org aufgewendet als für alle anderen Arten legitimer Operationen, einschließlich „git clone“. Auf 5 Servern, die git.kernel.org bedienen, sind jederzeit 14-16 der insgesamt 90 CPU-Kerne dauerhaft mit der Anzeige von git-Commits für Bots beschäftigt. Um die Last zu reduzieren, versuchen die Administratoren nun, die Dienstleistungsfähigkeiten einzuschränken, einige ressourcenintensive Operationen abzuschalten, anonymen Zugang zu beschränken und die Anzahl der verfügbaren Navigationslinks zu reduzieren.
Quelle: opennet.ru
