Jak odvirovat WordPress? Aneb napadli mě!


V minulém mém díle jsme se podívali na to, jak předejít tomu, aby naše instalace WordPressu byla možná co nejméně napadnutelná a předešli jsme tomu, aby se do našeho webu dostal nějaký škodlivý software. Dnes bych chtěl ukázat několik praktik, které útočníci používají a jak se jich případně zbavit za co nejmenší ztrátu dat, vašeho času a aby se proces pokud možno neopakoval.

Když nás klient kontaktuje s tím, že jeho webové stránky běžící na WordPressu byly napadeny, provádíme obecně následující postup:

  1. Hledáme problém, který na webových stránkách nastal.
  2. Pokud jsme se s problémem nesetkali, jdeme pátrat na internet a zjistíme co nejvíce informací. V 98% již váš problém řešil někdo jiný a podělil se o něj někde na internetu.
  3. Odstraníme škodlivý software – pokud je to vůbec možné – ne vždy to jde snadno.
  4. Provedeme opatření, aby se již proces neopakoval.

Hledání problému – WordPress po útoku

Velmi důležité je, kdy jste si problému všimli a jak rychle jste ho začali řešit. Ten nejjednodušší způsob, jak se zbavit napadení (často), je obnovit všechny soubory ze zálohy hostingu. Pokud jste však o napadení nevěděli například několik týdnů, často je už i záloha napadená a moc vám to nepomůže.

Dalším krokem je, pokud vám poskytovatel hostingových služeb umožňuje přístup do logů. Zde je třeba taktika „Holoubci a Popelka“ – prodrat se řádky logů a najít místo, kdy útočník prolomil vaši obranu a změnil vám některé soubory. Jak takový log může vypadat? Zde jsem připravil malou ukázku toho, co bylo v jakou dobu přepsáno přesně na serveru.

transfer-log

Dalším dobrým zdrojem informací může být nasazený Google Webmasters Tools – některé praktiky má v hledáčku i Google a může vám poradit, co na webu hledat. Například může ukázat, jaký škodlivý javascriptový soubor vypadá jako právě ten, který je nebezpečný. Následně podobné výrazy vezměte a prohledejte celý server, kde by mohly být v jakých souborech zapsané. Nenechte se zmást, některé kódy skutečně vypadají tak, že tam patří. Mají podobné názvy funkcí, proměnných, atd.

Oblibená PhP funkce eval(). Tato funkce dokáže zamaskovat velmi důkladně to, co byste potřebovali v kódu najít, nebudu tu rozebírat přesně její princip – důležité pro nás je, že převádí určitý typ kódu na kód jiný, který pak provádí to, co útočník chce, ale my ho těžko hledáme. Obecně se funkce eval() v běžném programování nepoužívá – i když WordPress ji na pár místech využívá. Kus nekalého kódu může vypadat třeba takto:

Screenshot 2015-02-20 13.31.31

Pokud nějaký takový kód najdete v některém z vašich souborů, našli jste to, co jste hledali. Následně bude potřeba projít všechny soubory a smazat tento kus kódu všude. Nejlépe se to hledá na FTP pomocí TotalCommanderu přes funkci Příkaz ->Hledat. Obecně často hledáme výraz jako „eval(„.

hledani-commander-eval

Odstraníme škodlivý kód / Software

Napadené soubory musíme následně eliminovat – respektive nahradit soubory z čisté instalace. Nejčastěji dochází k napadení jádra WordPress nebo některých pluginů. K nim vždy najdete čisté soubory, které budou bez škodlivého softwaru. Obratem také proveďte aktualizaci všeho, co je dostupné – ať už WP samotný nebo pluginy. Projděte také, zda skutečně všechny pluginy využíváte, pokud ne, bez milosti je smažte.

Pokud používáte nějakou obecně známou šablonu, udělejte úplně to samé. V případě, že máte šablonu svou nebo vytvořenou od nějakého externího developera, neváhejte ho kontaktovat a vyžádejte si soubory i používané šablony.

Pokud nevíte, co přesně útočník změnil (nemáte tedy přístup k logům) – smažte všechny soubory na FTP a proveďte obnovu všeho. Od WordPressu, pluginů a nakonec i šablonu. Tím byste se měli zbavit všeho, co by útočník případně nahrál na server v podobě některých souborů. Zde je důležité to, že nestačí soubory pouze „přepsat“. Skutečně smažte vše.

Pokud používáte nějaký cache plugin, tak ho při hledání problému nezapomeňte vypnout. Problém jste již mohli detekovat a odstranit, ale pořád se vše tváří tak, jakoby se nic nestalo – to může být právě ona cache.

Provedeme opatření, aby se již proces neopakoval

Pokud jste si již dali práci s tím, že jste našli napadené soubory, nebo jste vše přepsali, tak se neradujte, ještě jste neskončili. Aby k vám útočník některá data nahrál, musel využít některé ze slabých míst vašeho systému / aplikace. Tyto věci musíte opravit, aby útočník nemohl celý proces znovu opakovat. Určitě byste mohli provádět to, že byste v logách hledali, jak se asi útočník dostal na server, zda to bylo přes FTP, uživatele WordPressu, pluginu, ukradené Session, atd. Obecně to stojí více energie a času, než to rovnou změnit všechno.

Proto byste neměli zapomenout změnit přístupy na těchto údajích. Pokud to jde, proveďte změnu i v názvu uživatele (tedy loginu)

  1. Přístupy na FTP – všechny.
  2. Přístupy do databáze – opět pokud to jde tak všechny.
  3. Změňte hesla všem klíčovým uživatelům WordPressu – tedy těm, kteří mohou editovat soubory (ideálně všem vyšším, než návštěvník).

Nezapomeňte používat dostatečně silná hesla – ideálně náhodně generované, alespoň 8 – 10 znaků – velká písmena, čísla a jeden speciální znak.

,

Komentáře jsou uzavřeny.