Napadnutý web na WordPresse: nebol to výpadok, ale kybernetický útok, ktorý sme zastavili za jeden deň
Zavolala nám väčšia firma. Web bol od rána nedostupný. Mysleli si, že spadol server alebo sa pokazila aktualizácia. Zavolali nám potom, čo sa ani ich správca nevedel dostať k webu. „Nevieme sa dostať na vlastný web! Potrebujeme to vyriešiť hneď." Takýto prípad sme už videli. Hneď sme vedeli, o čo ide a nebol to technický výpadok. Šlo o kybernetický útok.
Nižšie nájdete, ako útok fungoval a ako sme ho zastavili, ale aj praktický postup pre prípad, že máte podozrenie na napadnutý web vy: čo urobiť v prvej hodine, aký minimálny bezpečnostný štandard by mal firemný web mať a kto je zaň vlastne zodpovedný.
Čo sa vlastne stalo
Firma má WordPress web, ktorý spravuje ich externý správca. Ráno web prestal reagovať, admin panel bol nedostupný, heslá neplatili. Klasický scenár, pri ktorom si väčšina ľudí myslí, že ide o technický problém. Prvý dojem: pád servera alebo zlá aktualizácia. Realita bola iná.
Kybernetický útok nevyzerá ako vo filmoch
Hackeri nie sú ľudia v kapucniach pred zelenými obrazovkami. Reálny útok je tichý. Čím dlhšie ste napadnutí a neviete o tom, tým viac sa dá z vášho webu vyťažiť, spam, podvody, krádež údajov, zneužitie vašej reputácie pre ďalšie útoky. Väčšina obetí zistí, že sú napadnuté, až keď je neskoro: web padne, Google ho označí ako nebezpečný, alebo zavolá banka.
Čo sme zistili pri audite
Pri kontrole WordPress inštalácie sme objavili dva škodlivé súbory, ktoré tam nepatrili a boli aktívne:
- Plugin predstierajúci SEO nástroj, tváril sa ako bežné rozšírenie, v skutočnosti šlo o tzv. „hacked SEO" malware.
- Druhý súbor predstierajúci WooCommerce úlohu, companion, ktorý zabezpečoval, aby sa prvý nedal ľahko odstrániť.
Ani jeden z nich tam správca webu nenainštaloval. Ani jeden tam nemal byť.
Prečo to bolo také vážne
- Prístup do admin panelu bez hesla. Útočník sa vedel kedykoľvek prihlásiť ako administrátor. Heslo nepotreboval. Stačilo mu navštíviť špeciálnu adresu.
- Spúšťanie cudzieho kódu na vašom serveri. Malware si sťahoval príkazy z cudzieho servera a vykonával ich. V praxi to znamená, že útočník mohol s vaším webom robiť čokoľvek, naživo, na diaľku, kedykoľvek.
- Falošné stránky a SEO spam. Na webe sa generovali skryté stránky, ktoré videl iba Google. Cieľ: zneužiť reputáciu domény na propagáciu pochybných služieb. Následok: sankcie od Googlu a strata pozícií vo vyhľadávaní.
- Neviditeľnosť. Malware sa sám odstraňoval zo zoznamu nainštalovaných pluginov. Keď sa správca pozrel do admin panelu, nevidel nič podozrivé.
- Riadenie cez blockchain. Adresu riadiaceho servera si kód načítaval cez verejný blockchain. Bežný firewall takú komunikáciu nezablokuje, tvári sa ako legitímny prenos.
- Manipulácia so SEO. Upravoval robots.txt a sitemapy, aby Google indexoval spam stránky.
Za takto navrhnutým kódom stojí niekto, kto dobre vie, čo robí. Cieľom nebolo spôsobiť okamžitú škodu, ale zostať na webe čo najdlhšie nepovšimnutý a ťažiť z neho.
Ako sme útok zastavili
- Okamžitá zmena všetkých admin hesiel, útočník mal plný prístup, museli sme mu ho zobrať ako prvé.
- Odstránenie oboch škodlivých súborov, priamo zo súborového systému, nie cez WordPress admin (ten mohol byť upravený, aby to sabotoval).
- Kontrola používateľov, či si útočník nevytvoril záložné admin účty.
- Overenie Google Search Console, či neboli odoslané spamové sitemapy alebo neboli vygenerované spätné odkazy, ktoré by nám pokazili SEO.
- Čistá reinštalácia WordPressu z overených zdrojov, pretože po útoku tohto typu je jediná spoľahlivá cesta vymeniť celé jadro za overené súbory.
Web bol plne funkčný ešte v ten istý deň. Ale to bola len prvá polovica práce. Druhá bola zabezpečiť, aby sa to neopakovalo.
Kde bola chyba a ako sa útoku dalo predísť
- Zastarané pluginy a šablóny, každý neaktualizovaný plugin je otvorené okno.
- Slabé alebo opakovane používané admin heslá, zložené heslo z mena firmy a roka nie je heslo.
- Chýbajúci monitoring zmien, nikto nekontroluje, či na webe nepribudli súbory, ktoré tam nemajú byť.
- Žiadny pravidelný bezpečnostný audit, problém sa nájde, až keď spôsobí výpadok.
Pravidelný IT audit by takýto škodlivý kód odhalil oveľa skôr, v našom prípade potenciálne mesiace pred tým, ako spôsobil reálne škody. Pri weboch a systémoch dostupných z internetu sa k auditu oplatí pridať aj penetračné testy, ktoré overia, či sa cez slabé miesto dá naozaj dostať dnu.
Čo robiť v prvej hodine, keď máte podozrenie na napadnutý web
Najväčšie škody často nevznikajú pri samotnom útoku, ale v hodinách, keď sa firma snaží web „nejako opraviť“ a pritom zničí stopy alebo útočníkovi nechá otvorené dvere. Ak máte podozrenie, postupujte v tomto poradí:
- Nič nemažte a neobnovujte naslepo zo zálohy. Najprv si nechajte urobiť kópiu súčasného stavu webu, databázy a záznamov servera. Bez nich sa nedá zistiť, kade útočník prišiel.
- Zmeňte všetky prístupy. Heslá do administrácie webu, k hostingu, FTP či SFTP, k databáze aj k správe domény. Odhláste všetky aktívne relácie.
- Kontaktujte poskytovateľa hostingu. Často vidí podozrivú prevádzku a vie web dočasne izolovať.
- Skontrolujte Google Search Console kvôli bezpečnostným upozorneniam a neznámym sitemapám.
- Vyhodnoťte, či mohlo dôjsť k úniku osobných údajov. Ak áno, na nahlásenie úradu máte lehotu 72 hodín.
Minimálny bezpečnostný štandard pre firemný web
Útoku z tohto prípadu by v praxi zabránilo niekoľko nenápadných opatrení. Pri firemnom webe by mali byť samozrejmosťou:
- aktualizácie jadra, pluginov a šablón aspoň raz týždenne a odstránenie všetkých nepoužívaných pluginov,
- viacfaktorové overenie pre všetky administrátorské účty a čo najmenší počet administrátorov,
- samostatný účet pre každého dodávateľa, ktorý sa po skončení spolupráce zruší,
- webový firewall a sledovanie zmien v súboroch, ktoré upozorní, keď na serveri pribudne niečo nové,
- zálohy uložené mimo servera s webom a skúšobná obnova aspoň raz za štvrťrok,
- bezpečnostná kontrola webu aspoň raz ročne a po každej väčšej zmene.
Firmy s viacerými webmi, e-shopom a kampaňovými stránkami by mali mať aj zoznam všetkých domén a inštalácií. Zabudnutá stránka z kampane spred troch rokov býva najľahším vstupom.
Kto je za bezpečnosť webu zodpovedný
Pri firemných weboch sa často stretávame s tým, že web vytvorila agentúra, obsah spravuje externý správca, hosting zabezpečuje poskytovateľ a firemné IT rieši ďalší tím. Každý predpokladá, že bezpečnosť webu má na starosti ten druhý. Presne v takejto medzere útočníci pracujú mesiace bez povšimnutia.
Zapíšte si preto, kto zodpovedá za aktualizácie, kto za zálohy, kto za kontrolu prístupov a kto reaguje, keď sa niečo stane. Ak to nevyplýva zo zmluvy s dodávateľom webu, doplňte to. Web je súčasťou firemnej infraštruktúry a patrí do rovnakého rámca ako servery a e-mail, teda pod IT bezpečnosť firmy.
Čo by vás ešte mohlo zaujímať
Ako zistím, že môj WordPress web bol napadnutý?
Typické príznaky: web je pomalý alebo nedostupný, v Google výsledkoch vidíte stránky, ktoré ste nikdy nevytvorili, návštevníci hlásia presmerovania na cudzie weby, Google Search Console zobrazuje upozornenia, alebo sa nemôžete prihlásiť do admin panelu. Problém je, že moderný malware je často neviditeľný, web vyzerá úplne normálne. Istotu dá len odborný bezpečnostný sken.
Stačí na ochranu bezpečnostný plugin ako Wordfence alebo Sucuri?
Pomáhajú, ale nie sú všeliek. Pokročilejšie útoky, napríklad tie, ktoré komunikujú cez blockchain alebo sa maskujú za legitímne pluginy, dokážu bežné sken nástroje obísť. Bezpečnostný plugin je vrstva ochrany, nie jediná ochrana. Kombinácia pravidelných aktualizácií, silných hesiel, monitoringu a odborného auditu funguje lepšie než akýkoľvek jednotlivý nástroj.
Koľko stojí obnova po útoku v porovnaní s prevenciou?
Obnova napadnutého webu typicky stojí niekoľkonásobne viac než ročná preventívna starostlivosť. Okrem priamych nákladov počítajte aj výpadok (dni bez webu = stratené objednávky), poškodenie SEO (návrat pozícií v Google trvá mesiace) a stratu dôvery zákazníkov. V našej praxi je prevencia vždy lacnejšia aj keď sa zdá, že „nič nerobí".
Musíme hlásiť útok dotknutým osobám podľa GDPR?
Závisí od toho, či pri útoku došlo k úniku osobných údajov. Ak útočník mal admin prístup a na webe ste evidovali zákazníkov, je povinnosť situáciu vyhodnotiť a v odôvodnených prípadoch nahlásiť incident Úradu na ochranu osobných údajov do 72 hodín. Odporúčame to konzultovať s odborníkom, sankcie za nenahlásenie bývajú vyššie než za samotný incident.
Mám po útoku obnoviť web zo zálohy?
Áno, ale až keď viete, kade útočník prišiel a odkedy bol web napadnutý. Záloha z obdobia po napadnutí obsahuje rovnaký škodlivý kód a bez opravy zraniteľnosti sa útok zopakuje. Pred obnovou preto nechajte urobiť analýzu a zmeňte všetky prístupy.
Ako často aktualizovať WordPress a pluginy?
Bezpečnostné aktualizácie inštalujte čo najskôr, ideálne do niekoľkých dní od vydania, ostatné aspoň raz týždenne. Pri firemnom webe alebo e-shope sa oplatí aktualizácie najprv vyskúšať na testovacej kópii. Nepoužívané pluginy a šablóny úplne odstráňte, nestačí ich vypnúť.
Prečo útočníci napádajú aj weby menších firiem?
Útoky sú automatizované a vyhľadávajú zraniteľné pluginy bez ohľadu na veľkosť firmy. Napadnutý web slúži na šírenie spamu, podvodné stránky alebo ďalšie útoky a dôveryhodná firemná doména má pre útočníka hodnotu. Web menšej firmy býva menej chránený, preto je ľahším cieľom.
Potrebujete pomôcť s IT vo vašej firme?
Kontaktujte nás pre nezáväznú konzultáciu.