Případová studie · WordPress
Jak jsme odstranili přes 129 tisíc spamových stránek ze starého WordPressu
Základní soubory WordPressu byly beze změn. Databáze ale obsahovala více než 250 tisíc škodlivých záznamů včetně revizí, čtyři cizí správce a skryté odkazy na online kasina. Web jsme izolovali, vyčistili známé napadení, ověřili a kontrolovaně vrátili do provozu.
Výsledek zásahu
Odstranili jsme veškerý známý spam, čtyři neoprávněné nebo kompromitované administrátorské účty, škodlivé soubory a staré kopie v mezipaměti. Obnovili jsme domovskou stránku a vzhled, známé spamové adresy po zásahu vracely HTTP 404 a web byl po kontrolách znovu zveřejněn.
Incident v kostce
Rozsah napadení
Kompromitovaný účet vlastnil přes 129 tisíc zveřejněných spamových stránek a podobný počet revizí. Celkem šlo o více než 250 tisíc databázových záznamů.
Spam nebyl jen v článcích
Cizí odkazy zasáhly domovskou stránku, globální patičku i mezipaměť. Roboti vyhledávačů veřejné spamové adresy skutečně navštěvovali.
Web se vrátil do provozu
Odstranili jsme známý škodlivý obsah, účty, aktivní přihlášení, kopie v mezipaměti a soubory, zachovali legitimní data a po kontrolách web znovu zpřístupnili.
Proč nešlo cizí obsah ignorovat
Na závadný obsah upozornila také výzva Ministerstva financí. Provozovatele webu žádala o odstranění stránek nabízejících nepovolené hazardní hry a upozorňovala, že při nečinnosti může být podnět předán Celní správě.
Ne každá reklama na kasino je automaticky nelegální. Podle aktuálního vysvětlení Ministerstva financí je protiprávní propagace online hazardní hry, ke které se lze z České republiky připojit a která zde není povolena. Celní správa dohlíží také na reklamu šířenou prostřednictvím internetu.
Konkrétní výzva připomínala i možné zákonné sankce. U provozovatele nepovolené hazardní hry může horní hranice pokuty za nejzávažnější přestupek podle zákona o hazardních hrách dosáhnout 50 milionů korun. To neznamená, že provozovateli napadeného firemního webu automaticky hrozila tato částka. Odpovědnost a právní kvalifikaci vždy posuzují příslušné orgány.
Praktické poučení: cizí hazardní stránky nejsou jen problém výkonu nebo SEO. Mohou poškodit návštěvníky a pověst domény a vyvolat úřední výzvu. Reakce proto nesmí čekat jen na to, zda spam sám zmizí z výsledků vyhledávání.
Čisté jádro WordPressu neznamená čistý web
Soubory jádra bez změny
Všechny kontrolované soubory jádra WordPressu odpovídaly důvěryhodnému oficiálnímu balíčku. Nebyl nalezen změněný ani chybějící soubor jádra.
Napadení přežívalo jinde
Škodlivý stav byl v databázi, uživatelských účtech, aktivních přihlášeních, nastavení šablony, mezipaměti a několika souborech mimo jádro. Porovnání souborů s oficiálním balíčkem proto bylo jen jednou částí analýzy.
Bez kontroly databáze a účtů by web vypadal „čistě“, přestože dál veřejně nabízel podvodný obsah.
Jak jsme web vyčistili a ověřili
Nejdřív jsme zabránili dalšímu veřejnému šíření spamu. Teprve potom následovala analýza a přesně vymezené změny s možností návratu.
Izolace webu
Veřejný přístup jsme dočasně omezili a povolili jen vyšetřovací adresu. Samostatně jsme zablokovali XML-RPC, aby web během analýzy dál nešířil spam.
Záloha a analýza
Před změnami vznikla záloha souborů i databáze. Soubory jsme zkoumali bez spuštění PHP a databázi přes účet pouze pro čtení. Porovnali jsme logy, živá data i historickou zálohu.
Řízené vyčištění
Odstranili jsme škodlivé účty, aktivní přihlášení, příspěvky, revize, vazby a kopie v mezipaměti. Obnovili jsme domovskou stránku a patičku, škodlivé soubory dali do karantény a pomocné nástroje přesunuli mimo veřejný adresář webu.
Kontrola a zveřejnění
Ověřili jsme hlavní jazykové verze, blog i archiv. Známé spamové adresy vracely 404 a XML-RPC 403. Po odstranění dočasných přístupů jsme web znovu zveřejnili.
Proč nestačilo smazat viditelné články
Záloha nebyla automaticky čistá
Starší záloha ještě neobsahovala masový spam, ale podezřelý administrátorský účet v ní už existoval. Použili jsme ji proto jen jako zdroj konkrétních ověřených hodnot.
Spam zasáhl více vrstev
Vedle příspěvků bylo nutné řešit revize, metadata, rubriky, překlady, aktivní přihlášení, domovskou stránku, globální patičku a uživatelské účty.
Mezipaměť dál nabízela staré kopie
Statické kopie škodlivých stránek zůstávaly v mezipaměti. Samotná změna databáze by proto nestačila k okamžitému odstranění veřejného obsahu.
Co zásah vyřešil
Doložený výsledek
- odstranění všech známých záznamů kompromitovaného účtu a dalšího shluku automatických příspěvků,
- odstranění čtyř škodlivých administrátorských účtů a zrušení všech aktivních přihlášení,
- zachování desítek novějších legitimních záznamů,
- obnova domovské stránky, patičky a původního vzhledu,
- odstranění známých škodlivých souborů, kopií v mezipaměti a veřejných pomocných nástrojů,
- kontrolovaný návrat webu do provozu.
Časté otázky
Může být WordPress napadený, i když jsou soubory jádra čisté?
Ano. Útok může být v databázi, účtech, aktivních přihlášeních, nastavení šablony, mezipaměti nebo pluginech. V tomto případě všechny kontrolované soubory jádra WordPressu odpovídaly oficiálnímu balíčku, přesto web veřejně zobrazoval rozsáhlý spam.
Proč jste jednoduše neobnovili starou zálohu?
V záloze ještě nebyl masový spam, ale podezřelý administrátorský účet už ano. Použili jsme ji proto jako referenční zdroj pro konkrétní ověřené hodnoty, ne jako automaticky důvěryhodný obraz celého webu.
Co dělat, když na cizí obsah upozorní úřad nebo vyhledávač?
Nejdřív omezte další veřejné šíření, ale nemažte bez rozmyslu podklady potřebné k analýze. Uložte soubory, databázi a dostupné logy, obraťte se na správce webu a podle povahy výzvy také na právního poradce. Samotné smazání několika adres nemusí odstranit napadení.
Když staré instalaci už nechcete důvěřovat
Umíme přenést jen schválený obsah a bezpečně zpracovaná média do čistého WordPressu. Původní vzhled znovu vytvoříme na bezplatné Kadence, bez přenosu starého kódu.
Našli jste na WordPressu cizí články, účty nebo odkazy?
Pomůžeme omezit další škody, zachovat důležité podklady, určit rozsah napadení a zvolit bezpečný další krok.
