WordCamp Praha 2016 - Bezpečnost WordPress

Vladimír Smitka
Vladimír SmitkaCo-founder - Lynt services at Lynt services s.r.o.
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í
1 of 60

Recommended

WordPress: Základy - bezpečnost 3x3 by
WordPress: Základy - bezpečnost 3x3WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3Vladimír Smitka
1.7K views41 slides
Bezpečnost WordPress pro začátečníky by
Bezpečnost WordPress pro začátečníkyBezpečnost WordPress pro začátečníky
Bezpečnost WordPress pro začátečníkyVladimír Smitka
6.2K views51 slides
Bezpečnost Wordpressu - 4. WP konference by
Bezpečnost Wordpressu - 4. WP konferenceBezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konferenceVladimír Smitka
4.7K views57 slides
Jak si (ne)nechat hacknout Wordpress stránky by
Jak si (ne)nechat hacknout Wordpress stránkyJak si (ne)nechat hacknout Wordpress stránky
Jak si (ne)nechat hacknout Wordpress stránkyVladimír Smitka
10.2K views40 slides
Wordfence 2016 by
Wordfence 2016Wordfence 2016
Wordfence 2016Vladimír Smitka
1.6K views18 slides
WordPress - základy bezpečnosti by
WordPress - základy bezpečnostiWordPress - základy bezpečnosti
WordPress - základy bezpečnostiVladimír Smitka
1.4K views45 slides

More Related Content

What's hot

Nejčastejší problémy WordPress webů by
Nejčastejší problémy WordPress webůNejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webůVladimír Smitka
3.7K views39 slides
WordCamp Brno 2017 - rychlý a bezpečný web by
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
1.6K views27 slides
WP výkon a jeho profilování by
WP výkon a jeho profilováníWP výkon a jeho profilování
WP výkon a jeho profilováníVladimír Smitka
1.1K views26 slides
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015 by
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
8.8K views79 slides
Základní pluginy pro WordPress by
Základní pluginy pro WordPressZákladní pluginy pro WordPress
Základní pluginy pro WordPressRadek Kucera
682 views39 slides
Sysops tipy pro lepší WP by
Sysops tipy pro lepší WPSysops tipy pro lepší WP
Sysops tipy pro lepší WPVladimír Smitka
430 views29 slides

What's hot(20)

Nejčastejší problémy WordPress webů by Vladimír Smitka
Nejčastejší problémy WordPress webůNejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webů
Vladimír Smitka3.7K views
WordCamp Brno 2017 - rychlý a bezpečný web by Vladimír Smitka
WordCamp Brno 2017  - rychlý a bezpečný webWordCamp Brno 2017  - rychlý a bezpečný web
WordCamp Brno 2017 - rychlý a bezpečný web
Vladimír Smitka1.6K views
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015 by Vladimír Smitka
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
Vladimír Smitka8.8K views
Základní pluginy pro WordPress by Radek Kucera
Základní pluginy pro WordPressZákladní pluginy pro WordPress
Základní pluginy pro WordPress
Radek Kucera682 views
Wordpress_DOD by Doubry99
Wordpress_DODWordpress_DOD
Wordpress_DOD
Doubry992K views
Najčastejšie problémy WordPress webov by Vladimír Smitka
Najčastejšie problémy WordPress webovNajčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webov
Vladimír Smitka2.6K views
Google Tag Manager a analytika ve WordPress by Vladimír Smitka
Google Tag Manager a analytika ve WordPressGoogle Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPress
Vladimír Smitka700 views
WordCamp Bratislava 2019 - Cache! by Vladimír Smitka
WordCamp Bratislava 2019 - Cache!WordCamp Bratislava 2019 - Cache!
WordCamp Bratislava 2019 - Cache!
Vladimír Smitka1.6K views
WordPress šablony a rychlost načítání (WordCamp Praha 2017) by Martin Michálek
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álek1.8K views
Základní pluginy pro WordPress 25-6-2016 by Radek Kucera
Základní pluginy pro WordPress 25-6-2016Základní pluginy pro WordPress 25-6-2016
Základní pluginy pro WordPress 25-6-2016
Radek Kucera907 views
Jak zlepšit zabezpečení čtvrtiny celého webu by Michal Špaček
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
Michal Špaček1.7K views
Hesla a vícefaktorová autentizace ve WP by Vladimír Smitka
Hesla a vícefaktorová autentizace ve WPHesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WP
Vladimír Smitka948 views
Co musíte udělat po instalaci WordPressu?, Vlastimil Ott by Liberix, o.p.s.
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
Liberix, o.p.s.2.7K views
WordPress ve školském prostředí by Vlastimil Ott
WordPress ve školském prostředíWordPress ve školském prostředí
WordPress ve školském prostředí
Vlastimil Ott2K views
Hledání příčin pomalého webu a jak to řešit by Desingdev
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
Desingdev4.9K views

Viewers also liked

WordPress performance tuning by
WordPress performance tuningWordPress performance tuning
WordPress performance tuningVladimír Smitka
4.9K views57 slides
WordPress Security: Defend yourself against digital invaders by
WordPress Security:Defend yourself against digital invadersWordPress Security:Defend yourself against digital invaders
WordPress Security: Defend yourself against digital invadersVladimír Smitka
2.8K views62 slides
Pux 28.2.2017 Úvod do internetového marketingu by
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
292 views21 slides
WordCamp Praha 2017 - Tomáš Kocifaj by
WordCamp Praha 2017 - Tomáš KocifajWordCamp Praha 2017 - Tomáš Kocifaj
WordCamp Praha 2017 - Tomáš KocifajBrilo Team
731 views20 slides
České weby a Wordpress (Q4/2014) by
České weby a Wordpress (Q4/2014)České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)Vladimír Smitka
454 views1 slide
Jednoduchý firemní web na WordPressu - WordCamp Praha 2014 by
Jednoduchý firemní web na WordPressu - WordCamp Praha 2014Jednoduchý firemní web na WordPressu - WordCamp Praha 2014
Jednoduchý firemní web na WordPressu - WordCamp Praha 2014Radek Kucera
2.1K views11 slides

Viewers also liked(15)

WordPress Security: Defend yourself against digital invaders by Vladimír Smitka
WordPress Security:Defend yourself against digital invadersWordPress Security:Defend yourself against digital invaders
WordPress Security: Defend yourself against digital invaders
Vladimír Smitka2.8K views
Pux 28.2.2017 Úvod do internetového marketingu by Brilo Team
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
Brilo Team292 views
WordCamp Praha 2017 - Tomáš Kocifaj by Brilo Team
WordCamp Praha 2017 - Tomáš KocifajWordCamp Praha 2017 - Tomáš Kocifaj
WordCamp Praha 2017 - Tomáš Kocifaj
Brilo Team731 views
Jednoduchý firemní web na WordPressu - WordCamp Praha 2014 by Radek Kucera
Jednoduchý firemní web na WordPressu - WordCamp Praha 2014Jednoduchý firemní web na WordPressu - WordCamp Praha 2014
Jednoduchý firemní web na WordPressu - WordCamp Praha 2014
Radek Kucera2.1K views
Licence k šablonám a pluginům - WordCamp 2014 Praha by Tomáš Cirkl
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
Tomáš Cirkl5.7K views
Wordpress: Idealni nastroj pro chytre marketery by Filip Drimalka
Wordpress: Idealni nastroj pro chytre marketeryWordpress: Idealni nastroj pro chytre marketery
Wordpress: Idealni nastroj pro chytre marketery
Filip Drimalka2.4K views
Funkční SEO strategie pro váš web by Pavel Ungr
Funkční SEO strategie pro váš webFunkční SEO strategie pro váš web
Funkční SEO strategie pro váš web
Pavel Ungr2.9K views
Základní nastavení wordpressu by Kamil Kuchta
Základní nastavení wordpressuZákladní nastavení wordpressu
Základní nastavení wordpressu
Kamil Kuchta5.3K views
Word press pluginy (pokročilé) - Tomáš Cirkl by Tomáš Cirkl
Word press pluginy (pokročilé) - Tomáš CirklWord press pluginy (pokročilé) - Tomáš Cirkl
Word press pluginy (pokročilé) - Tomáš Cirkl
Tomáš Cirkl4.7K views
WordPress security for everyone by Vladimír Smitka
WordPress security for everyoneWordPress security for everyone
WordPress security for everyone
Vladimír Smitka37.3K views

Similar to WordCamp Praha 2016 - Bezpečnost WordPress

Nette v cloudu - Poslední Sobota by
Nette v cloudu - Poslední SobotaNette v cloudu - Poslední Sobota
Nette v cloudu - Poslední SobotaPatrik Votoček
831 views17 slides
Wordcamp Praha 2015 - další útržky z prezentace by
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
945 views12 slides
Generátory statických webů by
Generátory statických webůGenerátory statických webů
Generátory statických webůMichal Doležel
21 views10 slides
Pavel Ondřej: WordPress z pohledu hostingového poskytovatele by
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.
1.2K views20 slides
Jak zrychlit WP pomocí cachovacích pluginů by
Jak zrychlit WP pomocí cachovacích pluginůJak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginůJakub Klapka
2.5K views24 slides
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress by
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.
5.1K views67 slides

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

Nette v cloudu - Poslední Sobota by Patrik Votoček
Nette v cloudu - Poslední SobotaNette v cloudu - Poslední Sobota
Nette v cloudu - Poslední Sobota
Patrik Votoček831 views
Wordcamp Praha 2015 - další útržky z prezentace by Vladimír Smitka
Wordcamp Praha 2015 - další útržky z prezentaceWordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentace
Vladimír Smitka945 views
Pavel Ondřej: WordPress z pohledu hostingového poskytovatele by Liberix, o.p.s.
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
Liberix, o.p.s.1.2K views
Jak zrychlit WP pomocí cachovacích pluginů by Jakub Klapka
Jak zrychlit WP pomocí cachovacích pluginůJak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginů
Jakub Klapka2.5K views
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress by Colpirio.com s.r.o.
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
Colpirio.com s.r.o.5.1K views
20110511 Vývoj software - produktivně, efektivně, kvalitně by Jiří Mareš
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
Jiří Mareš446 views
Víceúrovňová obrana vysvětlená na Cross-Site Scriptingu by Michal Špaček
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
Michal Špaček582 views
Bezpečnost e-shopů (HTTPS, XSS, CSP) by Michal Špaček
Bezpečnost e-shopů (HTTPS, XSS, CSP)Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)
Michal Špaček1K views
HTTPS zdarma a pro všechny - LinuxDays 2015 by tomashala
HTTPS zdarma a pro všechny - LinuxDays 2015HTTPS zdarma a pro všechny - LinuxDays 2015
HTTPS zdarma a pro všechny - LinuxDays 2015
tomashala1.3K views
Vyhledávače a JavaScript by Taste Medio
Vyhledávače a JavaScriptVyhledávače a JavaScript
Vyhledávače a JavaScript
Taste Medio4.5K views
WordCamp Prague 2014 - Website security cz by peter_sucuri
WordCamp Prague 2014 - Website security czWordCamp Prague 2014 - Website security cz
WordCamp Prague 2014 - Website security cz
peter_sucuri1K views
Semantický web (Martin Šimko) by Taste Medio
Semantický web (Martin Šimko)Semantický web (Martin Šimko)
Semantický web (Martin Šimko)
Taste Medio943 views
WordCamp Bratislava 2017 - Martin Hlaváč by Brilo Team
WordCamp Bratislava 2017 - Martin HlaváčWordCamp Bratislava 2017 - Martin Hlaváč
WordCamp Bratislava 2017 - Martin Hlaváč
Brilo Team82 views
WordPress ve světě hostingu, Václav Peter by Liberix, o.p.s.
WordPress ve světě hostingu, Václav PeterWordPress ve světě hostingu, Václav Peter
WordPress ve světě hostingu, Václav Peter
Liberix, o.p.s.246 views
Hon za fonty na webu by jansladek
Hon za fonty na webuHon za fonty na webu
Hon za fonty na webu
jansladek1.3K views
06 prez2(tvorba webu) by olc_user
06 prez2(tvorba webu)06 prez2(tvorba webu)
06 prez2(tvorba webu)
olc_user109 views

More from Vladimír Smitka

Co ukázal globální scan přístupných .git repozitářů? by
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
602 views45 slides
Drobné chyby, které vám mohou zlomit vaz by
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
1.1K views28 slides
Http/2 vs Image Sprites by
Http/2 vs Image SpritesHttp/2 vs Image Sprites
Http/2 vs Image SpritesVladimír Smitka
1.4K views10 slides
Ansible by
AnsibleAnsible
AnsibleVladimír Smitka
1.4K views45 slides
Dijskrův algoritmus by
Dijskrův algoritmusDijskrův algoritmus
Dijskrův algoritmusVladimír Smitka
2.7K views13 slides
Sítě pro malé a střední podniky 2014 by
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
1.5K views77 slides

More from Vladimír Smitka(6)

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í