Successfully reported this slideshow.
Your SlideShare is downloading. ×

WordPress - základy bezpečnosti

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 45 Ad
Advertisement

More Related Content

Slideshows for you (20)

Similar to WordPress - základy bezpečnosti (20)

Advertisement

WordPress - základy bezpečnosti

  1. 1. https://lynt.cz WordPress – základy bezpečnosti Vláďa Smitka @smitka Lynt services s.r.o. 12. 8. 2017 1
  2. 2. https://lynt.cz Kdo jste? 12. 8. 2017 2 Správci serverů • Spravuji firewall • Nastavuji Apache/Nginx/IIS Vývojáři • Upravuji si šablony a pluginy v PHP • Píšu si vlastní doplňky Uživatelé • Koupím šablonu, nahraji pár pluginů • Jen si upravuji texty, zbytek řeší někdo jiný
  3. 3. https://lynt.cz Na co se podíváme 12. 8. 2017 3 • Bezpečnostní návyky • Bezpečnost WP • Aktualizace • Zálohování • HTTPS • Role ve WP • Bezpečnostní plugin a nastavení
  4. 4. https://lynt.cz Požadavky na administrátora • Bezpečná komunikace • Bezpečná práce s hesly • Odolnost proti phishingu 12. 8. 2017 4
  5. 5. https://lynt.cz Odposlech 12. 8. 2017 5
  6. 6. https://lynt.cz Síťová komunikace 12. 8. 2017 6
  7. 7. https://lynt.cz Kdo poslouchá? • Já • Zlí lidé na veřejných sítích • Hacknuté routery 7% domácích routerů má kritické zranitelnosti (Eset) • https://www.routersecurity.org/bugs.php • Malware v PC/na serveru  12. 8. 2017 7
  8. 8. https://lynt.cz12. 8. 2017 8
  9. 9. https://lynt.cz Jak se bránit? • HTTPS – Certifikáty jsou levné, – nebo zdarma Let‘s Encrypt (musí podporovat hosting) • VPN – Ideální způsob pro přihlášení do administrace – https://protonvpn.com/ – https://lynt.cz/blog/ikev2-vpn-v-cloudu-snadno-a- rychle 12. 8. 2017 9
  10. 10. https://lynt.cz Zasílání hesla mailem 12. 8. 2017 10
  11. 11. https://lynt.cz Jak mi doručit heslo? 12. 8. 2017 11 https://keybase.io/encrypt#smitka Jednorázové šifrování: https://secure.lynt.cz/ ZIP/RAR chráněný heslem + heslo SMS SMS Mailem s PGP/S-MIME
  12. 12. https://lynt.cz Správci hesel • Cloud • https://www.dashlane.com/ • https://1password.com/ • https://www.lastpass.com/ • Offline • http://keepass.info/ 12. 8. 2017 12
  13. 13. https://lynt.cz Phishing 12. 8. 2017 13
  14. 14. https://lynt.cz12. 8. 2017 14
  15. 15. https://lynt.cz12. 8. 2017 15
  16. 16. https://lynt.cz12. 8. 2017 16
  17. 17. https://lynt.cz12. 8. 2017 17 Předmět: Bezpečnostní problém WEDOS Hosting [8614001612] Datum: Wed, 20 Jul 2017 14:32:48 +0200 Od: WEDOS <hosting@wedos.com> Komu: <ty> Vážený zákazníku, Na Vaší webové prezentaci tvujweb.cz založené na redakčním systému Wordpress byl zjištěna škodlivý kód, který masivně útočí na další weby a infikuje návštěvníky. Neprodleně nainstalujte náš antivirový plugin Wedos-WP-Antivir, který naleznete v příloze i s návodem k instalaci. V opačném případě budeme bohužel nuceni Vaši webovou prezentaci pozastavit. WEDOS Internet, a.s.
  18. 18. https://lynt.cz12. 8. 2017 18 CSRF – neošetřené formuláře
  19. 19. https://lynt.cz Zabezpečení WP 12. 8. 2017 19 Co nedělat: • Skrývat verzi WP • Posunout wp-config o úroveň výše • Omezit přístup k celému wp-admin Co se může hodit: • Změna prefixu tabulek • Bránit vyčítání uživatelských jmen • Blokace XML-RPC Co dělat: • Aktualizovat • Zálohovat • Používat HTTPS • Používat silná hesla a vhodná oprávnění • Neprovozovat více webů ve stejném prostoru • Omezit chybná přihlášení/blokovat přístup k wp-login.php • Filtrovat známé útoky • Blokovat SPAM
  20. 20. https://lynt.cz Aktualizace „Aktualizace jsou u OpenSource zásadní!“ • WP se aktualizuje sám v rámci minor verzí (3.7+) • Lze nastavit automatické aktualizace šablon i pluginů – větší riziko, že se něco rozbije • Šablona musí být aktualizovatelná! (Child Themes) • Systémy pro správu aktualizací 12. 8. 2017 20
  21. 21. https://lynt.cz MainWP • Vyžaduje jeden vyhrazený WP web pro Dashboard: https://cs.wordpress.org/plugins/mainwp/ • Na jednotlivé web se instaluje Child https://wordpress.org/plugins/mainwp-child/ – Správa aktualizací – Hromadná instalace pluginů/šablon – Správa obsahu – Automatické updaty vybraných pluginů a šablon – Kontrola proti WPscan DB (https://wpvulndb.com/) – Zálohování 12. 8. 2017 21
  22. 22. https://lynt.cz12. 8. 2017 22
  23. 23. https://lynt.cz Další nástroje • http://infinitewp.com/ • https://wpremote.com/ • https://managewp.com/ • https://ithemes.com/sync/ • https://jetpack.com/support/site-management/ • https://cs.wordpress.org/plugins/wp-updates- notifier/ (notifikace o dostupných aktualizacích) 12. 8. 2017 23
  24. 24. https://lynt.cz Zálohování • Ruční – překopírování obsahu FTP a export DB • Na hostingu – zeptejte se svého hostera, jak to řeší • V systémech na hromadnou zprávu • Zálohovací plugin (BackWPup, BackWPup) • Nastavení BackWPup - https://www.slideshare.net/vsmitka/bezpenost- wordpress-pro-zatenky/38 • Jak často? – Pro běžné weby 1x týdně soubory, 1x denně DB – Je dobré mít uložený stav cca 3 měsíce zpět 12. 8. 2017 24
  25. 25. https://lynt.cz HTTPS 12. 8. 2017 25
  26. 26. https://lynt.cz HTTPS 12. 8. 2017 26 • Proč mít HTTPS? – Bezpečně přenášíte data svých návštěvníků – Nebezpečné sítě nemohou modifikovat váš obsah – Můžete použít HTTP/2 pro vyšší výkon – Můžete používat Google Nákupy • Proč nemít HTTPS? – Nevím… „HTTPS je standard a slušnost“
  27. 27. https://lynt.cz HTTPS – jak to nastavit 12. 8. 2017 27 • Oprava absolutních odkazů z http://<muj-web> na https://<muj-web> – WP-CLI: wp search-replace 'http://<muj-web>' 'https://<muj-web>' - -skip-columns=guid – UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://<muj-web>', 'https://<muj-web>') – https://interconnectit.com/products/search-and-replace-for- wordpress-databases/ – https://cs.wordpress.org/plugins/ssl-insecure-content-fixer/
  28. 28. https://lynt.cz Přesměrování na HTTPS • Do .htaccess RewriteEngine on RewriteCond %{HTTPS} !on RewriteCond %{HTTP:X-Forwarded-Proto} !=https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,NE,L] 12. 8. 2017 28
  29. 29. https://lynt.cz Problémy, které mohou nastat • Smyčka přesměrování = v cestě je proxy server, který dešifruje provoz – např. Flexible SSL u CloudFlare, nebo různá řešení webhosterů: if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { $_SERVER['HTTPS']='on'; } 12. 8. 2017 29
  30. 30. https://lynt.cz HTTPS - tipy • Test, zda je vše správně nastavené • https://www.ssllabs.com/ssltest/analyze.html • Pokud používáte skript Search&Replace for WP, tak ho nezapomeňte po použití smazat • Pro podobné skripty lze použít zabezpečení pomocí https://blocking.top „Nový web spouštějte rovnou na HTTPS“ 12. 8. 2017 30
  31. 31. https://lynt.cz Oprávnění 12. 8. 2017 31 • 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ů
  32. 32. https://lynt.cz Přidání práv • Nejčastěji chceme, aby Šéfredaktor mohl měnit widgety a menu $role_object = get_role( 'editor' ); $role_object->add_cap( 'edit_theme_options' ); https://cs.wordpress.org/plugins/user-role- editor/ 12. 8. 2017 32
  33. 33. https://lynt.cz Cross infekce 12. 8. 2017 33 Složkasweby Web1 Web2 Web3 Kam všude mají skripty přístup lze ověřit nástrojem MFB: https://github.com/lynt-smitka/PHP-Mini-File-Browser/
  34. 34. https://lynt.cz Dolování uživatelských jmen Přímo z URL: https://www.interval.cz/?author=1 => /clanky/author/admin/ Obrana: RewriteCond %{QUERY_STRING} author= RewriteRule ^(.*)$ %{HTTP_HOST}? [L,R=301] 12. 8. 2017 34
  35. 35. https://lynt.cz Dolování 2. díl – REST API https://www.interval.cz/wp-json/wp/v2/users {"id":10,"name":"Aleš Kerner","url":"http://","description":"","link":"https://www .interval.cz/clanky/author/ales-kerner/","slug":"ales- kerner","avatar_urls":{"24":"https://secure.gravatar.com/ava tar/1d3beec13414cc31fc1a73433369cf99?s=24&d=wp_user_avatar&r =g","48":"https://secure.gravatar.com/avatar/1d3beec13414cc3 1fc1a73433369cf99?s=48&d=wp_user_avatar&r=g","96":"https://s ecure.gravatar.com/avatar/1d3beec13414cc31fc1a73433369cf99?s =96&d=wp_user_avatar&r=g"},… Obrana: Filtrování REST-API: https://github.com/lynt-smitka/WP-nginx- config/blob/master/extras/mu-plugins/lynt-enhancer.php Povolení REST-API pouze pro přihlášené: https://developer.wordpress.org/rest-api/using-the-rest-api/frequently-asked- questions/#require-authentication-for-all-requests 12. 8. 2017 35 ales@kerner.cz
  36. 36. https://lynt.cz Bezpečnostní plugin WordFence • https://www.slideshare.net/vsmitka/wordfenc e-2016 • Nejdůležitější nastavení: WordFence - Firewall 12. 8. 2017 36
  37. 37. https://lynt.cz Brute Force Protection 12. 8. 2017 37
  38. 38. https://lynt.cz Rate Limiting 12. 8. 2017 38
  39. 39. https://lynt.cz WordFence - Options 12. 8. 2017 39
  40. 40. https://lynt.cz SPAM • https://akismet.com/ - je třeba aktivovat • https://cs.wordpress.org/plugins/nospamnx/ • Můj mini antispam využívající (mimo jiné) http://www.projecthoneypot.org https://github.com/lynt-smitka/lynt-antispam 12. 8. 2017 40
  41. 41. https://lynt.cz Triky 12. 8. 2017 41
  42. 42. https://lynt.cz IP blokace administrace Blokace WP-ADMIN .htaccess ve wp-admin: Order deny,allow Allow from x.x.x.x Deny from all <Files admin-ajax.php> Order allow,deny Allow from all Satisfy any </Files> 12. 8. 2017 42 Blokace přihlašovací stránky hlavní .htaccess: <Files wp-login.php> Order deny,allow Allow from x.x.x.x Deny from all </Files>
  43. 43. https://lynt.cz Další blokace Blokace podezřelých POST (hlavní .htaccess) <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .*/(wp-comments-post|wp-login|admin-ajax).php.* RewriteCond %{HTTP_REFERER} !.*%{HTTP_HOST}.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) https://%{HTTP_HOST}/? [R=301,L] </ifModule> Blokace PHP v uploads (.htacces v této složce) <FilesMatch .php$> Order allow,deny Deny from all </FilesMatch> 12. 8. 2017 43
  44. 44. https://lynt.cz Starší přednášky 12. 8. 2017 44 • Výkon: – https://www.slideshare.net/vsmitka/vkon-wordpress – https://www.slideshare.net/vsmitka/wp-vkon-a-jeho- profilovn • Bezpečnost: – https://www.slideshare.net/vsmitka/nejastej- problmy-wordpress-web – https://www.slideshare.net/vsmitka/wordcamp- praha-2016-bezpenost-wordpress – https://www.slideshare.net/vsmitka/bezpenost-wp- tipy-pro-kadho-wordcamp-praha-2015
  45. 45. https://lynt.cz A to je vše, přátelé. 12. 8. 2017 45 aktualizujte, zálohujte, používejte bezpečnostní plugin, buďte opatrní

Editor's Notes

  • Kdo ma vps/hosting, kdo ma bezpecnosnti plugin, kdo resil incident
  • Kdo ma vps/hosting, kdo ma bezpecnosnti plugin, kdo resil incident

×