Jak správně zabezpečit WordPress?

WordPress je naprostou jedničkou na poli redakčních systémů a nejrozšířenějším webovým řešením vůbec. Běží na něm zhruba 39,5 % veškerých webů. Vezmeme-li v potaz pouze stránky využívající některý z redakčních systémů, činí podíl WordPressu přibližně 64,1 %. Jeho popularita je však provázena řadou úskalí v podobě bezpečnostních hrozeb, kdy se tento redakční systém často dostává do hledáčků hackerů. Jak reflektuje následující graf, WordPress je jedničkou bohužel i z tohoto hlediska, a to bez ohledu na typ obsahu.

Zdroj

Bezpečnost WordPress stránky je důležitá především pro to, aby nedošlo ke škodám na vašem podnikání a reputaci, která se těžko získává zpět. Hackeři mohou ukrást vaše hesla a informace o uživatelích, instalovat škodlivý software, nebo vašim uživatelům distribuovat malware.

V některých případech dokonce dochází k tomu, že chtějí-li provozovatelé webů získat plný přístup ke svým stránkám zpět, budou muset hackerům zaplatit (tzv. ransomware). Adekvátní úroveň zabezpečení je tedy na místě. Ač je jádro WordPressu samo o sobě poměrně dobře zabezpečeno, existuje několik dodatečných opatření, která úroveň zabezpečení ještě zvýší. A právě o tom bude pojednávat tento článek.

Typy útoků na WordPress

Proč je zálohování důležité?

Typů útoků na WordPress existuje bohužel celá řada; mezi ty nejčastější z nich patří především níže uvedené zranitelnosti, které si ve zkratce popíšeme.

Backdoors

Backdoors je umělá chyba v zabezpečení, která – jak již název samotný napovídá – poskytuje útočníkům zadní vrátka, kdy prostřednictvím nestandardní metody autentizace přes wp-admin, FTP, SFTP aj. mohou získat přístup k vašemu webu a následně jej poškodit či infikovat. Dokonce mohou provést i tzv. „cross-site“ útok, kdy napadnou i další hostované weby na témže serveru.

Nejčastější příčinou hrozby v podobě zadních vrátek jsou kradené prémiové pluginy a šablony, jež jsou dostupné ke stažení na pochybných webech. Neméně rizikovým faktorem jsou i zastaralé verze systému a jeho komponent. Chcete-li se ujistit, že vám tento typ zranitelnosti nehrozí, otestujte svůj web pomocí nástroje SiteCheck, který zadní vrátka dokáže detekovat.

Pharma Hacks

Další typ útoku úzce související s používáním zastaralých verzí WordPressu, jeho pluginů a šablon, do nichž útočníci vkládají škodlivý kód. Následkem toho se uživatelům ve výsledcích vyhledávání namísto vašeho webu zobrazí reklamy na různé farmaceutické výrobky. Ač se jedná spíše o spamovou hrozbu nežli tradiční malware, dává vyhledávačům dostatečný důvod k tomu, aby váš web penalizovaly. A naše doporučení? Aktualizujte!

Brute-force (útoky hrubou silou)

Brute-force je metoda pokoušející se o autorizaci hrubou silou. Využívá automatické skripty, které zneužívají slabá hesla a zajišťují útočníkům přístup do administrace webu.

Brute force login attempts

Jak se účinně chránit? Především omezením počtu možných pokusů o autorizaci, monitorováním neautorizovaných přihlášení, dvoufaktorovou autentizací, blokováním IP adres a samozřejmě dostatečně silným heslem. Způsobů ochrany je tedy několik, administrátoři webových stránek ji však často podceňují a následkem toho mohou hackeři snadno napadnout až 30 tisíc webů za jeden den.

Malicious Redirects (škodlivá přesměrování)

Během škodlivých přesměrování je vkládán do souborů webu škodlivý kód. Skripty pro přesměrování bývají nejčastěji umístěny v souboru .htaccess, případně v jiných souborech jádra, a přesměrovávají návštěvníky na škodlivé či reklamní stránky. Problémem je, že se jedná o poměrně nenápadný útok.

Cross-site Scripting (XSS útoky)

XSS je typem útoku, kdy dochází k vložení škodlivého kódu do těla stránky. Typicky se jedná o JavaScript běžící na straně prohlížeče koncového uživatele, aniž by o tom uživatel a vlastník webu věděli. Cílem je „odchytávání“ cookie souborů či dat relací, případně i přepsání samotného HTML kódu na stránce.

Denial of Service (DoS útoky)

DoS útoky jsou pravděpodobně nejnebezpečnější z uvedených zranitelností způsobující odmítnutí služby a znepřístupnění webu. Metoda využívá chyb v kódu a jednoduše spotřebovává RAM serveru/hostingu, na němž je daný web umístěn. Možná jste se setkali i se zkratkou DDoS (Distributed Denial-of-Service), což znamená, že se útoku účastní více počítačů/serverů najednou.

DoS útoky

DoS útoky často přicházejí ze strany finančně motivovaných kyberzločinců cílících na velké společnosti. Nicméně, na pozoru by se měly mít i menší podniky, neboť ty mohou představovat určitou „spojku“ mezi kyberzločinci a velkými firmami.

SQL injection útoky

SQL injection je metoda útoku, při které útočníci vkládají škodlivý SQL kód do databázových dotazů prostřednictvím webových formulářů nebo URL adres. Tímto způsobem se snaží získat neautorizovaný přístup k databázi, modifikovat nebo zničit citlivá data. Útoky jsou založeny na nedostatečném ověření uživatelských vstupů a mohou vést k vážným bezpečnostním problémům, jako je odhalení osobních informací, finančních údajů nebo dokonce získání kontroly nad celým serverem.

Způsoby zabezpečení WordPressu

Jak jsme již uvedli výše, jádro WordPressu samo o sobě poskytuje slušnou ochranu, nicméně existuje několik dalších účinných způsobů, jak úroveň zabezpečení systému ještě o něco zvýšit. A jaké to jsou?

Výběr správného hostingu

Bezpečný web získáte pouze tehdy, zajistíte-li mu bezpečný domov, který v tomto případě představuje kvalitní hosting. Je tedy nutné brát v potaz i stranu serveru.

Mějte na paměti, že vybranému poskytovateli hostingových služeb svěřujete nejen svůj web, ale zároveň i své podnikání. Je proto potřeba vybírat pouze prověřené poskytovatele, nikoliv ty pochybné s podezřele levnou nabídkou služeb. Pozornost věnujte především nabízené ochraně a počtu zpětných záloh dat webu, databáze a e-mailů.

Kvalitní hosting pro WordPress

V souvislosti s hostingem stojí za zmínku také pořízení SSL certifikátu, který zajišťuje zabezpečené spojení HTTPS, tedy šifrované spojení mezi prohlížečem a serverem, resp. vaším webem. HTTPS protokol je nejen bezpečnější, ale je také upřednostňován vyhledávačem Google, díky čemuž se vaše webové stránky mohou umisťovat na vyšších pozicích ve výsledcích vyhledávání. Většina hostingových providerů nákup SSL certifikátu přímo poskytuje.

  • Co dále dělat proto, aby se vaše stránky umisťovaly co nejlépe a byly dohledatelné? Ujistěte se, že splňujete veškerá doporučení obsažená ve WordPress SEO checklistu.

Poslední verze PHP

PHP je obrazně řečeno páteří jakékoliv stránky postavené na WordPressu, a je proto nezbytné disponovat jeho nejnovější verzí. Každá nová hlavní aktualizace PHP je oficiálně podporována po dobu dvou let od svého vydání. Pouze po tuto dobu si můžete být zcela jisti, že budou včasně detekovány a odstraněny veškeré bugy a bezpečnostní hrozby. Používáte-li starší verze PHP, činíte svůj web nadmíru zranitelným a náchylným k nejrůznějším útokům.

V současné době je nejaktuálnější verzí PHP 8.0 vydána v listopadu roku 2020; jak však ukazuje následující graf, užívá jej prozatím naprosté minimum webů (0,5 %). Drtivá většina stále setrvává u verzí 7.2, 7.3 a 7.4, přičemž podpora PHP 7.2 byla již ukončena.

Využití jednotlivých PHP verzí na WordPressu

Zdroj

 

Kvalitní šablona

Při výběru šablony pro svůj web dbejte na to, aby pocházela z prověřených zdrojů. Určitě se nenechte zlákat nabídkami různých serverů nabízejících prémiové šablony zdarma. Je totiž velmi pravděpodobné, že obsahují hack, který si na své stránky nevědomky nahrajete. Důležité je také to, aby byla šablona neustále vyvíjena a aby její poslední aktualizace nebyla starší než 6 měsíců.

Aktualizace pluginů, šablon a jádra WordPressu

V předchozích řádcích jsme již několikrát zmínili, že častou (ne-li hlavní) příčinou útoků na WordPress stránky je používání zastaralé verze systému a jeho komponent. Jejich aktualizace jsou však opodstatněné, neboť obsahují potřebné bezpečnostní záplaty a jako „bonus“ mnohdy i nové funkce.

Aktualizace WordPressu, pluginů, šablon

Největší hrozbu představují zastaralé pluginy, které mají na svědomí více než polovinu všech útoků. Třeba v loňském roce se stal cílem hackerů plugin File Manager, který kvůli bezpečnostní chybě ohrozil až 700 tisíc webů. Stejně jako v případě šablon, ani pluginy rozhodně nedoporučujeme získávat z neprověřených zdrojů. Nikdy totiž nevíte, co modifikovaný kód obsahuje.

Co se aktualizací samotného jádra týče, ty minoritní provádí systém automaticky, majoritní aktualizace je pak třeba instalovat ručně, a to buď prostřednictvím administrace webu v sekci Nástěnka>Aktualizace, případně je možné novou verzi stáhnout z oficiálních WordPress stránek.

Aktualizace WordPressu v administraci

Úpravy v rámci administrace

Jedním z nejčastějších způsobů, jak se útočníci pokouší dostat do WordPress stránky, je prolomení hesla. Je proto důležité, aby používané heslo bylo dostatečně silné a unikátní pro každou stránku. Nejedná se přitom pouze o heslo do administrace, ale také pro FTP, databázi, administraci hostingu či e-mailovou adresu. Obáváte-li se, že jej zapomenete, zkuste některého ze správců hesel.

WordPress prolomení hesla

Další možností, jak docílit vyšší míry zabezpečení, je změna URL přihlašovací stránky. Ve výchozím stavu vypadá následovně: https://www.domena.cz/wp-admin; její změnou se můžete stát méně atraktivním cílem hackerů a lépe web chránit před útoky hrubou silou.

V neposlední řadě je účinným řešením také omezení počtu pokusů o přihlášení, čehož lze docílit například využitím pluginu All In One WP Security či bezplatnou verzí pluginu Wordfence.

Dvoufázové přihlášení

Ať už používáte sebevíc silné heslo, bohužel stále nemáte vyhráno, neboť i to mohou útočníci – ač poněkud obtížněji – prolomit. Určité východisko představuje dvoufázová autentizace, což je metoda přihlašování ve dvou krocích. V prvním kroku zadáte běžným způsobem uživatelské jméno a heslo, ve druhém kroku je pak potřeba ověření identity prostřednictvím odlišného zařízení či aplikace.

K implementaci této funkcionality stačí nainstalovat šikovný plugin, jako je třeba 2FAS Light – Google Authenticator. Dvoufázové přihlašování je velice účinnou prevencí proti útokům hrubou silou, neboť pro útočníky je téměř (ne-li zcela) nemožné mít současně vaše uživatelské jméno, heslo i smartphone.

Zakázání úprav souborů

WordPress uživatelům umožňuje upravovat soubory přímo v administraci. Potřebuje-li tedy uživatel upravit něco v šabloně či pluginu, nemusí se ani připojovat na FTP a vystačí si s webovým rozhraním. To vše je sice velice pohodlné, avšak zároveň i nebezpečné. Pokud se hackeři přece jen dostanou do vaší administrace, pak velmi snadno upraví některé zdrojové soubory a implementují do nich škodlivý kód či nechtěnou reklamu.

Jste-li schopni se bez této funkce obejít, raději ji vypněte. Stačí, když v souboru wp-config.php přidáte tento řádek: define(‚DISALLOW_FILE_EDIT‘, true);

Zabezpečení souboru wp-config.php

Wp-config.php je konfigurační soubor, jenž se automaticky generuje při instalaci WordPressu. Obsahuje mimo jiné uložené přístupové údaje k MySQL databázi a bezpečnostní klíče, které se starají o šifrování informací v souborech cookie. Vzhledem k tomu, že tento soubor obsahuje velké množství citlivých informací, je třeba jej dostatečně zabezpečit. Než se však pustíte do jakýchkoliv úprav, svůj web rozhodně zálohujte. Soubor wp-config.php je kriticky důležitý a potenciální chyby v něm obsažené mohou zapříčinit nefunkčnost celého webu. A jak soubor tedy zabezpečit?

Zabezpečení souboru wp-config.php

Jednou z možností je změna umístění souboru. Standardně se nachází v kořenové složce WordPressu, lze jej však přesunout tak, aby nebyl nadále přístupný přes www rozhraní.

Dalším způsobem vedoucím k lepšímu zabezpečení stránek je aktualizace bezpečnostních klíčů. WordPress spravuje přihlašovací relace tak, že namísto použití PHP relací ukládá informace do souborů cookie. Ty jsou zabezpečeny prostřednictvím speciálního HASHe skládajícího se z uživatelského jména, hesla a „dlouhého náhodného řetězce“. Těmito řetězci jsou právě bezpečnostní klíče. Ač si klíče dokáže WordPress vytvořit sám, doporučuje se za účelem lepší bezpečnosti získat klíče náhodně generované. K tomu lze využít například následující odkaz: https://api.wordpress.org/secret-key/1.1/salt/. Získané řetězce následně zkopírujete do souboru wp-config.php.

V neposlední řadě je třeba brát v potaz nastavení přístupových práv souborů a složek. Obvykle jsou soubory v kořenovém adresáři webu nastaveny na oprávnění 644. Pro soubor wp-config.php by však mělo být nastaveno na 440 či 400. Docílí se tak toho, že jej ostatní uživatelé na serveru nebudou moci přečíst. Oprávnění snadno změníte prostřednictvím FTP klienta.

Pravidelné zálohy

Zálohování WordPressu

Zajisté netřeba zmiňovat fakt, že útoky hackerů jsou vlivem neustálého vývoje v oblasti informačních technologií čím dál tím promyšlenější a chytřejší. I když tedy učiníte veškerá výše uvedená opatření a budete se držet doporučených praktik, stále existuje určité riziko – ač třeba s pravděpodobností v řádu setin procent – že váš web bude napaden. Nejlepším bezpečnostním opatřením, které v tomto směru můžete učinit, jsou pravidelné zálohy WordPress stránek, pokud možno na denní bázi. V případě, že se do vašeho webu tedy přece jen někdo nabourá, budete mít své soubory vždy k dispozici a budete je moct okamžitě obnovit.

  • Domníváte se, že se vás útoky netýkají? Podívejte se na toto počítadlo, které ukazuje počet hacknutých webů v aktuální den. Stačí opravdu málo, aby se mezi nimi objevil i ten váš.

Pluginy pro zabezpečení

Se spoustou metod zabezpečení WordPressu vám mohou pomoci, a značně tak usnadnit práci, bezpečnostní pluginy. Mezi kvalitní bezpečnostní pluginy patří například Sucuri Security, Jetpack či Wordfence Security.

Sucuri Security plugin

Sucuri Security

Plugin Sucuri Security pochází z dílny společnosti Sucuri inc, která je jedním z největších expertů na webovou bezpečnost a která se specializuje především na redakční systém WordPress. Plugin je dostupný jak v bezplatné, tak i placené verzi. Vedle základního zabezpečení nabízí také monitoring veškeré aktivity vašich uživatelů a dokáže rozpoznat malware a abnormální změny ve zdrojových souborech. O podezřelé aktivitě přitom ihned dostanete notifikaci. Některé druhy předplatného poskytují i pokročilou ochranu proti nebezpečným DDoS útokům.

Jetpack Security Plugin

Jetpack

Za vývojem pluginu Jetpack stojí společnost Automattic, jež byla založena samotným spoluzakladatelem WordPressu, Mattem Mullenwegem. Právě to z něj činí vysoce populární a důvěryhodné řešení pro mnohé WordPress uživatele.

Plugin řeší nejen problematiku zabezpečení webu, ale také oblasti, jako jsou zálohování stránek, jejich výkon, design aj. Umožňuje zálohování dat v reálném čase, detekuje malware a chrání proti spamu a útokům hrubou silou. Mimo jiné také usnadňuje implementaci dvoufázového ověření. Stejně jako u předchozího modulu, i v tomto případě obdržíte v případě provedených změn v souborech notifikaci.

Wordfence Security PLugin

Wordfence Security

Posledním pluginem, který v tomto článku zmíníme, je Wordfence Security. I ten se těší velké oblibě a patří – ostatně stejně jako předchozí Jetpack – k vůbec nejstahovanějším pluginům v celé WordPress knihovně. V základní verzi je dostupný zdarma.

Wordfence funguje jako jakýsi antivir pro váš web; pomocí firewallu běžícího na úrovni PHP chrání stránky před brute force a DDoS útoky a detekuje malware. V pravidelných intervalech skenuje stav systému a kontroluje aktuálnost verze jádra WordPressu i jeho pluginů. Samozřejmostí je také hlídání změn souborů a s ním související upozornění.

Role umělé inteligence (AI) v zabezpečení webu

S umělou inteligencí a strojovým učením se v poslední době doslova roztrhl pytel. Tyto technologie se stále více uplatňují v oblasti kybernetické bezpečnosti, kde pomáhají detekovat a rozpoznávat různé typy hrozeb, které by jinak mohly být přehlédnuty.

Ptáte se, jakými způsoby přispívá AI k ochraně webových stránek? Níže uvádíme některé z nich.

  • Správa identit a přístupů

Prostřednictvím umělé inteligence lze například analyzovat vzorce chování uživatelů při přihlašování. Pomáhá s detekcí anomálních aktivit a umožňuje automatické vynucení dvojúrovňového ověřování nebo obnovení hesla podle definovaných podmínek.

  • Zabezpečení koncových bodů

Umělá inteligence dokáže identifikovat zranitelnosti koncových bodů, kupříkladu zastaralé operační systémy. Také pomáhá odhalit přítomnost malwaru na zařízeních.

  • Prevence a detekce hrozeb

AI analyzuje data událostí a kybernetických hrozeb z různých zdrojů. Z těchto informací si následně tvoří přehledy, které pomáhají bezpečnostním odborníkům prověřovat a reagovat na potenciální hrozby.

  • Syntéza dat a doporučení

Umělá inteligence může generovat dobře čitelné sestavy a doporučení s odpovídajícím kontextem, což značně usnadňuje řízení vyšetřování incidentů a komunikaci mezi odborníky na bezpečnost.

Nicméně, důležité je si uvědomit, že stejně jako umělou inteligenci používají různé organizace k zabezpečení webu, mohou ji ke svým účelům používat i kybernetičtí útočníci. Je tedy více než nezbytné neustále sledovat nejnovější trendy a vylepšovat bezpečnostní opatření.

Případové studie útoků

Nyní si uvedeme konkrétní příklady nedávných bezpečnostních incidentů na WordPress stránkách. Každý problém je stručně popsán a doplněn o řešení.

1. Útok na neaktualizované pluginy a šablony

  • Popis incidentu: Útočníci využili zranitelnosti v neaktualizovaných pluginech a šablonách (Themes), což vedlo k neoprávněnému přístupu a manipulaci s obsahem webu.
  • Řešení: Pluginy a šablony používané na webových stránkách pravidelně aktualizujte a ostatní, které nepotřebujete, odstraňte. Smazání nadbytečných pluginů provedete ve WordPress v sekci „Pluginy – Přehled pluginů“ a pro odstranění šablon najděte v menu sekci „Vzhled – Šablony“.
    Ve WordPress se automaticky zobrazují oznámení o nových aktualizacích pro nainstalované doplňky.

2. Brute force útoky na přihlašovací formulář

  • Popis incidentu: Útočníci se pokoušeli prolomit hesla k administrativním účtům WordPress pomocí brute force útoků na přihlašovací formulář.
  • Řešení: Pro přihlášení do redakčního systému WordPress si nastavte silné a jedinečné heslo, aktivujte si dvoufázové ověření a používejte speciální pluginy, které omezují počet pokusů o přihlášení.

3. Útoky na soubor wp-config.php

  • Popis incidentu: Útočníci se pokoušeli získat přístup k souboru wp-config.php, který obsahuje citlivé informace, jako jsou přístupové údaje k databázi MySQL a bezpečnostní klíče pro šifrování informací v souborech cookie.
  • Řešení: Zabezpečte soubor wp-config.php pomocí souboru .htaccess a pokud je to možné, přesuňte ho mimo veřejně přístupné adresáře.

4. SQL injection útoky

  • Popis incidentu: Útočníci využili SQL injection útoků k manipulaci s databází WordPressu a získání citlivých informací.
  • Řešení: Používejte parametrizované dotazy při komunikaci s databází a bezpečnostní pluginy, které se specializují na detekci SQL injection útoků.

5. Útoky na protokol XML-RPC

  • Popis incidentu: XML-RPC je protokol určený pro komunikaci mezi WordPress a externími aplikacemi. Útočníci mohou využít jeho zranitelnost a přetížit web velkým množstvím falešných požadavků, čímž ohrozí bezpečnost webu a útočníci se mohou snadněji nabourat do systému.
  • Řešení: Pokud XML-RPC nepoužíváte, ve WordPress ho deaktivujte, nebo nastavte jeho omezení pomocí pluginu.

Jak jste si mohli sami povšimnout, způsobů, jak zabezpečit webové stránky na WordPressu, existuje celá řada. Není tedy vůbec potřeba zbytečně se vystavovat jakémukoliv riziku. Máte-li pocit, že si se zabezpečením WordPressu asi sami neporadíte, na nic nečekejte a obraťte se na odborníky, kteří se v dané problematice orientují a rádi vám pomohou.