Jak zvýšit bezpečnost WordPressu


Poslední dobou jsem toho do světa WordPressu moc nepublikoval. Měli jsme hodně práce na našem rostoucím projekt s wpframework.cz a do toho Vánoce, svátky, rodiče, Silvestr, atd. Co budu povídat. Dneska jsem se rozhodl, že bych měla také napsat něco o bezpečnosti. Určitě Vás napadne, že takových článků najdete na internetu stovky – přesně ! Když jsem brouzdal po internetu, narazil jsem na mnoho těchto článků a právě ho hodlám napsat. Vypadá to totiž, pokud jsem jako bloger, který píše o WordPressu nenapsal alespoň jeden článek o bezpečnosti, nemám právo vstoupit do síně slávy. Tak jdu na to!

Obecná fáma o bezpečnosti WordPressu

WordPress je OpenSource – všichni znají jeho kódy, přesné chyby a jak mile na něm zhotovím / spustím web, pravděpodobně mě hacknout do několika minut, ukradnou mi data, na web hodí nějaké nekalé odkazy a nejspíš budou vidět přes mojí webku na noteboou co si právě dělám k večeři!

Zde bych se chtěl WordPressu trochu zastat – ano, musím souhlasit s tím, že část tvrzení o OpenSource řešení je pravda. Kódy jsou skutečně veřejné a případný útočník může projít řádek po řádku a zjistit, kde je problém. Na druhou stranu WordPress je velmi aktivně používaný systém. Pokud se v něm najde bezpečnostní „díra“ do několika dní / týdnů vychází záplata. Ostatní systémy o díře ani neví a nemají důvod tak něco opravit. Když se tedy někdo úmyslně rozhodne, že Vás poškodí, bude to mít mnohem snadnější s CMS od soukromé firmy, než s WordPressem.

Co dělat proto, abych měl(a) stránky maximálně zabezpečené?

Aktualizace

Vždy, když vyjdou některé aktualizace WordPressu, neváhejte a obratem jí aplikujte na Vaše stránky. Pokud máte strach z toho, že se aktualizací něco pokazí, pravděpodobně jste nevybrali správného dodavatele Vašeho řešení a měli byste uvažovat o změně. Je to trochu hloupé říkat, ale bohužel je to tak. Každá šablona by měla být napsaná tak, aby byla aktualizovatelná. Ano, pokud budete mít šablonu starou 8 let, může se stát, že i zkušený developer neměl schopnost vidět do budoucnosti co WordPress změní. Neváhejte ho kontaktovat a nechat si udělat úpravu – klidně za peníze, jde o Vaše data. Pokud používáte prémium šablony nebo free šablony, zde to může být problém. U prémium často aktualizace vychází – ne ale vždy. U těch free se není moc čemu divit – update moc neočekávejte.

Pluginy, jejich počet a aktualizace

Je třeba si dobře uvědomit, že plugin dneska může napsat kde kdo. Jsou dobří a zdatní developeři, kteří svou práci berou opravdu vážně a plugin maximálně zabezpečí, aby se v něm některá bezpečnostní chyba nevyskytla. To ale Vy jako uživatel nemůžete nikdy vědět. Proto byste měli vždy používat hlavně prověřené pluginy (právě od těch dobrých developerů), s dobrou sadou komentářů, počtem stažení a takové, které jsou aktuální – plugin, který nebyl 2 roky aktualizován asi není ten pravý – ikdyž umí přidat super ikony na sdílení obsahu pro sociální sítě.

Stejně tak se snažte pluginů používat co nejméně. Každý plugin sebou může nést určité procento rizika. Viděl jsem už weby, kde bylo 22 pluginů a z toho 18 jich bylo nějakým způsobem napadnutelných – to je hodně možností, jak dát útočníkovi šanci.

Pluginy a šablony, které nepoužívám? Pryč s nimi!

V žádném případě byste také neměli držet nainstalované šablon a pluginy, které jsou deaktivované a vůbec je nepoužíváte. I přesto, že nejsou aktivované jsou stále velkým bezpečnostním rizikem. Zdrojové soubory leží na Vašem hostingu nebo serveru a útočník je může stále napadnout i bez toho, že by byly v rámci instalace aktivní. Zde platí tedy jednoduché pravidlo a to takové, že věci, které nepoužíváte obratem smažte.

Také si dávejte pozor na databázi – některé pluginy a šablony přidávají vlastní tabulky. I ty byste měli ručně odstranit, protože se na ně může útočník dobývat pomocí SQL injection. V mnoha případech asi útočník nezjistí žádné klíčové údaje a data, ale nikdy nevíte, co daný plugin / šablona do databáze ukládá a co tak ve finále útočník „vytěží“.

Správné jméno a heslo

Často útočník získá Vaše přihlašovací údaje – ne přes plugin, ne přes bezpečnostní chybu ve WordPressu. Prostě to zkusil. Pokud tedy máte Uživatel: Admin a heslo admin, nebude to asi těžké. Nedávno náš server zažil útok v podobě robota, který těchto hesel několik zkusil. Velmi často používají kombinace čísel 12345, 123456, 54321, atd. Také často zkouší kombinaci domény – Pokud máte doménu např.: leteckyden.cz – určitě bude vyzkoušen přihlašovací login „leteckyden“, atd. Měli byste být tedy vždy originální.

Také byste měli myslet na sílu svého hesla. Hesla jako například: pes, kocka, auto, rodné číslo, atd. nebudou asi příliš silná a v případě potřeby budou snadno „zkusitelná“ nebo prolomitelná. Heslo by mělo mít vždy alespoň 8 znaků, velké písmeno, číslo a jeden speciální znak (?, !, ., #, @, atd.). Neměli byste také mít pro každý Váš web (pokud jich máte více) jedno heslo. Použijte například nějaký password manager (je jich dnes spoustu), ať si hesla nemusíte pamatovat v hlavě.

Prefix tabulek v databázi

Defaultně WordPress používá „wp_“ – jsou určité typy útoků, které této nevýhody mohou využít ve svůj prospěch. Znají předem název tabulek a tak mohou podstrkávat SQL dotazy, které by jim mohli něco prozradit. Pokud však budete mít prefix tabulek jiný, SQL dotaz se jim nepovede, protože bude zahlášena chyba neexistující tabulky. Této praktice se obecně říká SQL Injection. Při instalaci WordPressu použijte vždy jiný prefix těchto tabulek – na tuto možnost se Vás WordPress ptá při instalaci – v části, kde vyplňujete přihlašovací údaje k databázi.

Použít nějaký bezpečnostní plugin

Po doporučení a vyzkoušení můžeme doporučit iThemes Security – plugin má možnost omezit útočníky v některých neběžných praktikách a celkovou bezpečnost zvednout na trochu vyšší úroveň. Plugin Vám například umožní omezit počet lognutí na IP adresu, zamezí přístup na /wp-admin, odstraní některé věci, z kterých lze získat informace o verzi WordPressu, atd. Plugin je poměrně rozšířený a nabízí toho hodně. Je třeba tomu chvilku dát a důkladně si pročíst některé možnosti. Přínos je však velmi kvalitní.

Za doporučení pluginu musíme poděkovat Vladimíru Smitkovi, který ho představil na loňské WordPress konferenci.

Nejsem jenom uživatel, kam mohu bezpečnost WordPressu posunout dále?

Výše popsané body jsou universálním pravidlem a věřím, že je schopen je dodržovat každý průměrný uživatel WordPressu. Jsou ale i další praktiky, pomocí kterých lze WordPress ještě o trochu více pozvednout a udělat z něj nedobytnou pevnost.

Přístup na server z jiných zemí

Vladimír Smitka ukázal na konferenci také statistiku, kde prezentoval, kolik procent útoků je prováděno z jaké země. Nejvíce na tom byla Čína a USA – při tomto zjištění jsme šli a obratem jsme zakázali přístup na naše servery z těchto států. Pochybuji, že někteří z našich klientů mají zákazníky (nebo potenciální zákazníky)  v Číně nebo v USA. Problém trochu nastává v případě, že by některý z klientů odjel na dovolenou a chtěl používat systém nebo emaily. Zatím se to nestalo a i kdyby, hodně bychom uvažovali, zda to povolit nebo ne. Čína a USA tvoří takřka 50% útoků (hlavně těch robotických, kteří zkouší běžné chyby).

Pokud tedy máte pod kontrolou vlastní servery, doporučím využít některou z aplikací, které Vám tuto funkcionalitu na serveru povolí a provoz do těchto zemí zakázat. Rozhodnutí je ale vždy na Vás a Vašich klientech.

Vytváření šablony pro WordPress

Pokud jste developer, a jste ten, který šablony (pluginy) sám píše, určitě myslete na to, že WordPress má všechny věci „zmáknuté“. Nevymýšlejte nic za něj. Využívejte maximálně nativních funkcí WordPressu pro získání nebo prezentaci dat. Dosáhnete tak maximální bezpečnosti Vaší práce.

Také je dobré otestovat Vaše webové stránky pomocí aplikace WPScan – ta prověří, které bezpečností díry Vaše stránka má a co proti tomu dělat. Nebudu tady dále rozebírat možnosti aplikace, ani jak jí používat. Kdo ví, kolik osob z řad mladší generace by to pro zábavu zkoušelo. Ti, kteří mají zájem a rozumí této problematice na úrovni developerů si cestu zajisté najdou.

Závěrem

Výše jsem Vám popsal nejčastější chyby, které uživatelé / developeři provádějí. Jsou to také věci, které nikoho nemusí stát mnoho času ani financí. Pokud se budete držet těchto obecných pravidel, Váš WordPress nebude prakticky hacknutelný. V opačném případě Vám mohu popřát pouze hodně štěstí v tom, abyste se cílem útoku nestali. V příštím díle bych se chtěl podívat na to, jak řešit to, když už k napadení webových stránek dojde.

Chtěl bych také poděkovat Vladimíru Smitkovi za rozšíření typů na bezpečnost. Na jeho přednášku se můžete podívat třeba na www.naswp.cz – Vladimír Smitka

Tomáš Kocifaj, KTStudio.cz

, ,

  1. #1 webmáster 25.1.2015 - 18:54

    Vladimír Smitka měl na 4. WP konferenci opravdu parádní přednášku. Třeba mazání neaktivních šablon/pluginů spousta lidí vůbec nezná.

  2. #2 Tomáš Kocifaj 25.1.2015 - 23:02

    Ahoj, to je pravda, držet staré věci v šabloně také není dobře. Doplňuji do článku a děkuji.

  3. #3 Michal 29.4.2015 - 10:42

    Zdravím,

    děkuji za zajímavý článek. Rád bych se podělil o jeden tip. Našel jsem zajímavou stránku na testování bezpečnosti WP webů. Popis a odkaz je zde: http://www.remake.cz/automaticke-testovani-bezpecnosti-vaseho-wordpress-webu/

  4. #4 Stano 30.5.2015 - 11:58

    Ja neviem kedysi pred par mesiacmi som si nainštaloval bezpečnostní plugin a niečo som tam nastavoval pravdepodobne zle a zhodilo mi to celý wordpress musel som to manuálne vymazať cez FTP lebo som sa k ničom inému nemohol dostať.

Komentáře jsou uzavřeny.