Jak se weby hackují
Modul 7: Zabezpečení · Doba čtení: 8 minut
Cíl lekce: Po této lekci dokážete reálně vysvětlit, jak se WordPress weby nejčastěji hacknou, proč jsou cílem i malé weby a co se útočníci snaží získat.
Klíčové pojmy: zranitelnost, chyba v pluginu nebo šabloně, automatické skenování, credential stuffing, brute force, nulled software, infikovaný počítač, následky (spam, přesměrování, phishing, malware), plocha pro útok (attack surface)
„Můj web je příliš malý na to, aby byl zajímavý“
Toto je nejčastější mylná představa. Téměř žádný útok na WordPress nemíří na konkrétní web. Útočníci používají programy, které automaticky projíždějí tisíce webů za hodinu a hledají jedinou věc: známé slabé místo. Pokud ho program najde, prolomí ochranu, ať už jde o web nadnárodní firmy, nebo místního fotbalového klubu.
Útočníkům nejde o Váš web jako takový, ale o to, co Váš web umí:
- Spam a zneužití pro vyhledávače: tisíce skrytých stránek nebo odkazů na léky, hazardní hry nebo podvodné obchody, které se vezou na dobrém jménu Vaší domény u Googlu.
- Přesměrování: návštěvníci (často jen ti z Googlu nebo z telefonu) jsou přesměrováni na podvodný web nebo falešnou stránku. Vy sami nic nevidíte, protože na web chodíte přes záložku.
- Phishing: podvržená přihlašovací stránka banky nebo doručovací služby, schovaná ve složce uploads, s Vaším doménovým jménem v odkazu.
- Šíření malwaru mezi návštěvníky.
- Odesílání pošty: Váš server rozesílá spam, a potom Vaše vlastní pošta přestane docházet.
- Výpočetní výkon: Váš balíček je zneužit k útokům na jiné weby nebo k těžbě kryptoměn.
- Data: u e-shopu nebo členského webu údaje Vašich zákazníků.
Vstup 1: chyba v pluginu nebo šabloně
Toto je zdaleka nejvýznamnější vstupní bod. Podle výroční zprávy společnosti Patchstack, která sleduje zranitelnosti WordPressu, bylo v roce 2024 nalezeno 7 966 nových zranitelností v ekosystému WordPressu. 96 % se jich týkalo pluginů, 4 % šablon a v samotném WordPressu jich bylo jen sedm. Většinu chyb nelze jen tak zneužít, ale u části z nich to možné je, a ty jsou pak během hodin nebo dnů po zveřejnění masově skenovány.
Vzorec je téměř vždy stejný:
- Je nalezena chyba ve verzi 3.2 oblíbeného pluginu.
- Autor vydá verzi 3.2.1 s opravou. Chyba se zveřejní.
- Během krátké doby programy skenují internet a hledají weby s verzí 3.2 nebo starší.
- Kdo ještě neaktualizoval, je napaden.
Nebezpečí tedy nespočívá v tajné chybě, o které nikdo neví, ale ve známé chybě, pro kterou už existuje aktualizace, která ale nebyla nainstalována. Proto jsou aktualizace (lekce 7.2) tím nejdůležitějším opatřením a odstraňování nepoužívaného (lekce 5.4) má smysl: každý plugin, který je nainstalovaný, byť i deaktivovaný, zvětšuje Vaši plochu pro útok.
Zvláštním případem jsou opuštěné pluginy: autor přestal pracovat a opravy už nevycházejí. A dále nulled software (lekce 5.3): ukradená kopie placeného pluginu, často s vestavěnými zadními vrátky.
Vstup 2: hesla
Druhým velkým vstupním bodem je přihlášení pomocí platného hesla:
- Credential stuffing: při úniku dat z jiné služby unikly miliony kombinací e-mailové adresy a hesla. Programy tyto kombinace zkoušejí na nejrůznějších webech, včetně přihlašovacích stránek WordPressu. Pokud používáte stejné heslo jako u oné unikané služby, jsou útočníci okamžitě uvnitř.
- Brute force: program jednoduše zkouší obrovské množství hesel, často s běžně používanými uživatelskými jmény jako
admin. S dlouhým a jedinečným heslem nemá tento postup šanci, ale přesto zatěžuje výpočetní výkon Vašeho serveru. - Phishing: podvodný e-mail typu „Váš WordPress je potřeba aktualizovat, přihlaste se zde“ s odkazem na podvrženou přihlašovací stránku.
Lekce 7.3 se věnuje obraně: správci hesel, dvoufázovému ověření a omezení počtu pokusů o přihlášení.
Vstup 3: vše kolem WordPressu
Ne každý útok začíná ve WordPressu:
- Infikovaný počítač Váš nebo Vašeho tvůrce webu, s programem, který krade hesla, například ta uložená v FTP programu.
- Obyčejné FTP bez šifrování, na veřejné síti.
- Jiný web ve stejném balíčku: zapomenutá stará testovací instalace, stará Joomla v podsložce. Všechny weby v jednom balíčku většinou sdílejí stejného uživatele na serveru. Pokud je stará stránka napadena, může se útočník dostat i k Vašemu WordPressu.
- Uniklé heslo k databázi, například přes kopii souboru wp-config.php ve webové složce (lekce 1.3).
- Formuláře bez kontroly, zneužité k rozesílání spamu.
U dobrého poskytovatele hostingu je Váš balíček oddělen od balíčků ostatních zákazníků na stejném serveru (u serverů DirectAdmin s CloudLinuxem například pomocí CageFS). Co se ale děje v rámci Vašeho vlastního balíčku, zůstává Vaší odpovědností.
Co si všimnete (a co ne)
Dobře provedený útok si zpočátku nevšimnete. Útočníci chtějí Váš web využívat co nejdéle. Signály (podrobněji v lekci 7.5):
- Google hlásí „Tento web může být napaden“ nebo ve výsledcích vyhledávání vidíte podivné stránky z Vaší domény (zkuste vyhledat
site:example.com); - návštěvníci hlásí, že se dostanou někam jinam;
- objeví se administrátoři nebo soubory, které neznáte;
- Váš poskytovatel hostingu nebo skener malwaru něco nahlásí;
- Vaše pošta najednou přestane docházet, nebo je balíček plný či pomalý.
Obrana ve vrstvách
Žádné opatření není stoprocentně spolehlivé. Zabezpečení je o skládání vrstev, aby chyba v jedné vrstvě hned neotevřela všechno ostatní:
- Aktualizace (lekce 7.2): uzavírají známé chyby. Zdaleka nejdůležitější opatření.
- Málo součástí (lekce 5.3 a 5.4): méně toho, co je potřeba aktualizovat, méně chyb.
- Zabezpečení přihlašování (lekce 7.3): dlouhá jedinečná hesla, dvoufázové ověření, princip nejmenších oprávnění (lekce 3.3).
- Zpevnění (hardening) (lekce 7.4): oprávnění, nastavení a hlavičky, které omezují škody.
- Zálohy (lekce 8.1): pokud se přesto něco pokazí, můžete se vrátit zpět.
- Vědět, co dělat, když se něco pokazí (lekce 7.5).
Shrnutí
- Téměř všechny útoky jsou automatické a necílené; malé weby jsou stejně tak terčem jako velké.
- Útočníci chtějí to, co Váš web umí: spam, přesměrování, phishing, poštu, výpočetní výkon, data.
- Největším vstupním bodem je známá chyba v pluginu nebo šabloně, pro kterou už existovala aktualizace (v roce 2024 tvořily pluginy 96 % nových zranitelností).
- Druhým vstupním bodem jsou hesla: znovu použitá, uhodnutá nebo ukradená phishingem.
- Vstupním bodem může být i infikovaný počítač, obyčejné FTP nebo zapomenutý starý web ve stejném balíčku. Braňte se ve vrstvách.
Kvíz
Úkol
Úkol D7.1: Váš vlastní seznam rizik. Sestavte seznam všeho ve Vašem hostingovém balíčku, co může být vstupním bodem: každou instalaci WordPressu (včetně testovacích a starých webů), každý plugin a každou šablonu (i neaktivní), každý účet s administrátorskými právy (WordPress, FTP, hostingový panel) a počítače, ze kterých se přihlašujete. U každé položky si poznamenejte: kdy byla naposledy aktualizována, zda je ještě potřeba (ano/ne) a kdo je za ni zodpovědný. Zaškrtněte, které tři věci tento týden uklidíte nebo aktualizujete, a poznamenejte si, proč právě ty.
Úkol D7.1: Váš vlastní seznam rizik
Tento úkol provádíte sami; nikdo ho nekontroluje. Odškrtněte, co jste udělali, a označte úkol jako splněný.
Uveďte alespoň jednu součást mimo samotný WordPress (hostingový panel, FTP účet, Váš vlastní počítač) a vyberte opatření, která uzavřou vstupní bod: odstranění toho, co nepoužíváte, aktualizace, výměna hesel, zapnutí 2FA.
Vaše zaškrtnutí a poznámky zůstávají pouze v tomto prohlížeči; nikam je neposíláme. Pokud jste přihlášeni, ukládáme v sekci Moje kurzy pouze to, že jste úkol splnili.
Doporučené zdroje
Tyto články popisují kroky v panelech WebOké; v jiných panelech to funguje obdobně.
- Pomoc! Můj web byl napaden. Jak to vyřešit nebo tomu předejít?
- Příručka k DirectAdmin 18.2: Moje webová stránka byla napadena: postup krok za krokem
- State of WordPress Security in 2025 (Patchstack, v angličtině): https://patchstack.com/whitepaper/state-of-wordpress-security-in-2025/
- Zabezpečení WordPressu (developer.wordpress.org, v angličtině): https://developer.wordpress.org/advanced-administration/security/hardening/
