bezpečnost wordpress pro začátečníky

51
http://lynt.cz Bezpečnost WordPressu pro začátečníky Vláďa Smitka [email protected] @smitka Lynt services s.r.o. @LyntCz 16.06.2022 1

Upload: vladimir-smitka

Post on 03-Aug-2015

367 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 1

Bezpečnost WordPressupro začátečníky

Vláďa [email protected]

@smitka Lynt services s.r.o. @LyntCz

Page 2: Bezpečnost WordPress pro začátečníky

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

Page 3: Bezpečnost WordPress pro začátečníky

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)

Page 4: Bezpečnost WordPress pro začátečníky

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

Page 5: Bezpečnost WordPress pro začátečníky

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í

Page 6: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 6

Kdo tvořil web před 5 lety?

Page 7: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 7

Kdo tvoří web dnes?

Page 8: Bezpečnost WordPress pro začátečníky

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.

Page 9: Bezpečnost WordPress pro začátečníky

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ů

Page 10: Bezpečnost WordPress pro začátečníky

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

Page 11: Bezpečnost WordPress pro začátečníky

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.

Page 12: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 12

Správce hesel

KeePasshttp://keepass.info/

Page 13: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 13

Správce hesel

Alternativa:

LastPasshttps://lastpass.com/cs/

Page 14: Bezpečnost WordPress pro začátečníky

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

Page 15: Bezpečnost WordPress pro začátečníky

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!

Page 16: Bezpečnost WordPress pro začátečníky

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

Page 17: Bezpečnost WordPress pro začátečníky

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)

Page 18: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 18

Hromadné zakázáníkomentářů u existujícího obsahu

Page 19: Bezpečnost WordPress pro začátečníky

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/

Page 20: Bezpečnost WordPress pro začátečníky

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!

Page 21: Bezpečnost WordPress pro začátečníky

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

Page 22: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 22

WP Updates Notifier

Nastavení – Updates notifier

(základní nastavení je ok)

Page 23: Bezpečnost WordPress pro začátečníky

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í

Page 24: Bezpečnost WordPress pro začátečníky

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/

Page 25: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 25

Bezpečnostní plugin

https://wordpress.org/plugins/wordfence/

Page 26: Bezpečnost WordPress pro začátečníky

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

Page 27: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 27

WordFence – Live Traffic

Page 28: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 28

WordFence – detekce změn

Page 29: Bezpečnost WordPress pro začátečníky

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.

Page 30: Bezpečnost WordPress pro začátečníky

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

Page 31: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 31

WordFence – omezování provozuBezpečné intervaly pro většinu použití, lze zpřísňovat

Page 32: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 32

WordFence – bezpečnost přihlášení

Page 33: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 33

WordFence – další nastavení

http://mojeip.cz

Page 34: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 34

WordFence – další nastavení

Page 35: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 35

WordFence Premium – Country blocking

Page 36: Bezpečnost WordPress pro začátečníky

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

Page 37: Bezpečnost WordPress pro začátečníky

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í.

Page 38: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 38

Zálohovací plugin BackWPup

https://wordpress.org/plugins/backwpup/

Čeština: https://github.com/lynt-smitka/BackWPup-CZ

Page 39: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 39

Nastavení BackWPup

Page 40: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 40

Nastavení BackWPup

Page 41: Bezpečnost WordPress pro začátečníky

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)

Page 42: Bezpečnost WordPress pro začáteční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

Page 43: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 43

Nastavení BackWPup

_wfX - tabulky WordFence, mimo _wfConfig není třeba

zálohovat

Page 44: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 44

Nastavení BackWPup

Zde je možné zašrtnout např. složky cache pluginů:

wfcachecachew3tc

Page 45: Bezpečnost WordPress pro začátečníky

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/

Page 46: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 46

Nastavení BackWPup

Nastavit vhodný počet záloh dle dostupné velikosti a

intervalu záloh

Page 47: Bezpečnost WordPress pro začátečníky

http://lynt.cz15.04.2023 47

Nastavení BackWPup

Nechceme zpřístupnit celý náš Dropbox, využijeme App

Page 48: Bezpečnost WordPress pro začátečníky

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í

Page 49: Bezpečnost WordPress pro začátečníky

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)

Page 50: Bezpečnost WordPress pro začátečníky

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

Page 51: Bezpečnost WordPress pro začátečníky

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/