Základy zabezpečení redakčního systému WordPress - aktualizace, problémy multihostingu, práva a hesla, bezpečnostní plugin WordFence, zálohování.
Prezentace z WordPress konference 25.6.2016.
3. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Jak je na tom WP s
bezpečností?
• Velká komunita, která chyby napravuje
• Velká „komunita“, která se je snaží zneužít
• Soustavné bezpečnostní testování
„Veřejně známá bezpečnostní chyba v otevřeném systému je menší zlo,
než chyba v uzavřeném systému, o které ví jen útočník.“
6. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Aktualizace jádra
V základu:
• V rámci minor verzí (4.5.x) probíhá aktualizace automaticky.
• Major verze (4.X) je potřeba aktualizovat ručně.
wp-config.php:
define( 'WP_AUTO_UPDATE_CORE', 'minor' );
true – aktualizace i major verzí
false – vypne všechny automatické aktualizace
- lze to ale i filtrem v kódu
Důvody nefunkčnosti:
• Zakázané aktualizace
• Špatná práva
Čtení – 4
Zápis – 2
Spuštění – 1
Uživatel, skupina, všichni
Někdy práva WP špatně detekuje
při pokusu o nahrání po vás chce přístupy na FTP
zkuste do wp-config.php:
define( 'FS_METHOD', 'direct' );
Obecně:
Soubory: 640
Složky: 750
7. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Aktualizace šablon
Ruční zásah, lze ale zapnout automaticky v kódu:
add_filter( 'auto_update_theme', '__return_true' );
Pokud provedete změny přímo v šabloně, aktualizací o ně přijdete.
Správná cesta je použití „Child Themes“.
Pluginy pro vytvoření Child Theme:
https://cs.wordpress.org/plugins/orbisius-child-theme-creator/
https://wordpress.org/plugins/one-click-child-theme/
8. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Ruční tvorba Child Theme
style.css (nepoužívá se z rodiče)
/*
Theme Name: Moje 2016
Author: Já
Version: 1.0
Template: twentysixteen
*/
@import url("../twentysixteen/style.css");
/* vlastní úpravy */
functions.php (načítá se i z rodiče)
<?php
// vlastní úpravy
?>
Další PHP soubory z hierarchie
šablony, které chci upravit, např.
header.php
9. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Aktualizace pluginů
Ruční zásah, lze ale zapnout automaticky v kódu:
add_filter( 'auto_update_plugin', '__return_true' );
Bohužel neexistují „Child Plugins“… Některé
pluginy však jde upravovat pomocí hooků.
„Většina bezpečnostních problémů WP
je způsobena pluginy.“
Používáte plugin se známou bezpečnostní chybou?
https://wordpress.org/plugins/plugin-vulnerabilities/
10. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Správa aktualizací
https://wordpress.org/plugins/wp-updates-notifier/
- Pošle vám e-mail, když je aktualizace dostupná.
https://mainwp.com/
- Systém na správu více WP webů a jejich aktualizaci.
- Jeden vyhrazený WP web ovládá ostatní, kde je
nainstalovaný MainWP child plugin.
- Lze nastavit automatický update vybraných pluginů.
- Zdarma + placené doplňky.
- Umí zálohovat.
- Je možné jím spravovat obsah.
12. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Pozor na neoficiální zdroje!
Existují přeprodejci různých placených
šablon a pluginů nebo warez stránky, kde
jsou zdarma…
Použitím těchto zdrojů nemáte nárok ani na
podporu od autora, ani na aktualizace.
Přeprodejce navíc do produktu mohl vložit
zadní vrátka!
14. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Ověření možností přístupu
do cizích složek
https://github.com/lynt-smitka/PHP-Mini-File-Browser
mfb.php
• Malý skript, kterým lze projít dostupné složky.
• Protože zobrazuje důvěrné informace,
tak se hodinu po nahrání sám smaže (lze přenastavit).
• Lze mu nastavit použití jména a hesla.
15. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
#3 Práva a hesla
Útočník se nejčastěji snaží uhádnout jména a hesla.
Čím je vyšší role získaného uživatele, tím vyšší škodu může napáchat.
interval.cz/?author=1 => /clanky/author/admin/
16. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Základní role
• Návštěvník (Subscriber)
• Může pouze číst obsah, editovat svůj profil. Má jednodušší práci s komentáři.
• Spolupracovník (Contributor)
• Může psát nové příspěvky, ale publikovat je může až Admin nebo Šéfredaktor. Nemá
přístup do galerie médií (může ale vkládat obrázky z externích zdrojů) – guest blogging.
• Redaktor (Author)
• Může spravovat své příspěvky včetně správy komentářů, nahrávat soubory do galerie
médií. Nemůže pracovat se stránkami.
• Šéfredaktor (Editor)
• Může spravovat veškerý obsah – příspěvky, stránky, komentáře, kategorie, v jeho
komentářích může být javascript.
• Administrátor (Administrator)
• Může spravovat vše – obsah, pluginy, šablony, widgety. Ideálně by neměl tvořit obsah.
• SuperAdministrátor (pro WP multisite) – spravuje síť webů
17. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Jak upravit práva?
$role_object = get_role( 'editor' );
$role_object->add_cap( 'edit_theme_options' );
Nejčastější případ – šéfredaktor
potřebuje upravovat menu a widgety
https://cs.wordpress.org/plugins/user-role-editor/ (4.25+)
19. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Jak je to s právy pluginů?
Ve WP je možné definovat vlastní role a oprávnění.
Záleží na tvůrci pluginu, zda tuto možnost využil.
The Events
Calendar
WP Polls
User Role
Editor
21. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Správce hesel
Pamatujete si jedno heslo, ostatní zná password manager.
KeePass
http://keepass.info/
Zdarma, offline, možno sdílet soubor s
hesly přes dropbox, onedrive…
LastPass
https://lastpass.com/
Základ zdarma, cloudová služba +
doplněk do prohlížeče
Portadi
https://www.portadi.com/
Firemní sdílení přístupů k vybraným
službám.
30. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
WordFence - Firewall
Extended Protection
Funguje mimo jádro WP –
chrání tak veškeré PHP
soubory.
Vyžaduje direktivu
auto_prepend_file v php.ini =
nefunguje na většině
webhostingů
31. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
WordFence - Firewall
Poměrně nová funkcionalita, občas zlobí.
Otestujte, zda funguje: vas-web/?test=<iframe>
Pokud se vrátí chyba 403, funguje to
Signatury:
wp-content/wflogs/rules.php
Pokud je soubor prázdný, nepodařilo se je pluginu stáhnout:
https://tools.lynt.cz/wordfence/rules.php.txt
32. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
WordFence – prémiové funkce
• Okamžité updaty firewallu – reakce na aktuální dění (free verze po 30 dnech).
• Blokace zemí.
• Kontroly reputace webu v externích službách.
• Lepší antispam v komentářích.
• Audit hesel.
• Přihlašování přes SMS.
Alternativy
Blokace zemí:
https://wordpress.org/plugins/iq-block-country/ (je třeba stáhnout db zemí a správně nastavit)
mod_geoIP (info sdělí webhoster, nastavuje se typicky přes .htaccess)
Antispam:
https://cs.wordpress.org/plugins/akismet/ (vyžaduje klíč, aby fungoval)
https://wordpress.org/plugins/nospamnx/
Dvoufaktorová autentifikace:
https://wordpress.org/plugins/google-authenticator/
https://wordpress.org/plugins/duo-wordpress/
33. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Alternativní firewall
BBQ: Block Bad Queries
https://wordpress.org/plugins/block-bad-queries/
Pravidla do .htaccess:
https://perishablepress.com/6g/
Tip: pokud ztratíte přístup k webu chybně nastaveným bezpečnostním
pluginem, přejmenujte složku s pluginem na FTP, tím jej deaktivujete.
34. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
#2 Zálohování
Bezpečnostní incident může potkat každého,
pouze s různou pravděpodobností.
Na tuto situaci je nutné být připraven a mít funkční zálohu!
35. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Možnosti zálohování
Ruční – jednou za čas, stáhnete soubory z FTP a provedete export DB
V rámci hostingu – podrobnosti řekne webhoster
Zálohovací plugin – plugin ve WP provádí v zálohu dle plánu
36. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Zálohovací pluginy
BackWPup
- Neumí obnovu, ale ta je možná poměrně jednoduše ručně
- Umí zálohu na více úložišť, např. Dropbox
- Lze spouštět speciální URL externě
Návod na nastavení:
http://www.slideshare.net/vsmitka/bezpenost-wordpress-pro-zatenky/38
Čeština:
https://github.com/lynt-smitka/BackWPup-CZ
BackupBuddy
- Placený
- Spolehlivé řešení pro zálohy, obnovy i migraci
37. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
#3 Opatrnost
Člověk často bývá nejslabší článek.
Zásady:
• Používat silná hesla
• Připojovat se pouze z důvěryhodných sítí
(případně přes VPN)
• Používat antivir a aktualizovat OS i prohlížeč
• Neukládat si v zařízeních nezabezpečené WiFi sítě
• Kontrolovat správnost certifikátů
• Nenaletět na Phishing
38. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Souhrn - Jak mít bezpečný web?
Nastavit správná práva uživatelům
Používat silná hesla (správce hesel)
Odstranění zbytečných pluginů, šablon i obsahu
Pravidelně aktualizovat (systémy pro
správu/Updates Notifier)
Blokace spamu (WF, NoSpamNX, Akismet)
Omezení chybných přihlášení (WF)
Blokace známých útoků (WF, BBQ)
Využívání HTTPS a opatrnost v cizích sítích
Zálohování (BackWPup)
39. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Co dělat po úspěšném útoku
• Odstavení webu (např. pomocí .htaccess)
• Obnova ze zálohy (smazat infikovaný web a DB)
• Odstranění příčiny (často aktualizace)
• Kontrola souborů pluginem (Wordfence, Sucuri
Scanner)
• Změna hesla na FTP
• Změna hesla do DB
• Změna hesel uživatelů
• Nové šifrovací klíče do wp-config.php:
https://api.wordpress.org/secret-key/1.1/salt/
40. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Úkoly na zítra
□ Zkontrolovat práva uživatelů
□ Smazat pluginy, co nepoužívám/byly jen k
jednorázové činnosti
□ Smazat zbytečné šablony (nechat jen jednu
výchozí z instalace a případně rodičovskou) a
příspěvky
□ Aktualizovat, co lze
□ Zvážit použití bezpečnostního pluginu
□ Zazálohovat
41. Infrastruktura
Webová řešení
Marketing
@smitka Lynt services s.r.o.
Děkuji za pozornost!
Další zdroje:
https://lynt.cz/blog/10-nejcastejsich-problemu-modernich-webu
https://lynt.cz/blog/wordpress-v-cz-velky-pruzkum
http://www.slideshare.net/vsmitka/
https://www.wordfence.com/blog/
https://blog.sucuri.net/
https://wpvulndb.com/