k47.cz
mastodon twitter RSS
bandcamp explorer 0xDEADBEEF
««« »»»

Zablokoval jsem 1.5 milionu ip adres

— k47

Minule jsem psal, jak byl bandcamp explorer neustále pod palbou ai společností. Jejich crawlery se snažili sáhnout každý bajt každé stránky na internetu, aby ho vzápětí hodili do křemíkového kotle ai modelů. Když jsem zablokoval čtyři nebo pět rozsahů ip adres, které páchaly největší škodu, počet dotazů se propadl z 2.5 milionu denně na 200-600 tisíc.

To byl jen začátek.

Včera jsem se díval do logů webserveru a tam na mě čekal dárek: tisíce ip adres stahovaly url, které BC explorer nikdy nemohl sám vrátit.

Asi takhle: FGCI aplikace, která BC explorer pohání, brala v potaz jen query část adresy. To je ten kus za otazníkem, třeba v url https://example.com/who/is?q=luigi je to ?q=luigi. Cestu, /who/is v ukázce, to zcela ignorovalo. Dvě různá url s identickými query, ale různými cestami, vrátila identický obsah. Hloupé crawlery je přesto považovali za dvě různé stránky. Jejich adresy se lišily a odpovědí nebylo přesměrování.

Nějakým způsobem se muselo stát, že crawler načetl jednu adresu vedoucí na BC explorer s neprázdnou cestou a dostal zpátky validní stránku s odkazy na další stránky se stejnou cestou. Najednou viděl paralelní vesmír s identickým obsahem, ale odlišnými jmény a začal stahovat. (Mimochodem nebyla to zcela náhodná cesta, ale část specifické adresy, která existuje na internetu a dá se snadno najít.)

Tohle byla chyba na mojí straně. Adresy je dobré držet unikátní a přesměrovávat na kanonické url. Ale moje chyba se stala požehnáním, protože každé ip, která kdy stáhla stránku s těmito druhy adres, můžu přímo zablokovat. Očividně patří do koordinovaného botnetu.

A tak jsem zablokoval milion a půl ip adres. Prohnal jsem logy grepem, adresy převedl do binárního formátu a seřadil. Teď FCGI aplikace začne každý dotaz binárním hledáním, jestli ip adresa odesílatele není bloklá. Většinou je.

Tady máte počty přístupů po hodinách.

200 = dotaz není blokován. 403, žlutá = bot otravuje z blokované adresy. 404, černá = bot se snaží načíst očividně špatné url, měl by být zablokován.

Je vidět, že i když blokuju mega a půl ipček, stejně to vyhmátne jen část nelegitimního provozu. Obrovské množství maligních ip adres položí jen jeden dotaz a už se nikdy neukáže.

Sčítání škod: Začal jsem v situaci, kdy byl server bombardován 2.5 milionu dotazů denně a končím, kdy každý den projde 84000 potenciálně legitimních dotazů. To je jen 3.4% a nejde pouze o aktivitu lidí. Z velké části jsou to stále boti. Jen se chovají slušně nebo se umí lépe maskovat.

píše k47, ascii@k47.cz