Jak chráníme weby klientů před boty a útoky
Web klienta zpomalí, občas se na vteřinu neotevře a nikdo neví proč. Návštěvnost je přitom stejná jako minulý měsíc. Když se podíváme do záznamů serveru, vidíme, kdo si ho bere: cizí programy, které za pár minut projdou tisíce adres, hledají zapomenuté zálohy a hesla a zkoušejí, jestli se někam nedostanou. Skuteční lidé mezitím čekají, protože server obsluhuje je i ty programy najednou.
Proto dáváme weby, o které se staráme, za Cloudflare. V tomto článku popíšeme, co to v praxi řeší, co blokujeme, co naopak pouštíme dál a proč, a jak si sami ověříte, jestli váš web podobnou ochranu má.
Před čím web chráníme
Útok na malý firemní web nevypadá jako scéna z filmu. Vypadá takhle:
- Skenery zranitelností. Program projde web a zkouší adresy, na kterých bývají citlivé soubory: zálohy databáze, konfigurace, soukromé klíče certifikátů, přihlášení do redakčního systému. Stačí jedna zapomenutá záloha a útočník má data zákazníků.
- Hádání hesel. Opakované pokusy o přihlášení do administrace, často stovky za minutu.
- Nárazy požadavků. Robot začne stahovat celý web v jednu chvíli. Není to útok se záměrem, ale server se chová stejně: zpomalí všem.
- Nevyžádaná pošta z formulářů. Roboti vyplňují poptávkové a kontaktní formuláře, takže majitel přestane své poptávky číst.
Zajímavé je, jak se ti roboti představují. Nedávno jsme na serveru zachytili skener, který během vteřiny zkusil desítku adres jako soukromý klíč certifikátu nebo konfigurační soubor, a u každého požadavku se vydával za někoho jiného: jednou za vyhledávač Google, podruhé za vyhledávacího robota od OpenAI, potom za robota od xAI. Jméno v požadavku si napíše kdokoliv. Proto se ochrana nesmí opírat o to, za koho se návštěvník prohlásí.
Co pro klienty konkrétně děláme
Provoz jde nejdřív přes filtr, až potom na server
Cloudflare stojí před webem jako vrátnice. Požadavek nejdřív projde jeho sítí a teprve potom dorazí na server. Zjevné útoky a přetížení tak server vůbec neuvidí. Podrobněji jsme o tom psali v článku proč Cloudflare používáme.
Blokujeme hledání děr, ne návštěvníky
Pravidla míří na chování, ne na jména. Požadavky na adresy, kde na webu nikdy nic nebylo, typicky přihlášení do WordPressu na webu bez WordPressu nebo konfigurační soubory, končí hned na vrátnici. Návštěvník, který si prohlíží stránky, o pravidlech neví.
Omezujeme množství požadavků z jedné adresy
Když z jednoho místa přijde během deseti vteřin víc požadavků, než zvládne vyplnit člověk, dostane na chvíli stopku. Limit je nastavený tak, aby se do něj nevešel ani rychlý čtenář, ani nástroj, který klientovi dělá audit webu.
Umělou inteligenci pouštíme dál, záměrně
Cloudflare umí jedním přepínačem zakázat roboty, kteří sbírají obsah pro umělou inteligenci. My ho u klientů necháváme vypnutý. Lidé se dnes ptají na dodavatele, služby a ceny v ChatGPT nebo Gemini a odpovědi vznikají z webů, které si tyhle systémy přečetly. Zavřít je znamená zmizet z míst, kde vás zákazník hledá. Otevřené necháváme i soubory, podle kterých se roboti orientují, tedy robots.txt a mapu webu.
Formuláře a platby necháváme na pokoji
Ochrana se nesmí projevit na tom, co klientovi vydělává. Odesílání formulářů, platební brány, přihlášení zákazníků a napojení na účetnictví necháváme bez omezení a po každé změně je proklikáme.
Hlídáme, aby server viděl skutečnou adresu návštěvníka
Když provoz jde přes vrátnici, server ve výchozím stavu vidí jako odesílatele ji, ne návštěvníka. Aplikace pak počítá všechny návštěvníky jako jednoho, a ochrana přihlašování nebo formulářů začne omezovat i lidi, kteří nic neprovedli. Na našem serveru jsme to nastavili tak, aby aplikace znala skutečnou adresu návštěvníka. Bez toho ochrana způsobí víc škody než užitku.
Pošty se to netýká
Častá obava klientů zní, že se změnou přijdou o e-maily. Netýká se jich to. Web a pošta jsou dvě oddělené cesty. Záznamy, podle kterých se doručuje pošta, zůstávají beze změny a míří pořád na poštovní server. Té se věnujeme zvlášť, popsali jsme to v článku o tom, proč e-maily z webu padají do spamu.
Jak změny děláme, aby se nedalo nic rozbít
U cizí domény platí jednoduché pravidlo: nejdřív záloha, potom změna, a vždy s cestou zpátky.
- Stáhneme si kompletní stav. Všechny záznamy domény uložíme do souboru, takže víme, jak to vypadalo před zásahem.
- Změnu nejdřív spustíme nanečisto. Výpis ukáže, co přesně se změní, a teprve když sedí, pustí se doopravdy.
- Zapisujeme si, co jsme změnili. Každý dotčený záznam má uloženou původní podobu, takže návrat je otázka jednoho příkazu.
- Po změně ověřujeme z venku. Web musí odpovídat, přihlášení do administrace fungovat, formulář odeslat zprávu a pošta chodit. Neptáme se nastavení, ptáme se webu.
Co z toho má majitel webu
- Web zůstane rychlý i ve špičce, protože zbytečný provoz se k serveru vůbec nedostane.
- Méně příležitostí k průšvihu. Skener, který nedostane odpověď, nenajde ani zapomenutou zálohu.
- Klid při náporu. Náhlá vlna požadavků skončí na vrátnici, ne na serveru, kde běží i další weby.
- Zabezpečené spojení a moderní protokoly bez práce navíc, certifikát se obnovuje sám.
- Zůstanete vidět v odpovědích umělé inteligence, protože roboty, kteří je tvoří, neblokujeme.
Pro běžný firemní web a menší e-shop stačí bezplatná úroveň služby. Placené tarify řešíme jen tam, kde web čelí opravdovým útokům nebo potřebuje pravidla, která zdarma nejsou.
Jak zjistíte, jestli váš web něco takového má
- Zkuste adresu, která na webu neexistuje, třeba přihlášení do redakčního systému, který nepoužíváte. Chybová stránka je v pořádku. Přihlašovací formulář znamená, že máte na webu něco, o čem nevíte.
- Zjistěte, kdo odbavuje vaši doménu. V libovolném nástroji na kontrolu domény se podívejte na jmenné servery. Podle nich poznáte, jestli je před webem ochranná vrstva, nebo se chodí přímo na server.
- Zeptejte se svého dodavatele na tři věci: co se stane při náhlém náporu, kde je záloha nastavení domény a jestli má web omezené pokusy o přihlášení.
Pokud na odpovědi nemáte od koho se zeptat, podívejte se, jak vypadá naše správa a údržba webu, nebo co obnáší převzetí webu do správy. Ochranu nastavujeme jako součást převzetí, ne jako placený doplněk.
Často kladené otázky
- Zpomalí ochrana před boty můj web?
- Ne, obvykle je to naopak. Provoz, který by server musel obsloužit, se k němu vůbec nedostane, takže na skutečné návštěvníky zbyde víc výkonu. Stránky se navíc odbavují ze sítě, která má servery blíž k návštěvníkovi.
- Blokujete roboty ChatGPT a dalších služeb umělé inteligence?
- Ne. Necháváme je projít záměrně, protože odpovědi těchto služeb vznikají z webů, které si přečetly. Zakázat je znamená zmizet z míst, kde zákazníci hledají dodavatele. Blokujeme programy, které hledají zranitelnosti, ne ty, které čtou obsah.
- Může se kvůli tomu rozbít e-mail nebo platební brána?
- Ne. Záznamy pro doručování pošty se nemění a odesílání formulářů i platební brány necháváme bez omezení. Po každé změně web i administraci proklikáme a ověříme, že formulář odešle zprávu a pošta chodí.