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.

Bezpečnost WordPress pro začátečníky

4,476 views

Published on

Prezentace z přednášky o bezpečnosti na 5. WordPress konferenci.

Published in: Technology

Bezpečnost WordPress pro začátečníky

  1. 1. http://lynt.cz Bezpečnost WordPressu pro začátečníky Vláďa Smitka vladimir.smitka@lynt.cz @smitka Lynt services s.r.o. @LyntCz 13. 6. 2015 1
  2. 2. http://lynt.cz13. 6. 2015 2 Síťová infrastruktura • Servery • Firewally • WiFi • … Webová řešení • Informační systémy • Webové stránky • E-shopy On-line marketing • PPC • Analytika • SEO Jakub Kašparů Právě teď přednáší na BarCampu v Českých Budějovicích o systému práce s PPC Vláďa Smitka 14 let v sítích a webovém vývoji
  3. 3. http://lynt.cz Minislovníček HTTP – protokol, který přenáší obsah stránek, požadavek - odpověď HTTPS – HTTP přenášené šifrovaně s SSL certifikátem (brání odposlechnutí komunikace) PHP – programovací jazyk, který generuje stránku na serveru MySQL – databázový systém, jsou zde uloženy nastavení webu a jeho obsah (články) JavaScript – programovací jazyk, který běží v prohlížeči (jsou v něm dělány např. různé efekty) AJAX – funkcionalita JavaScriptu, která umožňuje komunikaci se serverem bez přenačtení stránky, často je zneužitá k útokům .htaccess – soubor, ve kterém lze upravit vlastnosti webového serveru (např. zakázat přístup ke konkrétním souborům, přesměrovávat, nastavovat PHP), úpravy mohou znefunkčnit web wp-config.php – soubor, ve kterém je uloženo základní nastavení WP (připojení k databázi, šifrovací klíče, adresa stránek), častý cíl hackerů Query parameter – část adresy za ? - http://můj-webík.cz/?page_id=2 – aplikaci se tak předávají různé parametry, lze je zneužít, pokud není aplikace dobře napsána SQL injection (SQLi) – typ útoku, který pozmění dotaz do databáze a získá tak citlivé informace XSS – typ útoku, který umožní na stránce spustit cizí JavaScript (například přes komentáře) CSRF – typ útoku, který prostřednictvím uživatele vykoná požadavek pocházející z cizího zdroje (donutí uživatele kliknout na odkaz, který vede do administrace a tam něco provede) 13. 6. 2015 3
  4. 4. http://lynt.cz Na co se dnes podíváme? • Uživatelská práva ve WP • Zjednodušení aktualizace • Bezpečnostní plugin WordFence • Zálohovací plugin BackWPup • Co udělat po útoku? „Každý bude dříve či později řešit bezpečnostní incident, je dobré být připraven!“ • Budu se snažit neupravovat soubory WordPressu a .htaccess 13. 6. 2015 4
  5. 5. http://lynt.cz Checklist – co potřebujeme • Nastavit správná práva uživatelům • Silná hesla • Odstranění zbytečností • Blokace spamu • Omezení chybných přihlášení (Brute force) • Informace o aktualizacích a problémech • Blokace známých útoků • Zálohování 13. 6. 2015 5
  6. 6. http://lynt.cz Kdo tvořil web před 5 lety? 13. 6. 2015 6
  7. 7. http://lynt.cz Kdo tvoří web dnes? 13. 6. 2015 7
  8. 8. http://lynt.cz Uživatelé 13. 6. 2015 8 Vyčítání uživatelských jmen: http://naswp.cz/?author=2 => http://naswp.cz/author/bigdrobek/ ???!! Lákavý cíl Potřebuje admin práva? Zřejmě nepoužívaný Používejte reálná jména, ať víte kdo uživatelé opravdu jsou.
  9. 9. http://lynt.cz Práva uživatelů 13. 6. 2015 9 • 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. • SuperAdministrátor (pro WP multisite) – spravuje síť webů
  10. 10. http://lynt.cz Jak přejmenovat uživatele admin 1. Vytvořit nového uživatele s právy Administrátora 2. Přihlásit se na nového uživatele 3. Smazat původního uživatele admin 4. Příspěvky přesunout pod nového uživatele 13. 6. 2015 10
  11. 11. http://lynt.cz Hesla 1. admin 2. heslo 3. karel91 4. Admin1234 5. mamradsvickovouomackusknedlikem 6. 2dfsg*jrkKR!R6Htt5Kh 13. 6. 2015 11 Používejte správce hesel – silnější hesla s menším úsilím.
  12. 12. http://lynt.cz Správce hesel 13. 6. 2015 12 KeePass http://keepass.info/
  13. 13. http://lynt.cz Správce hesel 13. 6. 2015 13 Alternativa: LastPass https://lastpass.com/cs/
  14. 14. http://lynt.cz Přihlašování • Nepřipojovat se z neznámých sítí (pokud máte v mobilu, tabletu, notebooku uložené sítě, kam se lze připojit bez hesla, smažte je!) • Omezení počtu pokusů (probereme později) • HTTPS - https://wordpress.org/plugins/wordpress-https/ • Omezení přístupu k /wp-login.php, nebo /wp-admin (je však potřeba udělat výjimky pro admin-ajax.php a admin-post.php) 13. 6. 2015 14 Do .htaccess: <Files wp-login.php> Order Deny,Allow Deny from All Allow from x.x.x.x </Files> http://mojeip.cz
  15. 15. http://lynt.cz Cut the crap! 13. 6. 2015 15 http://můj-webík.cz/?p=1 => Ahoj všichni! - povolené komentáře! http://můj-webík.cz/?p=2 => Zkušební stránka – povolené komentáře!
  16. 16. http://lynt.cz Cut the crap! 13. 6. 2015 16 Pluginy: - Potřebuji neaktivní pluginy? (mohou obsahovat chyby) - Potřebuji opravdu všechny aktivní pluginy? Vím, co dělají? Nejsou duplicitní? Šablony: - Vhodné nechat jen aktivní šablonu a jednu základní (např. twenty fifteen) - Při odstraňování pozor na zděděné šablony (child themes), je třeba ponechat rodičovskou - Podrobnosti šablony: Nejste si jisti, co jaký plugin dělá? Zeptejte se svého vývojáře
  17. 17. http://lynt.cz Co mohou externí uživatelé? Registrovat se? Nastavení – Obecné: 13. 6. 2015 17 Vkládat komentáře? Nastavení – Komentáře: Změna se neaplikuje na již vytvořené stránky a příspěvky! (Ahoj všichni!, Zkušební stránka)
  18. 18. http://lynt.cz Hromadné zakázání komentářů u existujícího obsahu 13. 6. 2015 18
  19. 19. http://lynt.cz Já ale komentáře chci! • Schvalování • AntiSpam plugin – Akismet – provádí analýzu obsahu příspěvku (pro nekomerční použití za libovolný poplatek – i nulový) – NoSpamNX – přidává do formuláře nástrahy • Kontrola, zda byl komentář opravdu vložen ze stránek – Umí různé bezpečnostní pluginy, ukážeme si dále 13. 6. 2015 19 Externí řešení např. https://disqus.com/
  20. 20. http://lynt.cz Aktualizace „Aktualizace jsou u opensource řešení zásadní“ Jádro – aktualizuje se automaticky v minoritních verzích (např. 4.2.x), většinou bez problémů. Major verze je třeba aktualizovat ručně (lze to nechat ale i na automatice). Jakou verzi používám? Vhodné verze: 4.2.2, 4.1.5., 4.0.5, 3.9.5 (3.8.8, 3.7.8). V patičce v administraci: Pluginy – kvalita je různá, často obsahují bezpečnostní chyby, lze updatovat automaticky, ale je riziko, že něco fungovat nebude. Šablony – problém s aktualizací, pokud se dělají úpravy v originální šabloně => child themes; některé prémiové obsahují další pluginy! 13. 6. 2015 20
  21. 21. http://lynt.cz Jak si zjednodušit aktualizaci • Notifikace o dostupných aktualizacích na mail: – WP Updates Notifier – Funkce bezpečnostních pluginů (např. WordFence) • Hromadná správa – ManageWP – základní verze do 5 stránek zdarma – WP Remote – méně funkcí, zdarma neomezeně – iThemes Sync – do 10 stránek zdarma – InfiniteWP – řešení na vlastním serveru 13. 6. 2015 21
  22. 22. http://lynt.cz WP Updates Notifier 13. 6. 2015 22 Nastavení – Updates notifier (základní nastavení je ok)
  23. 23. http://lynt.cz Checklist – co potřebujeme Nastavit správná práva uživatelům Silná hesla Odstranění zbytečností Blokace spamu • Omezení chybných přihlášení (Brute force) • Informace o aktualizacích a problémech • Blokace známých útoků • Zálohování 13. 6. 2015 23
  24. 24. http://lynt.cz Tipy pro pluginy a šablony • Používat pouze ověřené zdroje - wordpress.org, codecanyon, themeforest (nikdy torrent, uloz.to a podobné, warez fóra, nulled plugins) • Neupravovat šablony přímo – použít child theme nebo změny provést ve vlastním pluginu • Ověřit, zda nemám známé zranitelné pluginy: – https://wordpress.org/plugins/plugin-vulnerabilities/ 13. 6. 2015 24
  25. 25. http://lynt.cz Bezpečnostní plugin 13. 6. 2015 25 https://wordpress.org/plugins/wordfence/
  26. 26. http://lynt.cz WordFence – po instalaci 13. 6. 2015 26 Level 2: začne posílat více upozornění, snižují se limity chybných přihlášení Level 3: začínají se uplatňovat omezení provozu Level 4: okamžitě blokuje neplatná jména
  27. 27. http://lynt.cz WordFence – Live Traffic 13. 6. 2015 27
  28. 28. http://lynt.cz WordFence – detekce změn 13. 6. 2015 28
  29. 29. http://lynt.cz WordFence - notifikace 13. 6. 2015 29 Mohou to zkoušet útočníci, kteří získali přístup k mailu uživatele. Čím více reálný uživatel hesla zapomíná, tím jednodušší nová nastavuje.
  30. 30. http://lynt.cz WordFence - notifikace 13. 6. 2015 30 Přihlásil se někdo s administrátorským přístupem: This email was sent from your website "#### " by the Wordfence plugin at Tuesday 9th of June 2015 at 08:46:14 AM The Wordfence administrative URL for this site is: https://####.eu/wp-admin/admin.php?page=Wordfence A user with username "####" who has administrator access signed in to your WordPress site. User IP: ##.##.##.## User hostname: #### User location: Pilsen, Czech Republic Je dostupný update: This email was sent from your website „####" by the Wordfence plugin. Wordfence found the following new issues on "####". Alert generated at Wednesday 3rd of June 2015 at 05:40:42 PM Critical Problems: * The Plugin "ManageWP - Worker" needs an upgrade. Změnil se soubor: This email was sent from your website "####" by the Wordfence plugin. Wordfence found the following new issues on "####". Alert generated at Wednesday 27th of May 2015 at 01:47:13 PM Warnings: * Modified plugin file: wp-content/plugins/block-bad-queries/block-bad-queries.php
  31. 31. http://lynt.cz WordFence – omezování provozu 13. 6. 2015 31 Bezpečné intervaly pro většinu použití, lze zpřísňovat
  32. 32. http://lynt.cz WordFence – bezpečnost přihlášení 13. 6. 2015 32
  33. 33. http://lynt.cz WordFence – další nastavení 13. 6. 2015 33 http://mojeip.cz
  34. 34. http://lynt.cz WordFence – další nastavení 13. 6. 2015 34
  35. 35. http://lynt.cz WordFence Premium – Country blocking 13. 6. 2015 35
  36. 36. http://lynt.cz BBQ: Bad Block Queries • WordFence poskytuje aktivní ochranu a blokuje nevhodné chování • Jako prevenci lze přidat i blokaci dotazů, které se často používají k útokům • https://wordpress.org/plugins/block-bad- queries/ • Malý plugin bez konfigurace • Doplněk pro vyladění - https://github.com/LyntServices/bbq-gui 13. 6. 2015 36
  37. 37. http://lynt.cz Zálohování „Zálohování je alfou a omegou práce na počítači“ 13. 6. 2015 37 • Zálohování poskytuje většina webhosterů v rámci webhostingu. • Je vhodné ale mít vlastní systém záloh. • Ruční zálohování: zkopírování obsahu FTP a export databáze. • Zálohování pluginem • Lze nastavit pravidelné automatické zálohování • BackWPup, BackupBuddy Zjistěte si od svého webhostera, jak řeší zálohování.
  38. 38. http://lynt.cz Zálohovací plugin BackWPup 13. 6. 2015 38 https://wordpress.org/plugins/backwpup/ Čeština: https://github.com/lynt-smitka/BackWPup-CZ
  39. 39. http://lynt.cz Nastavení BackWPup 13. 6. 2015 39
  40. 40. http://lynt.cz Nastavení BackWPup 13. 6. 2015 40
  41. 41. http://lynt.cz Nastavení BackWPup 13. 6. 2015 41 Kam zálohovat? Do složky na serveru - Ztracením přístupu přijdu i o zálohy - Je třeba ošetřit, aby se k souboru zálohy nikdo nedostal Emailem - Pokud se mi někdo nabourá do mailu, získá zálohy - Přenáší se nezabezpečeně FTP - Měl by se použít vyhrazený FTP účet jen pro tento účel (heslo je uložené ve WP) - Přenáší se nezabezpečeně Externí služby (Dropbox) - Dobrá volba - Opět je třeba zajistit, aby uložiště bylo pouze k jednomu účelu (Dropbox app – přistup pouze do jedné složky)
  42. 42. http://lynt.cz Nastavení BackWPup 13. 6. 2015 42 Jak často zálohovat? Je vhodné mít zálohy minimálně měsíc zpětně => je třeba zvolit interval podle velikosti úložiště. Denním zálohováním by tedy mělo být uloženo alespoň 30 záloh, nebo týdenním alespoň 4 zálohy. Dobrá metoda je nastavit více úloh: 1. Denní zálohu DB 2. Týdenní zálohu souborů Jak zálohu spuštět? WP-cron – funguje pouze když je na webu návštěvnost. Speciální odkaz – lze vložit do cron na serveru nebo využít službu typu https://www.easycron.com => Je jistota, že se záloha provede
  43. 43. http://lynt.cz Nastavení BackWPup 13. 6. 2015 43 _wfX - tabulky WordFence, mimo _wfConfig není třeba zálohovat
  44. 44. http://lynt.cz Nastavení BackWPup 13. 6. 2015 44 Zde je možné zašrtnout např. složky cache pluginů: wfcache cache w3tc
  45. 45. http://lynt.cz Nastavení BackWPup 13. 6. 2015 45 Ušetří trochu místa, po obnově je třeba přegenerovat náhledy: https://wordpress.org/plugi ns/regenerate-thumbnails/
  46. 46. http://lynt.cz Nastavení BackWPup 13. 6. 2015 46 Nastavit vhodný počet záloh dle dostupné velikosti a intervalu záloh
  47. 47. http://lynt.cz Nastavení BackWPup 13. 6. 2015 47 Nechceme zpřístupnit celý náš Dropbox, využijeme App
  48. 48. http://lynt.cz Checklist – co potřebujeme Nastavit správná práva uživatelům Silná hesla Odstranění zbytečností Blokace spamu Omezení chybných přihlášení (Brute force) Informace o aktualizacích a problémech Blokace známých útoků Zálohování 13. 6. 2015 48
  49. 49. http://lynt.cz Co udělat po útoku? • Obnova ze zálohy (smazat infikovaný web a DB) • Odstranění příčiny (často aktualizace) • 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/ • Kontrola souborů pluginem (Wordfence, Sucuri Scanner) 13. 6. 2015 49
  50. 50. http://lynt.cz Co udělat zítra? □ Zkontrolovat práva uživatelů □ Zkontrolovat, zda nemám zranitelné pluginy □ 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) □ Aktualizovat, co lze □ Zazálohovat 13. 6. 2015 50
  51. 51. http://lynt.cz A to je vše, přátelé. 13. 6. 2015 51 Přečtěte si, jak je na tom WordPress v České republice: http://lynt.cz/blog/wordpress-v-cz-velky-pruzkum Podívejte se na mé předchozí přednášky o bezpečnosti: http://edu.lynt.cz/

×