Seitsemänkymmentä prosenttia liikenteestäni oli väärennettyä ja näin todistin sen yhdellä API-kutsulla

Analytiikan koontinäyttö osoitti kymmenen miljoonaa kuukausikäyntää. Kymmenen miljoonaa. Tämän numeron olisi pitänyt olla juhlan aihe, ja alkuun se olikin. Liikennekaaviot osoittivat ylöspäin, sivun katselujen määrät kasautuivat vaikuttavasti, ja kaistanleveyden käyttö heijasti sivustoa, joka näytti kukoistavan. Mutta pysyvä, ärsyttävä epäjohdonmukaisuus kieltäytyi poistumasta. Sitoutumisen mittarit kertoivat täysin eri tarinaa. Palautumisprosentit olivat astronomisesti korkeat. Istunnon kestoaika oli epäilyttävän lyhyt. Muuntosuhteet olivat hirveät suhteessa liikenteen määrään. Ja isännöintitoimittajan kaistanleveyslaskut olivat järkyttäviä, selvästi ylittävät sen, mitä kymmenen miljoonaa inhimillisen vierailijan pitäisi järkevällä tavalla kuluttaa, koska monet näistä "vierailijoista" pyysivät sivuja nopeudella ja mallilla, jota yksikään inhimillinen selausistunto ei tuottaisi.

Epäily alkoi hiljaisena tuntemuksena ja kasvoi vakaumukseksi kuukausien aikana. Jotain liikenteen kanssa oli vialla. Palvelimen lokit osoittivat valtavia määriä pyyntöjä käyttäjien agenteista, jotka väittivät olevansa Googlebot, Bingbot, ChatGPT:n crawler ja erilaisia muita laillisia hakukoneen crawlereita. Pintapuolisesti tämä näytti normaalilta. Suuri sivusto houkuttelee luonnollisesti raskaita crawler-toimintoja. Mutta määrä oli suhteeton, ja käyttäytymismallit olivat outoja. Oikeat crawlerit noudattavat robots.txt-ohjeita, välilevittelevät pyyntöjään välttääkseen palvelimen ylikuormittamisen, ja ne tulevat tunnetuista IP-alueista, jotka liittyvät niihin liittyviin yrityksiin. Suuri osa tästä liikenteestä ei tehnyt mitään näistä. Se hakatsi palvelinta armottomasti, jätti huomioimatta crawl-delay-direktiivejä ja tuli IP-osoitteista, jotka kuuluivat pilvipalvelun tarjoajille eikä Googlelle tai Microsoftille.

Lopullinen testi oli yllättävän yksinkertainen. Ota IP-osoite pyynnöstä, joka väittää olevansa Googlebot, ja tarkista, kuuluuko se todella Googlelle. Todellinen Googlebot tulee yksinomaan IP-osoitteista Googlen itsenäisen järjestelmän AS15169 sisällä. Jos pyyntö väittää olevansa Googlebot, mutta tulee AWS-IP-osoitteesta, DigitalOcean-osoitteesta tai mistään tahansa IP-osoitteesta Googlen tunnettujen alueiden ulkopuolella, se on ehdottomasti väärennös. Yksi API-kutsu botinpaljastuspalveluun IP-osoitteen ja käyttäjän agentti-merkkijonon kanssa, ja tuomio tuli takaisin välittömästi: ei oikeaa Googlen crawler-ohjelmaa. Tämä yksittäinen kutsu, toistettuna liikenteen näytteen yli, paljasti, että noin seitsemänkymmentä prosenttia kaikista käynneistä tuli boteista, jotka tekeytyivät laillisiksi crawlereiksi. Kymmenen miljoonan kuukausikäynnin sijasta luvut olivat lähempänä kolmea miljoonaa todellista ja seitsemän miljoonaa pyynnöstä imitaattoreista, jotka kuluttivat palvelinresursseja, paisuttivat kaistanleveyskustannuksia ja saastuttivat jokaisen analytiikan mittarin prosessissa.

Hetki, kun numerot lakkasivat järkevistä

Ymmärrys ei saapunut äkillisen oivalluksen kautta. Se kertyi pienistä havainnoista kuukausien aikana. Ensimmäinen vihjä oli kaistanleveyden laskut. Isännöintitoimittaja veloitti datan siirtämisestä, ja kuukausilasku nousi tasaisesti, vaikka sivuston sisältö ei ollut kasvanut suhteellisesti. Enemmän sivuja tarjoiltiin, mutta sivujen sisältö ei ollut muuttunut merkittävästi. Ylimääräistä kaistanleveyden oli kuluttava jotain, ja pääsylokitit osoittivat crawler-liikenteen pääasialliseksi kuljettajaksi. Tämä näytti järkevältä tämän kokoiselle sivustolle, joten huolenaihe hylättiin osana liiketoiminnan kuluina.

Toinen vihjee oli palvelimen kuormitus. CPU-käyttö huippuliikenne-tunneissa oli jatkuvasti korkeampi kuin odotettiin. Sovellus oli hyvin optimoitu, välimuistilla useilla tasoilla, ja laitteiston spesifikaatiot olisivat helposti käsitelleet liikenteen. Mutta kuormituskeskiarvot kertoivat eri tarinaa. Palvelin työskenteli kovasti, ja lisätyö korreloi ei käyttäjän liikenteen huippujen kanssa vaan jatkuvalla, ympärivuorokautisella pyynnön määrällä, joka ei koskaan putosi nollaan. Todellinen inhimillinen liikenne noudattaa ennustettavia malleja. Se huipentuu työpäivän aikana, laskee yöllä ja vaihtelee viikon päivän mukaan. Bottiliikenne toimii kaksikymmentäneljä tuntia päivässä, seitsemän päivää viikossa, tasaisella nopeudella, ja se oli näkyvissä kuormituskaavioissa perusviivana, joka ei koskaan laskenut tietylle kynnykselle.

Kolmas vihjee, ja se, joka lopulta laukaisi tutkimuksen, oli analytiikan ristiriita. Google Analytics, joka seuraa vain JavaScript-suorittavia vierailijoita, osoitti huomattavasti vähemmän liikennettä kuin palvelimen pääsylokit. Kahden numeron välinen ero oli bottiliikenne. Oikeat selaimet suorittavat JavaScript-koodia ja rekisteröityvät analytiikkaan. Botit, jotka pyytävät HTML-sivuja ilman JavaScript:n suorittamista, näkyvät palvelimen lokeissa, mutta eivät analytiikassa. Huomattava ero näiden kahden välillä on vahva indikaattori raskasta bottitoimintaa, ja tämän sivuston ero oli valtava.

Näiden havaintojen avulla tutkimus alkoi tosissaan. Tuhat pääsylokin merkintää, jotka väittivät olevan Googlbotilta, otettiin näytteeksi ja niiden IP-osoitteet tarkistettiin Googlen julkaisemien IP-alueiden suhteen. Tulos oli tuomitseva. Yli seitsemänsataa näistä tuhannesta pyynnöstä tuli IP-osoitteista, joilla ei ollut mitään yhteyttä Googlleen. Ne tulivat AWS:ltä, Hetzneriltä, OVH:ltä ja eri muista isännöintipalvelun tarjoajista. Käyttäjän agentti-merkkijono sanoi Googlebot, mutta IP-osoite sanoi satunnaisesta palvelimen data-keskuksessa. Analyysin laajentaminen Bingbotiin, ChatGPT:n crawleriin ja muihin väitettyihin identititeetteihin tuotti samankaltaiset tulokset. Liikenne oli ylivoimaisesti väärennös.

Kuinka yksi API-kutsu vahvistaa minkä tahansa crawlerin henkilöllisyyden

Varmistusprosessi, joka paljasti väärennös liikenteen, on käsitteellisesti yksinkertainen mutta käytännöllisesti väsyttävä toteuttaa alusta alkaen. Jokainen suurempi hakukone ja crawler toimii tietystä IP-alueesta, joka on sidottu heidän yrityksensä itsenäisen järjestelmän numeroon. Google käyttää AS15169:ää. Microsoft käyttää useita ASN:itä Bingin infrastruktuuria varten. OpenAI:n crawler käyttää omia määritettyjä alueita. Crawlerin varmistaminen tarkoittaa saapuvan pyynnön IP-osoitteen ottamista, käänteisen DNS-haun suorittamista, verkkotunnuksen ja odotetun mallin vahvistamista, eteenpäin DNS-haun suorittamista IP-osoitteen vahvistamiseksi, joka vastaa verkkotunnusta, ja tarkistamista, kuuluuko IP AS:ään. Tämä monivaiheisen varmistus löytää hienostuneita väärennyksiin, jotka saattavat läpäistä yhden tai kaksi tarkistusta, mutta epäonnistua täydessä ketjussa.

Bottinpaljastus-API sisältää tämän koko varmistusketjun yhdessä kutsulla. Lähetä IP-osoite ja väitetty käyttäjän agentti-merkkijono, ja API palauttaa tuomion: laillinen tai väärennös, sekä todisteet, jotka tukevat määritystä. IP-osoitteen ASN, käänteinen DNS-tulos, väitetyn identiteetin odotettu ASN ja arvioinnin luottamusaste. Seitsenkymmenen prosentin liikenteelle, joka oli väärennös, todisteet olivat yksiselitteiset. IP-osoitteet kuuluivat pilvipalvelun tarjoajille, käänteinen DNS palautti geneerisiä isäntänimiä, joilla ei ollut mitään tekemistä Googlen tai Microsoftin kanssa, ja ASN oli täysin väärä väitetyn identiteetin osalta.

Se, mikä tekee tästä lähestymistavasta lopullisen pikemminkin kuin heuristisen, on se, että se perustuu tarkistettaviin verkkojärjestelmän tietoihin, ei käyttäytymisanalyysiin. Hienostunut botti voi jäljitellä inhimillisen selauskäyttäytymisen, satunnaisuutta sen pyynnön ajoituksessa, suorittaa JavaScript-koodia ja jopa ratkaista CAPTCHAita. Mutta se ei voi muuttaa IP-osoitteen itsenäisen järjestelmän numeroa, josta se yhdistyy. Jos pyyntö väittää olevansa Googlebot, mutta tulee AWS-data-keskuksesta, se on väärennös. Harmaat alueet eivät ole olemassa, ei todennäköisyyspisteitä, ei väärän positiivisen huolimista. Verkkojärjestelmä ei valehtele, ja API yksinkertaisesti paljastaa tämän totuuden ohjelmallisesti kulutustasolle.

Mitä muuttui väärennös liikenteen tunnistamisen jälkeen

Se, että seitsemänkymmentä prosenttia liikenteestä oli väärennös, muutti välittömästi kaikki liiketoimintapäätökset, jotka oli tehty liikennemetriikoihin perustuen. Todellinen yleisö oli kolme miljoonaa kuukausivierailijaa, ei kymmenen miljoonaa. Todellinen muuntoaste oli yli kolme kertaa korkeampi kuin laskettu korko, koska nimittäjä oli paisutettu seitsemällä miljoonalla olemattomalla käyttäjällä. Todelliset sitoutumisen mittarit olivat kunnioitettavat pikemminkin kuin nolot. Jokainen raportti, joka oli luotu, jokainen strategian kokous, joka oli viitannut liikenteen numeroihin, jokainen kapasiteettisuunnittelu, joka oli perustunut kasvunennusteisiin, oli rakennettu saastuneen tiedon perustalle. Väärennös liikenne ei ollut vain kuluttanut palvelinresursseja. Se oli vääristänyt koko yrityksen analyyttisen kehyksen.

Välitön tekninen toiminta oli toteuttaa estäminen palvelintasolla. Jokainen saapuva pyyntö, joka väitti olevansa hakukoneen crawler, tarkistettiin API:ta vastaan reaaliajassa. Pyyntöjen, jotka epäonnistuivat tarkistuksessa, estettiin ennen kuin ne saavuttivat sovellustason. Vaikutus oli dramaattinen ja välitön. Kaistanleveyden kulutus putosi jyrkästi. Palvelimen CPU-käyttö huippuajan ulkopuolella laski murto-osaan sen aiemmasta tasosta. Sovelluksen vastausajat paranivat, koska palvelin ei enää tuhlannut resursseja sivujen renderöintiin boteille, jotka eivät koskaan indeksoisi niitä. Isännöintilaskut laskivat suhteellisesti.

Analyyttisen puhdistuksen ottaminen pidemmälle oli yhtä tärkeää, vaikka siihen kului kauemmin. Väärennös liikenteen suodattamisen jälkeen analytiikan tiedot tulivat luotettaviksi ensimmäistä kertaa. Käyttäjän käyttäytymisen mallit tulivat näkyviksi ilman bottitoiminnan kohinaa. Todellisten liikenteen suuntauksia voitiin tunnistaa ja korreloida markkinointiponnistuksiin. Sisältö, joka todella houkutteli inhimillisiä vierailijoita, voitiin erottaa sisällöstä, joka houkutteli vain botteja. Tämä selkeys muutti päätösentekoa saastuneiden tietojen perusteella tehtävästä arvauksesta analysiin, joka perustuu todellisuuteen.

Ongelman laajuus internetissä

Tämä kokemus ei ollut poikkeavuus. Alan arviot asettavat bottiliikenteen jatkuvasti kolmekymmentä viiteenkymmentä prosenttiin kaikesta internetliikenteestä maailmanlaajuisesti, ja yksittäisillä sivustoilla osuus voi olla paljon korkeampi. Sivustot, joilla on suuria sivujen määriä, korkea verkkotunnuksen viranomainen tai arvokas sisältö, houkuttelevat bottiliikennettä suhteettomasti. Kaapijat, väärät crawlerit, kilpailuäly-botit, hinnan seurantabotit, SEO-analyysibotit ja eri makuja haitalliset automatisointi kaikki edistävät kokonaismäärää. Useimmat sivuston operaattorit eivät näe tätä liikennettä, koska he luottavat analytiikan työkaluihin, jotka mittaavat vain JavaScript-suorittavia vierailijoita, jolloin koko bottitaso jää näkymättömäksi.

Taloudellinen vaikutus ulottuu kaistanleveyskustannuksiin pidemmälle. Mainontapalvelut veloittavat näkytyksien ja napsautuksien perusteella. Jos bottiliikenne synnyttää mainosnäytyksiä, nämä näytykset paisuttavat numeroita ja vääristävät kampanjan suorituskykytietoja. A/B-testauksen puitteet, joihin sisältyy bottikäyntejä otoksessaan, tuottavat epäluotettavia tuloksia. Nopeuden rajoitus- ja väärinkäytön ilmoituspuitteet, jotka on kalibroitu kokonaisliikennettä vastaan, jäävät virheellisesti viritetyksi, jos suurin osa liikenteestä ei ole ihmisten. Jopa SEO-strategia voi olla vaikuttunut, koska palvelimen lokit, jotka osoittavat raskaita crawler-toimintoja, saattaisivat olla virhe siitä, että hakukoneet indeksoivat sivustoa syvällä, kun todellisuudessa crawlerit ovat väärennöksiä ja todelliset hakukoneet allokoivat paljon pienemmän crawl-budjetin.

Bottinpaljastuspalvelu syntyi suoraan tästä kokemuksesta. Varmistuslogiikka, joka rakennettiin yhden sivuston liikenteen puhdistamiseen, yleistettiin API:ksi, jota mikä tahansa sivusto voi käyttää crawler-identiteettien tarkistamiseen. Kahdeksan spesifisen ilmaisimen Googlen, Bingin, OpenAI:n, Yandexin, DuckDuckGon, Qwantin ja Seznamin kattavuus tarjoaa kohdennettua tarkistusta useimmin imitoiduille crawlereille. Tulos on se, että mikä tahansa sivuston operaattori voi suorittaa saman tutkinnan, joka paljasti seitsemänkymmentä prosenttia väärennös liikenteen lukua, ja useimmat heistä löytävät oman lukun samoin paisutetut. Ensimmäinen askel ongelman korjaamiseen on sen olemassaolon todistaminen, ja se todiste on yhden API-kutsun päässä.

Usein kysytyt kysymykset

Kuinka voin kertoa, onko sivustollani huomattavaa väärennös bottiliikennettä?

Vertaa palvelimen pääsylokkeja JavaScript-pohjaista analytiikkaa vasten. Suuri ero näiden kahden numeron välillä osoittaa huomattavaa bottitoimintaa. Lisäksi tarkista hakukoneista peräisin olevia pyyntöjä koskevien IP-osoitteiden osoitteet. Jos monet tulevat pilvipalvelun tarjoajista eikä odotettavasta yrityksien verkoista, ne ovat väärennöksiä.

Mikä on ero todellisen Googlebotiin ja väärennös välillä?

Todellinen Googlebot on peräisin yksinomaan Google AS15169 itsenäisen järjestelmän IP-osoitteista. Väärennös Googlebot käyttää samaa käyttäjän agentti-merkkijonoa, mutta yhdistää AWS:n, DigitalOcean:n tai Hetzner:n kaltaisten pilvipalvelun tarjoajien omistamista IP-osoitteista. Käyttäjän agentti-merkkijono on triviaali väärentää, mutta IP-osoite paljastaa todellisen alkuperän.

Vaikuttaako väärennös bottien estäminen hakukonerankingeihin?

Ei. Väärennös bottien estäminen vaikuttaa vain IP-osoitteista tuleviin pyyntöihin, jotka eivät kuulu lailliseen hakukoneeseen. Todellinen Googlebot, Bingbot ja muut oikeat crawlerit saavat jatkaa sivuston käyttöä normaalisti, koska ne läpäisevät varmistuksen. Vain imitaattorit estetään.

Kuinka paljon kaistanleveyden voidaan säästää estämällä väärennös bottiliikenne?

Säästöt riippuvat väärennös liikenteen osuudesta. Sivustot, joilla on raskas väärennös bottiliikenne, näkevät yleisesti kaistanleveyden vähenemisen neljäkymmentä kuusiakymmentä prosenttia tarkistuksen ja estämisen toteuttamisen jälkeen. Sivustoille, joilla on korkeat kaistanleveyskustannukset, tämä voi kääntää merkittävät kuukausi säästöt.

Voivatko väärennös botit suorittaa JavaScript-koodia ja näkyä Google Analyticsissä?

Jotkut hienostuneet botit suorittavat JavaScript-koodia, mikä tarkoittaa, että ne voivat näkyä analytiikan työkaluissa. Kuitenkin suurin osa väärennös crawlereista ovat yksinkertaiset HTTP-pyynnön generaattorit, jotka eivät renderöi JavaScript-koodia. IP-pohjainen varmistus löytää molemmat tyypit, koska se ei luota käyttäytymisen analyysiin, vaan pyynnön tarkistettavaan verkkoalkuperään.

Kuinka bottinpaljastus-API käsittelee uusia tai tuntemattomia crawlereita?

API sisältää spesifiset ilmaisimet kahdeksalle useimmin imitoidulle crawlerille. Tuntemattomille käyttäjän agenteille API tarjoaa ASN-tietoja ja käänteisiä DNS-tietoja, jotka mahdollistavat kutsujaa tekemään oman määrityksen. Yleinen periaate on yleisesti sovellettavissa: tarkista IP-osoite väitetyn identiteetin tunnetun infrastruktuurin suhteen.