bezpečnost wordpress pro začátečníky
TRANSCRIPT
http://lynt.cz15.04.2023 1
Bezpečnost WordPressupro začátečníky
Vláďa [email protected]
@smitka Lynt services s.r.o. @LyntCz
http://lynt.cz15.04.2023 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
http://lynt.cz15.04.2023 3
MinislovníčekHTTP – 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 serveruMySQL – 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 webwp-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ánaSQL injection (SQLi) – typ útoku, který pozmění dotaz do databáze a získá tak citlivé informaceXSS – 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)
http://lynt.cz15.04.2023 4
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
http://lynt.cz15.04.2023 5
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í
http://lynt.cz15.04.2023 8
Uživatelé
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.
http://lynt.cz15.04.2023 9
Práva uživatelů• 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ů
http://lynt.cz15.04.2023 10
Jak přejmenovat uživatele admin1. 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
http://lynt.cz15.04.2023 11
Hesla
1. admin2. heslo3. karel914. Admin12345. mamradsvickovouomackusknedlikem6. 2dfsg*jrkKR!R6Htt5Kh
Používejte správce hesel – silnější hesla s
menším úsilím.
http://lynt.cz15.04.2023 12
Správce hesel
KeePasshttp://keepass.info/
http://lynt.cz15.04.2023 13
Správce hesel
Alternativa:
LastPasshttps://lastpass.com/cs/
http://lynt.cz15.04.2023 14
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řebaudělat výjimky pro admin-ajax.phpa admin-post.php)
Do .htaccess:<Files wp-login.php>Order Deny,AllowDeny from AllAllow from x.x.x.x</Files>
http://mojeip.cz
http://lynt.cz15.04.2023 15
Cut the crap!
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!
http://lynt.cz15.04.2023 16
Cut the crap!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
http://lynt.cz15.04.2023 17
Co mohou externí uživatelé?
Registrovat se?Nastavení – Obecné:
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)
http://lynt.cz15.04.2023 19
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
Externí řešení např. https://disqus.com/
http://lynt.cz15.04.2023 20
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!
http://lynt.cz15.04.2023 21
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
http://lynt.cz15.04.2023 22
WP Updates Notifier
Nastavení – Updates notifier
(základní nastavení je ok)
http://lynt.cz15.04.2023 23
Checklist – co potřebujeme
Nastavit správná práva uživatelůmSilná heslaOdstraně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í
http://lynt.cz15.04.2023 24
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/
http://lynt.cz15.04.2023 25
Bezpečnostní plugin
https://wordpress.org/plugins/wordfence/
http://lynt.cz15.04.2023 26
WordFence – po instalaci
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í provozuLevel 4: okamžitě blokuje neplatná jména
http://lynt.cz15.04.2023 29
WordFence - notifikace
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.
http://lynt.cz15.04.2023 30
WordFence - notifikacePř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 AMThe 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 PMCritical 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 PMWarnings:* Modified plugin file: wp-content/plugins/block-bad-queries/block-bad-queries.php
http://lynt.cz15.04.2023 31
WordFence – omezování provozuBezpečné intervaly pro většinu použití, lze zpřísňovat
http://lynt.cz15.04.2023 33
WordFence – další nastavení
http://mojeip.cz
http://lynt.cz15.04.2023 36
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
http://lynt.cz15.04.2023 37
Zálohování
„Zálohování je alfou a omegou práce na počítači“• 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í.
http://lynt.cz15.04.2023 38
Zálohovací plugin BackWPup
https://wordpress.org/plugins/backwpup/
Čeština: https://github.com/lynt-smitka/BackWPup-CZ
http://lynt.cz15.04.2023 41
Nastavení BackWPupKam 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)
http://lynt.cz15.04.2023 42
Nastavení BackWPupJak č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 DB2. 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
http://lynt.cz15.04.2023 43
Nastavení BackWPup
_wfX - tabulky WordFence, mimo _wfConfig není třeba
zálohovat
http://lynt.cz15.04.2023 44
Nastavení BackWPup
Zde je možné zašrtnout např. složky cache pluginů:
wfcachecachew3tc
http://lynt.cz15.04.2023 45
Nastavení BackWPup
Ušetří trochu místa, po obnově je třeba
přegenerovat náhledy:https
://wordpress.org/plugins/regenerate-thumbnails/
http://lynt.cz15.04.2023 46
Nastavení BackWPup
Nastavit vhodný počet záloh dle dostupné velikosti a
intervalu záloh
http://lynt.cz15.04.2023 47
Nastavení BackWPup
Nechceme zpřístupnit celý náš Dropbox, využijeme App
http://lynt.cz15.04.2023 48
Checklist – co potřebujeme
Nastavit správná práva uživatelůmSilná heslaOdstranění zbytečnostíBlokace spamuOmezení chybných přihlášení (Brute force)Informace o aktualizacích a problémechBlokace známých útokůZálohování
http://lynt.cz15.04.2023 49
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)
http://lynt.cz15.04.2023 50
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
http://lynt.cz15.04.2023 51
A to je vše, přátelé.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/