Konstantin Ryabtsev, amministratore dell'infrastruttura kernel.org, ha pubblicato i risultati dell'analisi del traffico del servizio git.kernel.org, che consente di visualizzare il contenuto dei git repository dei progetti legati allo sviluppo del kernel Linux. Quotidianamente il servizio gestisce circa 6 milioni di richieste di informazioni sui commit, delle quali il 66% proviene da bot, che vengono bloccati utilizzando il sistema Anubis. Il 33% delle richieste viene verificato dal sistema Anubis, che consente l'accesso solo dopo aver calcolato in JavaScript un valore il cui hash SHA-256, insieme alla stringa fornita dal server, contiene un certo numero di zeri iniziali (questo task richiede risorse CPU per essere risolto, ma non richiede risorse per la verifica).
Determinare con esattezza chi tra questi 33% siano persone e chi bot avanzati è impossibile, ma in base alla natura delle richieste si è concluso che la quota complessiva di richieste legittime è di circa il 2%, mentre il restante 98% è costituito da scraper. Uno dei segnali distintivi dei bot è rappresentato dalle richieste dirette ai vecchi commit in vecchi rami casuali, che è poco probabile possano essere utili alle persone nel loro lavoro. L'attività dei bot crea un'enorme carico parassitario su servers poiché, invece di scaricare una sola volta tutto il codice e la cronologia dei commit tramite l'operazione "git clone", i bot inviano miliardi di richieste, esplorando tutte le possibili query tramite l'interfaccia web e richiedendo ripetutamente gli stessi dati con parametri diversi.
Il blocco dei bot tramite indirizzi IP. e le sistemi autonomi ha smesso di funzionare rapidamente, poiché i bot hanno iniziato a inviare richieste da milioni di indirizzi IP casuali provenienti da reti domestiche o mobili, ottenuti grazie all'attività di botnet o alla monetizzazione di estensioni del browser. Da ogni indirizzo vengono inviati solo 4-5 richieste, quindi bloccarli a livello di firewall è inutile.
Per un certo periodo, il sistema Anubis aiutava a bloccare i bot, ma nel tempo i bot si sono adattati per eseguire i calcoli richiesti da Anubis. Tra l'altro, i bot hanno imparato a risolvere il problema di quinto livello di difficoltà, e aumentare il livello oltre ciò è problematico, poiché anche il quinto livello richiede alcuni secondi di calcolo e irrita notevolmente gli utenti legittimi.
Alla fine, per gestire le richieste dei crawler nell'infrastruttura di kernel.org si spendono più risorse rispetto a tutte le altre operazioni legittime, incluso «git clone». Su 5 server, che servono git.kernel.org, in ogni momento 14-16 dei 90 core della CPU disponibili sono costantemente occupati a mostrare i commit git per i bot. Per ridurre il carico, gli amministratori stanno ora cercando di limitare le funzionalità del servizio, disattivare alcune operazioni ad alta intensità di risorse, limitare l'accesso anonimo e ridurre il numero di collegamenti navigabili disponibili.
Fonte: opennet.ru
