Velký průvodce bezpečností WordPressu. Víme, jak jej udržet bezpečný

10. 4. 2020 Webové stránky

Redakční systém WordPress je suverénně nejrozšířenějším redakčním systémem na světě. Běží na něm zhruba třetina světových webů včetně například webu Bílého domu. Rozhodně se nedá říci, že by tvůrci WordPressu jeho zabezpečení ignorovali. Ale právě jeho rozšířenost z něj činí cíl č. 1 hackerů, kteří se snaží se snaží prolomit jeho bezpečnost. Většina útoků však nejsou cílené na konkrétní web, nýbrž je provádí roboti zkoušící web po webu provádět automatizované útoky na nejčastější bezpečnostní zranitelnosti WordPressu. A nutno říct, že mnohdy úspěšně.

Ukázka automatického prolomení. V tomto případě naštěstí neúspěšného (bot byl díky správnému nastavení bezpečnostního pluginu zablokován).

Ukázka automatického prolomení. V tomto případě naštěstí neúspěšného (bot byl díky správnému nastavení bezpečnostního pluginu zablokován).


 
Protože jsme jako Fresh postavili za téměř 13 let fungování tisíce webů a jejich bezpečnost je jednou z našich hlavních priorit, přináším souhrn hlavních opatření, díky kterým váš web odolá drtivé většině všech útoků.
 

1. Obecná doporučení

Tyto zásady doporučujeme dodržovat, i pokud nemáte web na WordPressu, ale na zcela jiném CMS včetně těch vlastní výroby.
Protože útoky jsou automatizované a zkouší především nejčastěji používané kombinace uživatelských jmen a hesel, rozhodně se vyhněte uživatelským jménům jako admin, admin123 apod. I hesla bývají prolamována obyčejnou kombinatorikou, a proto by mělo mít alespoň 16 znaků. Ty by měly být vygenerovány náhodně a obsahovat kombinace velkých a malých písmen, číslice a různé méně často používané znaky (například #). Sám WordPress má při zakládání účtů poměrně kvalitní generátor náhodných hesel. Toto pravidlo však doporučuji aplikovat i na přístup na webový server skrze FTP (i zde existují externí generátory, které vám s tvorbou silného hesla pomohou).
U větších webů (e-shopy, portály apod.) je dobré věnovat několik minut správnému nastavení hlaviček, byť tento druh útoků nebývá tolik častý. Problematika hlaviček je však poměrně obsáhlá, a proto se můžete v následujících týdnech těšit na další článek, kde ji shrnu.
Na bezpečnost by měl dbát i váš provozovatel hostingu. U těch seriózních je již pravidlem zálohování na denní bázi. Ani toto zálohování však není všemocné. Setkala jsem se totiž s malware, který začal aktivně působit až po několika týdnech. Proto i po obnovení zálohy (obvykle se uchovávají pouze zálohy za posledních 14 dní) byl malware přítomen ve zdrojovém kódu a po čase znovu začal aktivně působit. Doporučuji proto čas od času provádět i zálohy vlastní.
 

2. Nastavení WordPressu

Zlatým pravidlem pro bezpečnost WordPressu je udržovat jádro systému i všechny pluginy neustále aktuální. Minimálně tvůrci WordPressu se snaží držet krok s hackery a co nejrychleji zapracovávat známé bezpečnostní chyby.
Častým zdrojem bezpečnostních prolomení bývá technologie XML-RPC. Ta na jednu stranu stranu umožňuje obsluhu WordPressu z externích aplikací (například z oficiální mobilní aplikace pro správu WordPressu), ale zároveň je přes ni jednoduché propašovat do webu škodlivý kód. Proto doporučuji tuto technologii vypnout. Bohužel to ale není úplně snadné. Nejde to udělat z administrace a ani nestačí smazat soubor xmlrpc.php. Obvykle musíte aplikace zakázat přímo v .htaccess vložením následujícího kódu:
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
 
Případně vám s tím může pomoci bezpečnostní plugin (viz níže).
Riskantní mohou být i aktivní trackbacky a pingbacky. Bývají častým zdrojem spamu. Pomocí nich může mít také vyvolán DDoS útok (přetížení webu důsledkem enormního množství požadavků). Lze je však naštěstí zakázat přímo v administraci webu.
U většiny webů doporučuji zakázat komentáře, přestože například nejsou v šabloně viditelné. Pokud komentáře chcete/musíte na webu mít, doporučuji některé z následujících opatření:

  • zákaz aktivních odkazů
  • nastavení slov, po kterých je komentář automaticky zablokován (například “viagra”, výrazy v azbuce)
  • manuální schvalování komentářů (lze zapnout přímo ve WordPressu)
  • captcha

 
Poslední zmiňovaná technologie již dávno není pouze o opisování často špatně čitelných písmen a číslic. Dnešní captcha systémy jsou často neviditelné pro všechny uživatele, které nevyhodnotí jako podezřelé. Následující video však ukazuje, že ani captcha nemusí odhalit všechny roboty.

Captcha se dá kromě komentářů samozřejmě využít i u formulářů a například při přístupu do administrace.
 

3. Zabezpečení formulářů

I formuláře bývají zdrojem bezpečnostních útoků. Kromě relativně neškodného spamu, který lze eliminovat captchou, bývají nejzranitelnější přílohy. Ne všechny formuláře se bez nich obejdou. Doporučuji však snížit riziko alespoň tím, že u příloh nastavím několik málo typů povolených příloh a ostatní blokuji. Zároveň mohu také omezit jejich maximální velikost. Například nejpoužívanější plugin na tvorbu formulářů Contact Form 7 umožňuje toto ve svém základním nastavení.
 

4. Pluginy – důvěřuj, ale prověřuj

Jednou z hlavních výhod WordPressů jsou široké možnosti využití externích pluginů. Nemusíte si programovat každou funkci sami, ale využijete některý z pluginů, který vám ji (často během pár sekund) naimplementuje.
Obecně platí, že byste to s pluginy neměli přehánět (každý plugin je riziko z hlediska stability systému – například při aktualizaci systémového jádra). Když však plugin použijete, doporučujeme si k němu na WordPress.org dohledat následující informace:

  • nejnovější podporovaná verze (měla by být shodná s nejnovější verzí WordPressu)
  • datum poslední aktualizace (nemělo by být starší než 3 měsíce)
  • uživatelské recenze

 
Bezplatné pluginy stahujte pouze z WordPress.org (jeho vyhledávač je integrován přímo v administraci webu na Pluginy – Instalace pluginů). Ty placené pouze z webu výrobce, či důvěryhodných zdrojů (například CodeCanyon.net, WooCommerce.com). Často na internetu můžete nalézt placené pluginy z neoficiální distribuce na velmi nízkou cenu. Nekupujte je. Nejen, že je to neetické (tyto pluginy zde jsou za tuto cenu prodávány jen díky totálnímu zneužití licence GNU-GPL), ale hlavně tím riskujete, že:

  • tyto pluginy budou infikovány škodlivým malwarem
  • nebudou fungovat správně
  • dojde ke krádeži údajů vaší platební karty

 

5. Speciální bezpečnostní pluginy (Wordfence vs. WP Cerber)

Speciální kategorií jsou pluginy na bezpečnost webu. Ty umožňují provést během několika málo minut většinu důležitých bezpečnostních nastavení, jejichž manuální implementace by i seniornímu programátorovi trvala několik hodin. Dalo by se říct, že je to takový antivir pro web.
Sama využívám především tyto 2 – Wordfence a Cerber Security. Rozhodně doporučuji tyto pluginy nekombinovat (stejně jako si do počítače neinstalujete dva antiviry). Oba dva obsahují tyto funkce:

  • nastavení blokace XML-RPC
  • blokace dle IP a identifikace IP
  • aktivní detekování podezřelé aktivity
  • kvalitní scanovací nástroj
  • vysoký stupeň ochrany i v bezplatné verzi

 
Oba dva však mají i své plusy a mínusy, které jsem shrnula v následující tabulce.

Wordfence Cerber Security
Výhody
  • aktivní komunita a support
  • léty ověřený
  • extra nastavení pro opravu bezpečnostních chyb často používaných pluginů
  • recaptcha integrace pro přihlášení, registraci
  • přehledné a pochopitelné nastavení
  • blokace/whitelist i celého subnetu
  • funkce pro změnu přihlašovací stránky
Nevýhody
  • je složitější se v něm vyznat, těžkopádnější
  • novější a potřebuje doladit (dost často detekuje falešně pozitivní výsledky)
Vhodné pro
  • weby kde je hodně uživatelů – umožňuje nastavit vynucení bezpečného hesla nebo two-factor ověření 
  • e-shopy kde je zvlášť důležitá bezpečnost kvůli platbám online
  • menší nebo prezentační weby
  • když velmi záleží na optimalizaci rychlosti webu, dat a optimalizaci pro mobily

 
Ani tato opatření vám nezaručí, že váš web nikdy nikdo nehackne. S jejich aplikací však snížíte na naprosté minimum, které je akceptovatelné i pro většinu velmi významných webů.
 

Nechte to na profících

Sami vidíte, že zabezpečit svůj WordPress web je poměrně komplexní proces. Práce na bezpečnosti webu vyžaduje, abyste jí pravidelně věnovali svůj čas. Pokud vyloženě nejste profesionál přes weby, je dobré ji profesionálům přenechat. Fresh nabízí servis WordPress webů již od 599 Kč měsíčně. Vyplňte formulář níže a zjistěte více.

Chyba: Kontaktní formulář nebyl nalezen.