Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

WordPress: Základy - bezpečnost 3x3

1,050 views

Published on

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.

Published in: Technology

WordPress: Základy - bezpečnost 3x3

  1. 1. @smitka Lynt services s.r.o. Infrastruktura Webová řešení Marketing WP – bezpečnost 3x3 Vláďa Smitka https://lynt.cz
  2. 2. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Co dnes uslyšíte? • WP a bezpečnost? • 3 cíle útočníků • 3 nejčastější problémy • 3 preventivní opatření
  3. 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.“
  4. 4. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. 3 nejčastější cíle útočníků 1. SPAM / reklama 2. Infikace návštěvníků 3. Útoky na další weby
  5. 5. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. #1 Neaktualizované komponenty „Aktualizace jsou u OpenSource zásadní!“
  6. 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. 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. 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. 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. 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.
  11. 11. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. MainWP
  12. 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!
  13. 13. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. #2 Nákaza z „multihostingu“ Složkasweby Web1 Web2 Web3
  14. 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. 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. 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. 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+)
  18. 18. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. User role editor
  19. 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
  20. 20. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. HTTPS Pokud nepoužíváte HTTPS, lze hesla (a přihlašovací cookie) odposlechnout.
  21. 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.
  22. 22. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. #1 Bezpečnostní plugin 22 26. 6. 2016
  23. 23. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. WordFence – po instalaci 23 26. 6. 2016
  24. 24. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. WordFence – Live Traffic 24 26. 6. 2016 Hezké, ale spotřebovává poměrně dost výkonu.
  25. 25. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. WordFence – detekce změn 25 26. 6. 2016
  26. 26. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. WordFence – omezování provozu 26 26. 6. 2016
  27. 27. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. WordFence – bezpečnost přihlášení 27 26. 6. 2016
  28. 28. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. WordFence – další nastavení 28 26. 6. 2016 Inspirace co zablokovat: https://github.com/zaproxy/zap- extensions/tree/master/src/org/zaproxy/zap/extension/fuzzdb/files/fuzzers/fuzzdb/discovery/predictable-filepaths/php * *
  29. 29. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. WordFence – další nastavení 29 26. 6. 2016
  30. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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/

×