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