Ako predísť základným bezpečnostným chybám pri WordPress

Bezpečnosť WordPress, jedného z najpoužívanejších redakčných systémov (CMS) poháňajúceho približne 43 % všetkých webstránok, je pravidelne rozoberanou témou.

Vďaka jeho vysokej popularite medzi používateľmi vznikla okolo WordPress rozsiahla komunita vývojárov poskytujúca množstvo grafických tém a modulov (pluginov), ktorých cieľom je rozšíriť základné jadro systému WordPress o rôzne užitočné funkcionality.

Nie je preto prekvapujúce, že tento robustný ekosystém láka pozornosť hackerov, ktorí svoje útoky cielia nielen na zraniteľné miesta samotného jeho jadra, ale taktiež na možné bezpečnostné diery v zdrojovom kóde tém a modulov.

Aj napriek tomu, že na tému bezpečnosti WordPress vzniklo mnoho obsahu a odporúčaní, prax pri mnohých projektoch odhaľuje práve zanedbanie základných bezpečnostných opatrení a pravidelnej údržby. Pritom už vykonaním niekoľkých krokov je možné výrazne zvýšiť bezpečnosť vášho webu a predísť tak nepríjemnostiam, ktoré sú spojené s riešením problémov pri jeho napadnutí.

Inštalácia SSL certifikátu

SSL certifikát je protokol na prenos údajov – šifruje ich vymieňané medzi webovým serverom a prehliadačom (návštevníkom), čím útočníkom sťažuje možnosť modifikovať údaje webstránky a získať tak napríklad od návštevníka citlivé informácie.

Zabezpečený hypertextový prenosový protokol (HTTPS) posilňuje inštaláciou SSL certifikátu okrem bezpečnosti aj optimalizáciu webu pre vyhľadávače (SEO). Zadováženie základného SSL certifikátu už v dnešnej dobe nie je otázkou dodatočných nákladov, pretože väčšina hostingov zahŕňa základný Let’s Encrypt SSL certifikát bezplatne vo svojich hostingových plánoch.

Inštalácia bezpečnostného modulu

Bezpečnostné moduly poskytujú v rámci svojich nastavení komplexný súbor opatrení pre zvýšenie bezpečnostného skóre webu. V článku si ukážeme implementáciu základných bezpečnostných nastavení použitím modulu All-In-One Security (AIOS) v jeho bezplatnej verzii.

Dostupných bezpečnostných modulov pre WordPress je, samozrejme, omnoho viac, medzi praxou overené patria napríklad Wordfence Security, Sucuri Security, Defender Security.

Zabezpečenie prihlasovacích údajov

V prvom kroku je potrebné pozrieť sa na zabezpečenie samotných prihlasovacích údajov jednotlivých účtov, najmä administračných a editorských. Pri všetkých typoch účtov je dôležité nastavenie silných hesiel.

TIP

Použitím softvéru pre správu hesiel (napr. 1Password, LastPass, NordPass) eliminujete potrebu pamätať si zložité prístupové údaje. Stačí si zafixovať jedno silné heslo potrebné pre prihlásenie do aplikácie správcu hesiel. Tá následne pomocou šifrovania zabezpečuje automatické vypĺňanie prihlasovacích údajov.

Pri administračných účtoch je taktiež potrebné vyvarovať sa generických prihlasovacích mien admin alebo administrator, ktoré sú často používané zo strany útočníkov. Nami zvolený modul AIOS nás v sekcii nastavení User Accounts sám vyzve na zmenu pri výbere generického používateľského mena.

Zmena administračnej URL

Administračná URL systému WordPress má po inštalácii preddefinovaný tvar vasadomena.sk/wp-admin alebo vasadomena.sk/wp-login.php. Keďže tento prednastavený tvar URL adresy je známy aj útočníkom, jej zmenou viete predísť útoku hrubou silou (brute-force attack).

1 Modul AIOS – Zmena prihlasovacej URL v nastaveniach sekcie Brute Force

Pokiaľ vami používaný bezpečnostný modul neumožňuje zmenu prihlasovacej URL, viete danú funkcionalitu zabezpečiť inštaláciou WPS Hide Login.

Monitoring a blokovanie prihlásenia

Monitorovaním a blokovaním prihlásenia takisto môžete eliminovať útoky hrubou silou, kedy sa útočníci snažia opakovanými pokusmi uhádnuť kombináciu mena a hesla s cieľom vniknúť do administrácie stránky.

V rámci nastavení sekcie User Login modulu AIOS (zobrazených nižšie) sme vybrali zablokovanie návštevníka po piatich neúspešných pokusoch, pričom čas zablokovania sme nastavili od 5 hod. (300 min.) až po 24 hod. (1 440 min.).

Taktiež sme v rámci nastavení automaticky zablokovali pokusy prihlásenia pod neexistujúcim používateľským menom (prevencia situácií, kedy útočník háda používateľské meno) a nastavili e-mailovú notifikáciu zablokovaného pokusu prihlásenia.

2 Modul AIOS – Nastavenie blokovania prihlásenia

E-mailové notifikácie nám vedia pomôcť identifikovať opakujúceho sa útočníka, kedy pri opätovne zlyhaných pokusoch častokrát dokážeme definovať jeho jednotnú IP adresu a následne v rámci prevencie nastaviť jej automatické blokovanie.

Ďalšími krokmi pre posilnenie bezpečnosti prihlasovania môže byť:

  • implementácia 2-faktorovej autentifikácie, napr. integrovaním nástroja Google Authenticator,
  • nastavenie hesla pre sprístupnenie samotnej administračnej URL,
  • nasadenie nástroja Google reCAPTCHA v rámci prihlasovacej stránky do administrácie.

Zmena prefixu databázy

Databáza takisto býva častým cieľom hackerov formou SQL injekcií či použitím automatizovaného kódu cieliaceho na určité tabuľky databázy. Keďže systém WordPress v rámci databázy používa jednotnú štruktúru tabuliek so základným prefixom „wp_“, stáva sa jednoduchším terčom útočníkov.

Zmenou základného prefixu databázy im môžeme prácu výrazne skomplikovať, pretože pre správnu funkcionalitu ich škodlivého kódu pri útoku na našu databázu musia poznať nový prefix jej tabuliek.

3 Modul AIOS – Zmena prefixu v sekcii Database Security

Firewall

Firewall poskytuje ďalší rad opatrení a mechanizmov, ktoré zabezpečujú blokovanie škodlivého kódu ešte skôr, ako sa dostane k zraniteľným častiam webu.

V rámci modulu AIOS odporúčam v sekcii Firewall zapnúť všetky základné a dodatočné nastavenia s výnimkou zneprístupnenia RSS feedu, pokiaľ ho plánujete používať pre sprístupnenie obsahu webu, napríklad článkov pre čítačky alebo portály automaticky zhlukujúce užitočný obsah.

Zabezpečenie súborového systému

Nastavenia sekcie Filesystem Security modulu AIOS umožňujú:

  • kontrolu a nastavenie odporúčaných oprávnení prístupu k zložkám a súborom systému,
  • znemožniť editáciu PHP súborov tém a modulov cez editor v administrácii WordPress (editácia zdrojových súborov je často prvým krokom útočníkov pri získaní prístupu do administrácie),
  • zabrániť prístupu k vybraným systémovým súborom (ako readme.html, license.txt a wp-config-sample.php), ktoré sú súčasťou inštalácie WordPress.

Pravidelná údržba a záloha

Dôležitým aspektom bezpečnosti je aj pravidelná inštalácia aktualizácií jadra systému WordPress, tém a modulov prinášajúcich okrem nových funkcionalít aj riešenia zistených bezpečnostných chýb a zraniteľných miest.

TIP

Pre testovanie aktualizácií odporúčam mať pripravenú vývojovú verziu vášho webu, kde si všetky aktualizácie, ich správne fungovanie a kompatibilitu najprv odskúšate a vyladíte pred nasadením na ostrú verziu.

Pri údržbe je dobré zanalyzovať, či sú všetky aktuálne bežiace moduly aj skutočne používané. Pokiaľ natrafíte na neaktívne, s ukončeným vývojom, prípadne funkcionalitou, ktorú už viac nepoužívate, odporúčam ich odstránenie.

Odporúčanie: Používajte overené moduly a témy – pred inštaláciou si pozrite ich hodnotenia, komentáre používateľov a históriu – životný cyklus vývoja či pravidelnosť aktualizácií. Pri platených témach a moduloch odporúčam kúpu z overených zdrojov (ThemeForest, CodeCanyon, weby samotných vývojárov).

Verzia PHP

Potrebné je taktiež aktualizovať verziu jazyka PHP bežiacu na serveri v rámci vášho hostingu a zabezpečiť jej aktuálnosť.

Daný graf zobrazuje životný cyklus jazyka PHP, ktorý definuje verzie:

  • s aktívnou podporou,
  • už iba s bezpečnostnými opravami,
  • s ukončenou podporou.

Verziám s ukončenou podporou (zobrazené červenou farbou) je potrebné sa z bezpečnostného hľadiska vyhnúť a zabezpečiť ich aktualizáciu na verziu s aktívnou podporou.

Záloha dát

Pri riešení problémov vždy oceníte dostupnú funkčnú aktuálnu zálohu webu (databázy a zdrojové súbory). Mnoho hostingov poskytuje v rámci svojich hostingových plánov dennú zálohu dát. Pokiaľ takúto zálohu k dispozícii nemáte, viete ju zabezpečiť napríklad použitím niektorého z týchto modulov: UpdraftPlus, BackWPup, Duplicator (samozrejme, dostupných alternatív je omnoho viac).

Záver

Bezpečnosti webu je potrebné venovať náležitú pozornosť. Čas a financie investované aspoň do základných bezpečnostných opatrení, monitoringu a pravidelnej údržby sú neporovnateľne nižšie oproti nákladom, ktoré by ste museli vynaložiť na riešenie bezpečnostného incidentu – či už v prípade úniku citlivých údajov, inštalácií škodlivého malwaru, alebo znefunkčnenia webu.

Pravidelný newsletter

Odšťavený z čerstvých marketingových noviniek, plný výživných informácií.
Nezmeškajte náš obsah a zostaňte v obraze.

Author avatar
Ján Šima
V CF-ku má na starosti tvorbu webstránok/obsahových portálov a ich následnú správu – optimalizáciu, údržbu a doladenie prípadných chýb skôr, než si ich niekto stihne všimnúť :). Má rád neutíchajúcu pozitívnu energiu okorenenú dobrou hudbou v spojení s poctivo odvedenou tímovou prácou.