Top 5 bezpečnostních mezer v instalacích WordPress

Vaše instalace WordPress může být tak bezpečná nebo nezabezpečená, jak chcete. Přečtěte si, kterých pět věcí je z hlediska bezpečnosti nejdůležitější.

Obavy a stížnosti na zabezpečení WordPressu nejsou žádnou novinkou.

Pokud potřebujete CMS a náhodou se poradíte s poskytovatelem služeb, který nepoužívá WordPress, zabezpečení je ten podvod číslo jedna, o kterém uslyšíte. Znamená to, že by každý měl zahodit WordPress a přejít na generátory statických stránek nebo bezhlavý CMS?

Ne, protože jako každá pravda v životě má i tato mnoho stran.

Je WordPress vysoce nezabezpečený?

Pojďme se podívat na některé obrovské weby, které byly postaveny na WordPressu:

  • TechCrunch
  • New Yorker
  • BBC Amerika
  • Bloomberg
  • Zprávy MTV
  • Blog PlayStation

Proč tedy tyto společnosti – s absurdně hlubokými kapsami a ohromující pracovní silou – nepřecházejí z WordPressu? Pokud si myslíte, že odpovědí je starší kód, zamyslete se znovu: pro tyto názvy jsou bezpečnost dat a veřejný obraz nekonečně důležitější než jednoduchá migrace, která bude stát (odhaduji) méně než 200 000 $.

Určitě jejich inženýři vědí, co dělají, a nevidí žádné zásadní, neřešitelné bezpečnostní problémy s WordPress?

I já mám to štěstí, že mohu spravovat instalaci WordPressu, která má 3,5–4 miliony návštěvníků měsíčně. Celkový počet narušení bezpečnosti za posledních osm let? Nula!

Tak . . . je WordPress bezpečný?

Omlouvám se, jestli to vypadá jako trolling, ale tady je moje odpověď:

Říkám to proto, že jako každá pravda v životě je to složité. Abychom dospěli k legitimní odpovědi, musíme nejprve pochopit, že WordPress (nebo jakýkoli předpřipravený CMS, když na to přijde) není jako skříň, kterou někam natrvalo přilepíte a budete s tím hotovi.

Je to komplexní software s mnoha závislostmi:

  • PHP, což je jazyk, ve kterém je vytvořen
  • Veřejně viditelný počítač, který je hostitelem instalace
  • Webový server používaný ke zpracování návštěvníků (Apache, Nginx atd.)
  • Používaná databáze (MySQL/MariaDB)
  • Motivy (balíčky souborů PHP, CS a JS)
  • Pluginy (balíčky souborů PHP, CS a JS)
  • A mnoho dalších, v závislosti na tom, čeho chce vaše instalace dosáhnout

Jinými slovy, porušení zabezpečení v kterémkoli z těchto švů bude označeno jako porušení WordPress.

  Jak spustit displej Retina v jeho nativním rozlišení

Pokud bylo root heslo serveru admin123 a bylo kompromitováno, je to bezpečnostní chyba WordPress?

Pokud verze PHP měla bezpečnostní chybu nebo pokud nový plugin, který jste zakoupili a nainstalovali, obsahoval do očí bijící bezpečnostní díru; a tak dále. Abych to shrnul: Subsystém selže a je to selhání zabezpečení WordPress.

Kromě toho, prosím, také nenechte, aby to ve vás vyvolalo dojem, že PHP, MySQL a Apache nejsou bezpečné. Každý software má zranitelná místa, jejichž počet je v případě open-source ohromující (protože je k dispozici všem, aby si je mohl prohlédnout a analyzovat).

Řekl někdo „bezpečné“? 😛

Z celého tohoto cvičení se učíme toto:

Nic není bezpečné nebo nejisté samo o sobě. Jsou to různé použité komponenty, které tvoří články řetězu, řetěz je samozřejmě tak silný jako ten nejslabší z nich. Historicky bylo označení WordPress „nezabezpečené“ kombinací starých verzí PHP, sdíleného hostingu a přidávání pluginů/témat z nedůvěryhodných zdrojů.

Některá docela běžná přehlédnutí zároveň činí vaši instalaci WordPress zranitelnou vůči těm, kteří vědí, jak je zneužít, a jsou odhodlaní. A o tom je tento příspěvek. Takže bez dalších řečí (a kruhových argumentů) začněme.

Hlavní mezery ve WordPressu, které mohou hackeři zneužít

Předpona tabulky WordPress

Slavná 5minutová instalace je to nejlepší, co se s WordPressem může stát, ale stejně jako všichni průvodci instalací nás zleniví a nechává věci ve výchozím nastavení.

To znamená, že výchozí předpona pro vaše tabulky WordPress je wp_, což má za následek názvy tabulek, které může kdokoli uhodnout:

  • wp-uživatelé
  • wp-options
  • wp-posts

Nyní zvažte útok známý jako SQL Injection, kdy jsou škodlivé databázové dotazy chytře vloženy a spuštěny uvnitř WordPress (upozorňujeme, že se v žádném případě nejedná o útok výhradně WordPress/PHP).

Přestože má WordPress vestavěné mechanismy pro zvládnutí těchto typů útoků, nikdo nemůže zaručit, že se to nestane.

Pokud se tedy útočníkovi nějakým způsobem podaří spustit dotaz jako DROP TABLE wp_users; DROP TABLE wp_posts;, všechny vaše účty, profily a příspěvky budou během okamžiku vymazány bez šance na obnovení (pokud nemáte zavedeno schéma zálohování, ale i tak musíte od poslední zálohy přijít o data ).

Pouhá změna předpony během instalace je velký problém (který nevyžaduje žádné úsilí).

Doporučuje se něco náhodného jako sdg21g34_, protože je to nesmysl a těžko uhodnout (čím delší předpona, tím lépe). Nejlepší na tom je, že tato předpona nemusí být zapamatovatelná; prefix je něco, co WordPress ušetří a už se o to nikdy nebudete muset starat (stejně jako se nemusíte starat o výchozí prefix wp_!).

  Co znamená certifikace Apple MFi?

Výchozí přihlašovací adresa URL

Jak poznáte, že web běží na WordPressu? Jedním z příznaků je, že když přidáte „/wp-login.php“ k webové adrese, uvidíte přihlašovací stránku WordPress.

Jako příklad si vezměme můj web (http://ankushthakur.com). Je to na WordPressu? No, pokračujte a přidejte přihlašovací část. Pokud se cítíte příliš líní, stane se toto:

¯_(ツ)_/¯

WordPress, že?

Jakmile je toto známo, může si útočník vesele mnout ruce a začít používat ošklivé triky ze svého Bag-O‘-Doom podle abecedy. Já chudák!

Řešením je změnit výchozí přihlašovací adresu URL a poskytnout ji pouze těm lidem, kterým důvěřujete.

Tento web je například také na WordPressu, ale pokud navštívíte http://etechblog.cz.com/wp-login.php, čeká vás pouze hluboké zklamání. Přihlašovací URL je skrytá a znají ji pouze administrátoři?

Ani změna přihlašovací URL není žádná velká věda. Jen si vezmi tohle zapojit.

Gratulujeme, právě jste přidali další vrstvu frustrujícího zabezpečení proti útokům hrubou silou.

Verze PHP a webového serveru

Již jsme diskutovali o tom, že každý kus softwaru, který kdy byl napsán (a je napsán), je plný chyb čekajících na zneužití.

Totéž platí pro PHP.

I když používáte nejnovější verzi PHP, nemůžete si být jisti, jaké zranitelnosti existují a mohou být objeveny přes noc. Řešením je skrýt konkrétní hlavičku odeslanou vaším webovým serverem (nikdy jste o hlavičkách neslyšeli? četl jsem tento!), když se k němu připojí prohlížeč: x-powered-by.

Takto to vypadá, když zkontrolujete vývojářské nástroje vašeho oblíbeného prohlížeče:

Jak můžeme vidět zde, web nám říká, že běží na Apache 2.4 a používá PHP verze 5.4.16.

To už je spousta informací, které bezdůvodně předáváme a pomáháme útočníkovi zúžit výběr nástrojů.

Tyto (a podobné) hlavičky je potřeba skrýt.

Naštěstí se to dá udělat rychle; bohužel jsou potřeba sofistikované technické znalosti, protože se budete muset ponořit do útrob systému a pohrát si s důležitými soubory. Proto radím požádat svého poskytovatele hostingu webových stránek, aby to udělal za vás; pokud nevidí, zda to konzultant dokáže udělat, i když to bude do značné míry záviset na hostiteli vašeho webu, zda jeho nastavení takové možnosti má nebo ne.

  Jak vytvářet a používat vlastní nálepky ve Snapchatu

Pokud to nefunguje, možná je čas změnit poskytovatele hostingu nebo přejít na VPS a najmout si konzultanta pro otázky bezpečnosti a správy.

Stojí to za to? O tom můžete rozhodnout jen vy. 🙂

Jo, a pokud se chcete vykašlat na bezpečnostní hlavičky, tady je vaše oprava!

Počet pokusů o přihlášení

Jedním z nejstarších triků v hackerské příručce je tzv Slovníkový útok.

Myšlenka je taková, že zkoušíte směšně velké množství (miliony, pokud možno) kombinací pro heslo, pokud jedna z nich neuspěje. Vzhledem k tomu, že počítače jsou v tom, co dělají, bleskové, je takové pošetilé schéma rozumné a může přinést výsledky v rozumném čase.

Jednou z běžných (a extrémně účinných) obranou bylo přidat zpoždění před zobrazením chyby. To nutí příjemce čekat, což znamená, že pokud se jedná o skript zaměstnaný hackerem, jeho dokončení bude trvat příliš dlouho. To je důvod, proč váš počítač nebo oblíbená aplikace trochu poskočí a pak řekne: „Jejda, špatné heslo!“.

Každopádně jde o to, že byste měli omezit počet pokusů o přihlášení pro váš web WordPress.

Nad stanovený počet pokusů (řekněme pět) by se měl účet uzamknout a měl by být obnovitelný pouze prostřednictvím e-mailu majitele účtu.

Naštěstí to udělat je hračka, pokud narazíte na pěkné zapojit.

HTTP vs. HTTPS

Certifikát SSL, kterým vás váš prodejce otravoval, je důležitější, než si myslíte.

Není to pouze nástroj pro vytváření reputace, který zobrazuje zelenou ikonu zámku v prohlížeči s nápisem „Zabezpečené“; spíše instalace certifikátu SSL a vynucení všech adres URL, aby fungovaly na „https“, stačí k tomu, aby se váš web změnil z otevřené knihy na záhadný svitek.

Pokud nerozumíte tomu, jak se to stalo, přečtěte si prosím něco známého jako a muž-in-the-middle útok.

Dalším způsobem, jak zachytit provoz proudící z vašeho počítače na server, je packet sniffing, což je pasivní forma sběru dat a nemusí se ani namáhat, aby se umístil uprostřed.

U webů, které běží přes prostý „HTTP“, osoba zachycující síťový provoz, se vaše hesla a čísla kreditních karet zobrazí jako jasný prostý text.

Zdroj: comparitech.com

děsivé? Velmi!

Jakmile však nainstalujete certifikát SSL a všechny adresy URL budou převedeny na „https“, tyto citlivé informace se zobrazí jako nesmysl, který může dešifrovat pouze server. Jinými slovy, nepropoťte těch pár dolarů ročně. 🙂

Závěr

Budete mít těchto pět věcí pod kontrolou a zabezpečit svůj web pěkně?

Vůbec ne. Jak říká nespočet článků o bezpečnosti, nikdy nejste 100% v bezpečí, ale je možné odstranit velkou třídu těchto problémů s přiměřeným úsilím. Můžete zvážit použití SUCURI cloud WAF pro komplexní ochranu vašich stránek.