PraktickéSvet internetuTechnológie

Boti môžu spomaľovať web aj tým, že hľadajú neexistujúce súbory

Webová stránka môže čeliť stovkám či tisícom automatizovaných požiadaviek, ktoré vôbec nesúvisia s jej skutočným obsahom. Skrátka niekto akoby tipoval cesty k súborom, ktoré nikdy neexistovali. Na prvý pohľad vás to nebude znepokojovať, skrátka súbor neexistuje. Lenže…  Internetové roboty prehľadávajú adresáre, skúšajú otvárať neexistujúce súbory a hľadajú prístup k administrácii alebo zraniteľným častiam systému. Takáto aktivita zostáva pred bežnými návštevníkmi skrytá, no v určitých situáciách dokáže zvyšovať záťaž hostingu, predlžovať odozvu webu a spotrebúvať serverové prostriedky. Prevádzkovateľ pritom môže mnohé z týchto pokusov identifikovať aj bez pokročilých znalostí správy serverov.

Prsty na klávesnici, surfovanie na internete, ilustračná snímka foto: pexels

Prsty na klávesnici, surfovanie na internete, ilustračná snímka foto: pexels

Prečo roboty hľadajú súbory, ktoré na webe neexistujú?

Pri návšteve internetovej stránky prehliadač odošle serveru požiadavku na konkrétnu adresu. Server vyhľadá požadovaný obsah a odošle odpoveď. Podobne fungujú aj automatizované programy označované ako boti, ktoré dokážu navštevovať internetové stránky bez priamej účasti človeka. Nie všetky roboty majú rovnaký účel. Vyhľadávacie roboty spoločností Google či Microsoft prechádzajú verejne dostupný obsah, aby ho mohli spracovať pre internetové vyhľadávače. Iné programy zbierajú verejne dostupné informácie, monitorujú dostupnosť služieb alebo vykonávajú bezpečnostné kontroly.

Samostatnú kategóriu predstavujú automatizované skenery, ktoré prehľadávajú internetové servery a skúšajú, či sa na nich nachádzajú známe administračné rozhrania, konfiguračné súbory, zálohy alebo zraniteľné aplikácie. Takýto robot nemusí vedieť, aký systém konkrétna stránka používa. Jednoducho skúša vopred pripravený zoznam internetových adries a sleduje odpovede servera. Pri stránke postavenej na systéme WordPress sa tak môžu objavovať požiadavky napríklad na:

  • /wp-admin/ – štandardnú administračnú cestu WordPressu.
  • /wp-login.php – prihlasovací súbor WordPressu.
  • /.env – súbor, ktorý môže v niektorých aplikáciách obsahovať citlivé konfiguračné údaje.
  • /.git/config – konfiguračný súbor systému na správu verzií Git.
  • /backup.zip – možný názov záložného archívu.

Automatizované skenovanie sa pritom neobmedzuje na WordPress. Roboty môžu skúšať adresy súvisiace s ďalšími redakčnými systémami, databázovými nástrojmi či webovými aplikáciami bez ohľadu na to, či ich konkrétny server vôbec používa. Mnohé takéto požiadavky sa skončia odpoveďou 404 Not Found, teda informáciou, že požadovaný súbor alebo stránka neexistuje. V niektorých prípadoch server odpovie kódom 403 Forbidden, ktorý označuje zamietnutý prístup. Samotná existencia takýchto záznamov ešte neznamená úspešný prienik do systému. Môže však upozorniť na automatizované prehľadávanie webu, ktorého intenzitu je vhodné sledovať.

Ako môžu neexistujúce súbory zaťažovať server?

Na prvý pohľad sa môže zdať, že požiadavka na neexistujúci súbor server nijako výrazne nezaťažuje. Server predsa iba oznámi, že daný obsah nenašiel. Spracovanie požiadavky si však aj v takom prípade vyžaduje určitú prácu. Webový server musí prijať spojenie, spracovať požiadavku, vyhodnotiť požadovanú adresu a vytvoriť odpoveď. Podľa konfigurácie stránky môže pritom spustiť aj ďalšie procesy.

Pri redakčných systémoch, napríklad WordPresse, môžu niektoré neexistujúce adresy prechádzať cez PHP aplikáciu. Tá následne zisťuje, či požadovaná stránka existuje, prípadne komunikuje s databázou, načítava nastavenia a vytvára chybovú stránku. Záťaž preto závisí nielen od počtu požiadaviek, ale aj od spôsobu ich spracovania. Ak server vracia jednoduchú statickú odpoveď 404, spotreba prostriedkov môže byť veľmi nízka. Pokiaľ však každá požiadavka vyvoláva komplexnejšie spracovanie v aplikácii, môže byť výsledná záťaž podstatne vyššia.

Rozhodujúca je aj intenzita automatizovanej aktivity. Niekoľko desiatok neúspešných požiadaviek denne spravidla nepredstavuje významný problém. Tisíce požiadaviek v krátkom čase už môžu mať citeľnejší vplyv, najmä na menej výkonnom zdieľanom hostingu. Možné následky zahŕňajú zvýšené využitie procesora, spotrebu operačnej pamäte, vyšší počet súbežných procesov, väčší objem prenesených dát alebo pomalšie odpovede servera. V extrémnejších prípadoch môže web dosiahnuť limity hostingu a začať zobrazovať chyby dostupnosti. Na niektorých hostingových službách sa zvýšená spotreba prostriedkov môže prejaviť aj v účtovaní prevádzky alebo potrebe prejsť na vyšší program.

Neexistuje však univerzálna hranica počtu požiadaviek, pri ktorej sa web začne spomaľovať. Závisí to od výkonu servera, nastavenia vyrovnávacej pamäte, typu aplikácie a aktuálneho zaťaženia ostatnými návštevníkmi.

Ako zistiť, či podobné požiadavky smerujú aj na vlastný web?

Jedným z najlepších zdrojov informácií sú serverové prístupové záznamy, označované ako access logs. Zaznamenávajú požiadavky prichádzajúce na webový server a podľa konfigurácie môžu obsahovať požadovanú adresu, čas návštevy, IP adresu, výsledný HTTP kód a ďalšie technické údaje. Mnohé hostingové spoločnosti umožňujú prístup k týmto údajom prostredníctvom administračného rozhrania. V systémoch cPanel alebo Plesk možno nájsť funkcie na zobrazovanie návštevnosti, chybových záznamov a serverových logov. Rozsah údajov závisí od poskytovateľa hostingu a konkrétneho programu.

Zaujímavé sú najmä opakované požiadavky na adresy, ktoré s obsahom webu nesúvisia. Ak napríklad stránka o záhradníctve dostáva v krátkom čase množstvo požiadaviek na administračné rozhrania rôznych softvérových systémov, môže ísť o automatizované skenovanie. Pri analýze sa oplatí sledovať počet požiadaviek za minútu, opakujúce sa IP adresy, najčastejšie požadované neexistujúce súbory a výskyt chybových odpovedí 403 či 404. Dôležitá je aj časová súvislosť medzi nárastom týchto požiadaviek a zhoršením výkonu stránky.

Nie každá chyba 404 je však výsledkom činnosti škodlivého robota. Môže vzniknúť aj pri nesprávnom odkaze, odstránenom článku, chybne zadanej adrese alebo pri návšteve bežného vyhľadávacieho robota.

Pri hodnotení preto záleží na kombinácii viacerých údajov, nie iba na samotnom počte chýb.

Ďalšiu možnosť kontroly poskytujú analytické a bezpečnostné nástroje. Napríklad služba Cloudflare dokáže zobrazovať informácie o automatizovanej prevádzke, podozrivých požiadavkách a bezpečnostných udalostiach. Dostupnosť podrobných štatistík a pravidiel závisí od využívaného programu. Užitočná je tiež služba Google Search Console. Tá síce nepredstavuje všeobecný nástroj na odhaľovanie škodlivých botov, ale v prehľade štatistík prehľadávania umožňuje sledovať aktivitu Googlebotu, odpovede servera a prípadné problémy s dostupnosťou webu. Tieto údaje pomáhajú odlíšiť činnosť vyhľadávača od ostatnej prevádzky.

Ako obmedziť automatizované požiadavky a chrániť výkon stránky?

Ochrana pred nadmernou automatizovanou prevádzkou nemusí nevyhnutne znamenať nákup drahšieho hostingu. Viaceré opatrenia možno zaviesť aj na existujúcej webovej stránke. Jednou z možností je využívanie bezpečnostného filtra WAF (Web Application Firewall). Ide o ochrannú vrstvu, ktorá kontroluje prichádzajúce webové požiadavky a podľa nastavených pravidiel dokáže blokovať alebo preverovať podozrivú prevádzku. Služby ako Cloudflare umožňujú filtrovať automatizované požiadavky ešte predtým, než sa dostanú na pôvodný webový server. Správne nastavená ochrana tak môže znížiť množstvo práce, ktorú musí samotný hosting vykonať. Lenže nie každý máme Claudflare a jemu podobné.

Ďalšou možnosťou je obmedzovanie frekvencie požiadaviek, známe ako rate limiting. Server alebo bezpečnostná služba sleduje intenzitu komunikácie a pri prekročení nastavených podmienok môže ďalšie požiadavky dočasne obmedziť. Takéto opatrenie je užitočné najmä pri robotoch, ktoré v krátkom čase skúšajú veľké množstvo rôznych adries. S obmedzovaním však treba pracovať opatrne. Príliš prísne pravidlá môžu zasiahnuť aj legitímnych návštevníkov, vyhľadávače alebo používateľov pristupujúcich cez spoločnú IP adresu. Pri opakovaných neúspešných pokusoch môžu pomôcť aj bezpečnostné nástroje, ktoré analyzujú serverové logy a dočasne blokujú zdroje podozrivej aktivity. Na serveroch s príslušnými oprávneniami možno na takýto účel využiť napríklad Fail2ban.

Dôležitá je tiež optimalizácia samotného webu. Ak neexistujúce súbory dokáže server vybaviť jednoduchou odpoveďou bez zbytočného spúšťania náročných aplikácií, znižuje sa spotreba prostriedkov. Podobný význam má správne nastavená vyrovnávacia pamäť, aktualizovaný redakčný systém a odstránenie nepotrebných pluginov či zastaraných komponentov. Pri stránkach postavených na WordPresse je vhodné skontrolovať aj bezpečnostné nastavenia prihlasovania a pravidelne aktualizovať jadro systému, témy a rozšírenia. Tieto kroky síce samy osebe nezastavia všetky požiadavky na neexistujúce adresy, no pomáhajú znižovať riziko zneužitia skutočných zraniteľností. Osobitnú pozornosť si zaslúži súbor robots.txt. Ten slúži predovšetkým na usmerňovanie spolupracujúcich robotov, nie ako spoľahlivá bezpečnostná bariéra. Škodlivé automatizované programy jeho pravidlá nemusia rešpektovať.

Rovnako nie je vhodné plošne blokovať všetky požiadavky, ktoré sa skončia chybou 404, ani meniť odpovede neexistujúcich stránok na úspešný stav 200. Takéto zásahy môžu narušiť správne fungovanie webu a jeho spracovanie internetovými vyhľadávačmi.

Čo urobiť, keď hosting zaznamenáva neobvykle vysokú záťaž?

Pri podozrení na nadmernú aktivitu robotov je vhodné najskôr porovnať údaje o požiadavkách s reálnym výkonom webu. Ak sa výrazný nárast automatizovanej prevádzky zhoduje so spomalením stránky, zvýšenou spotrebou CPU alebo častejšími serverovými chybami, existuje dôvod preskúmať ich vzájomnú súvislosť. Prevádzkovateľ zdieľaného hostingu môže poskytovateľa požiadať o analýzu najčastejšie požadovaných adries, identifikáciu neobvyklej automatizovanej prevádzky a preverenie možností serverového filtrovania. Hosting pritom môže disponovať podrobnejšími údajmi, než aké zákazník vidí vo vlastnom administračnom rozhraní. Pri samostatnom virtuálnom alebo dedikovanom serveri sú možnosti podrobnejšie. Správca môže analyzovať požiadavky priamo v logoch Apache či Nginx, sledovať spotrebu serverových prostriedkov a vytvárať pravidlá na obmedzenie vybraných typov prevádzky.

Cieľom by však nemalo byť odstránenie všetkých chýb 404. Tie sú prirodzenou súčasťou fungovania internetu. Dôležité je zistiť, či neobvyklé požiadavky skutočne predstavujú významnú časť serverovej záťaže a či sa dajú bezpečne obmedziť. Bežná štatistika návštevnosti pritom nemusí ukazovať celú situáciu. Analytické nástroje založené na JavaScripte nemusia zachytiť roboty, ktoré iba odosielajú jednoduché HTTP požiadavky a nevykonávajú skripty stránky. Preto môže server spracovať podstatne viac požiadaviek, než by naznačoval počet návštevníkov v klasickej webovej analytike. Pravidelná kontrola serverových záznamov, aktualizácií a bezpečnostných nastavení tak predstavuje užitočnú súčasť správy aj menších internetových stránok. Pomáha odhaľovať nielen pokusy o prístup k neexistujúcim súborom, ale aj chybné interné odkazy, technické problémy, automatizované skenovanie a ďalšie príčiny zbytočného zaťažovania servera.

Odporúčame:
Naozaj dobrý hosting za smiešne peniaze, najlacnejší hosting pre viac domén, mnoho vychytávok a zrýchlení pre pomalší Wordpress:
HostCreators - Webhosting, Hosting, Registrácia domén

You may also like

More in:Praktické