Scan ve Wordfence

WordPress: Záchrana napadených webů

Kategorie:

Štítky:

Poslední týdny jsem řešil několik žádostí na záchranu napadených webů vystavěných nad WordPressem. Prostě jsem i záchranář napadených webů a přitom je to často zbytečné. Nejspíše nejeden zákazník utrpěl škody, kvůli dočasně nedostupnému webu (než se ke mně dostali, trvalo to několik dní).

Rizika lze výrazně zmenšit.

Stačí tak málo.

Reklama

Udržovat WordPress aktualizovaný, včetně pluginů. Pokud se někdo stará o více zákaznických webů, není nutné se připojovat ke každému zvlášť, aktualizace lze řešit z jednoho místa, v lepším případě odzkoušené (jeden tvůrce webů málokdy mění pluginy, má poměrně „ustálenou skladbu“, takže testování před aktualizací je realizovatelné). Žádný z napadených webů nebyl aktualizovaný, vyjma automatické aktualizace WP jako takového.

S neaktualizací pluginů lehce souvisí i neodstraňování těch nepotřebných. I po roce od předání webu nacházím nepotřebné a zapomenuté (například: One-Click Child Theme, Duplicator, …) Neaktivní (jmenované pluginy nebyly ani deaktivované) pluginy prý nepředstavují problém, ani nezpomalují web, ale opatrnosti není nikdy nazbyt.

S pluginy souvisí ještě jeden problém, se kterým se setkávám. Používání pluginů o které se dlouho nikdo nestará (Wordfence na ně upozorňuje) a jsou málo; nebo nejsou vůbec; otestované s aktuálním WordPressem. Mohou skrývat velkou bezpečnostní díru, kterou nejspíše nikdy nikdo neopraví.

Malá úprava souboru wp-config.php (popsaná níže).

//Zakázání zobrazení chyb
error_reporting(0);
@ini_set('display_errors', 0);

//Zapnutí kompletních updatů major (4 -> 5) i minor (4.x.y -> 4.u.v)
define( 'WP_AUTO_UPDATE_CORE', true );

//Zapnutí update pluginů a témat
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );

Protože nic není bezchybné, chyba může nastat, nechci usnadnit potenciálnímu útočníkovu verzi WordPressu, proto přenastavuji ‚display_errors‘ (většina hostingů snad má toto nastavení jako standard, ale jistota je jistota).

Automatické aktualizace všeho bych nezapínal. Noční cron se může minout s aktualizací a na její instalaci bude čekat první návštěvník/zákazník, který přijde na web po vydání (nejspíše i odejde ke konkurenci, protože některé se instalují delší dobu). Riziko automatické instalace neotestovaných aktualizací bych ani neriskoval, nemusíte na to přijít hned a pak pátrat, která aktualizace vedla k nefunkčnosti internetových stránek, nemusí být prací na 5 minut.

Je vhodné vypnout uživatelský editor PHP/JavaScriptu/… opět přidáním direktivy do wp-config.php:

define( 'DISALLOW_FILE_EDIT', true );

Ošahat si a důsledně používat bezpečnostní řešení pro WordPress. Já jsem si oblíbil Wordfence, ale jsou i konkurenční řešení (například Sucuri Security, iThemes Security, …).

Samozřejmostí by měla být existence záloh (pokud na webu není aktivní blog, tak jejich četnost není nutné „hrotit“).

Základní kroky k zabezpečení WordPressu pomocí .htaccess by také měly být samozřejmostí.

Potřebných kroků je samozřejmě ještě více, celý seznam teď vypisovat nebudu. Mezi jinými je to zakázání editace souborů přes administraci webu, zrušení výchozího účtu admin (to už je snad samozřejmé) i používání slušného hostingu, který nepovažuje https (zabezpečený přenos obsahu) za drahý luxus.

Na okraj: šablona Gaukingo

Ve várce webů napadených poslední dobou je snad vždy i přídavek v tématu Gaukingo. V našich luzích a hájích také prolétl diskusí. Pochybných témat i pluginů je více (článek je starší, tak seznam by dnes mohl být delší), proto je důležité vědět jaké téma na webu používáte a jiná důsledně odstranit.

Závěr

Pokud už jednou web napadený je, přichází na řadu jeho léčení. Už jsem si potřebné kroky docela slušně zmechanizoval.

Pokud nemáte čas a nechcete řešit až následky napadení, nebo už web napadený máte, svěřte mi Váš WordPress do péče.