WEB SECURITY


Pokud podceníte bezpečnost, může se vám to vymstít

Bezpečnost webu

Začít hledat pomoc až máte hacknutý web je často pozdě. Základem je prevence. V tomto článku se budu věnovat především WordPressu a Prestě, ale týká se to vlastně všech webů.



Hodně majitelů www stránek často neakceptuje fakt, že je třeba se o svůj web starat

Na WordPressu i Prestě se velmi často objevují bezpečnostní chyby, bohužel to ale není hlavní problém hacknutí webu, jak už to tak bývá, ten relevantní problém je mezi monitorem a židlí.


1.HTTPS

Dnes je to módní, hodně se o tom mluví, ale https není primárně o zabezpečení webu, je to zabezpečení komunikace mezi serverem a browserem (prohlížečem). Především to řeší bezpečnost uživatelů vašich stránek, obtížnější špehování, jaká hesla zadávají, je také těžší jim podsunout nějaký závadný obsah. Ani https není 100%, ale zatím je to to nejlepší, co bylo vymyšleno.


2.Hosting

Kvalitní hosting je základ, dnes se dá koupit kvalita za rozumné peníze. Aspoň základní předpoklady: SSL certifikát, administrace zašifrovaná https protokolem, garance 99,9% dostupnosti, denní záloha všech souborů a databáze s měsíční zpětnou dostupností, kvalitní podpora.


3.Zašifrované připojení k FTP

Kvalitní foftware pro přenos souborů, navíc zdarma, je FileZilla umožňující SSL šifrování komunikace (FTP klienta stáhnete tady). Proč šifrovat? Při běžném připojování pomocí protokolu FTP jsou přihlašovací údaje (tedy jméno a heslo) přenášeny v obyčejné textové podobě a je relativně snadné je odchytit. Pokud se tak stane, máte zaděláno na velký problém.


4.WordPress – bezpečnostní klíče

Určitě jim věnujte pozornost, je to další vrstva zabezpečení. WordPress spravuje přihlašovací relace tak, že ukládá informace do cookies, nedělá to tedy přes PHP relace. Tyto soubory cookie jsou zabezpečeny pomocí HASHe složeného z uživatelského jména, hesla a “dlouhého náhodného řetězce”. Tyto řetězce se nazývají bezpečnostní klíče a jsou obsaženy v souboru wp-config.php. Tyto “dlouhé náhodné řetězce” použité pro výpočet cookie HASHe se nazývají bezpečnostní klíče a jsou obsaženy ve wp-config.php. Po nové instalaci WordPressu vypadají bezpečnostní klíče takto:

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');

Bezpečnostní klíče hrají velkou roli v bezpečnosti stránky. Bez nich by pro kohokoliv bylo relativně jednoduché se dostat do administrace WordPressu. Proto se doporučuje tyto výchozí klíče po instalaci nahradit náhodně generovanými. Bezpečnostní klíče by měly být dlouhé a bez možnosti uhádnutí. Více zde: https://www.wplama.cz/jak-nastavit-bezpecnostni-klice- wordpressu-a-k-cemu-slouzi/


5. Změna “table prefix”

Co to je table prefix? Je to vlastně označení tabulek v databázi. Pokud necháte defaultní, usnadňujete hackerům práci. Pokud už máte web nainstalovaný, změna je také možná, ale je to trošku složitější. Je také možné využít modul iThemes Security, který to umí. Více zde: https://www.wplama.cz/komplexni-zabezpeceni-wordpressu- pomoci-ithemes-security/


6. Na slovo admin zapomeňte

Admin můžete nechat jako nick, ale jako přihlašovací jméno použijte něco jiného. Pokud necháte login do administrace jako admin, opět usnadňujte hackerům práci. Login může být i relativně složité slovo, jde o to, abyste si ho pamatovali.


7. Zvolte si silné heslo

Co je silné heslo? https://cs.wikipedia.org/wiki/Bezpečné_heslo Určitě si nedávejte hesla stejná pro přihlášení do administrace webu a třeba do e-mailu, na jedné přednášce, tuším že to bylo u Michala Kubíčka, jsem slyšel příběh o klientovi, kterému hacknuli WordPress a zjistili e-mail a heslo, které pak sedělo i na jeho Gmail, co se dále stalo netřeba zdůrazňovat. S heslem je to problém, já sám jich využívat několik desítek a pamatovat si je všechny prostě nejde. Proto používám specializované nástroje, v mém případě LastPass, který je z části v češtině a je zdarma. Můžete použít i generátor hesel, např: https://www.generator-hesel.cz/


8. Přejmenujte “wp-login.php – adminxxxx”

Je to jednoduché pomocí pluginu Rename wp-login.php. Pokud přejmenujete wp-login.php na např. ?prihlasenidnes20, je pro hackery obtížnější se do administrace dostat. Použití pluginu je velmi jednoduché. Po instalaci vám v sekci Nastavení ... Trvalé odkazy... přibude políčko, kde si url na přihlášení jednoduše vyplníte.


KLIKNĚTE PRO POKRAČOVÁNÍ ČLÁNKU

9. Aktualizujte

Nejen WordPress, kde při aktualizaci se cca z 80% řeší bezpečnost, ale i pluginy a šablony. Ty které nepoužíváte vymažte. Já používám jednu hlavní šablonu, jednu mám záložní a zbytek mažu. Stejně tak pluginy, nestačí je jen zakázat... https://www.lupa.cz/clanky/velka-cast-ceskych-stranek-na-wordpressu- ma-vazne-bezpecnostni-chyby/


10. Používejte bezpečnostní pluginy

Doporučuji iThemes Security. Tento plugin je skvělý v tom, že spoustu věcí dělá za vás a často stačí jenom kliknutí a web je o něco bezpečnější. Co, mimo jiné, umí? Limitujte přihlašování počtem nezdařených pokusů, čímž eliminuje útok hrubou silou, nastaví rozdílné přihlašovací stránky, změní administrátorského jméno a jeho ID, skenuje stránky proti malwaru.


11. Zálohujte, nespoléhejte jen na webhosting

Já si dělám zálohy více méně pravidelně, minimálně před a po každém větším zásahu do webu. Zálohovat můžete i pomocí pluginů, např. už zmíněný iThemes Security.


12. Zaheslování wp-admin

Zaheslujte, případně do administrace pusťte jen svou ip adresu. Já často mimo domov používám sdílené mobilní datové připojení a dynamické adresy znesnadňují správu, ale je to o zvyku. Jak zaheslování, tak i blokace IP adres není složitá. Omezit přístupu do administrace WordPressu na konkrétní IP adresu. Vytvořte si soubor .htaccess, vložte kód a umístěte jej do adresáře /wp- admin/:

< Files "index*" >
Order Deny,Allow
Deny from all
Allow from 85.290.91...
Allow from 33.850.71.... (IP adresy jsou vymyšlené a musíte použít ty svoje)

Můžete také chránit adresář /wp-includes/, přidejte do kořenového souboru .htaccess tento kód:
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]


13. Nepoužívejte šablony a pluginy z neoficiálních zdrojů

Pozor na šablony, lidé často stahují šablony z neověřených zdrojů, které mohou mít v sobě škodlivý kód, doporučuji opravdu jen ověřené zdroje.


14. Vypněte editor motivů a pluginů WordPressu

Přizpůsobovat a editovat motivy a pluginy z administrace WordPressu je určitě zajímavá funkcionalita, ale často to může být spíše na škodu. I malá chybička může způsobit havárii webu. Hackeři mohou snadno vložit do šablony škodlivý kód, atd. Proto doporučuji vypnout editor motivů a pluginů, čímž znemožníte, aby mohl někdo bez přístupu k FTP modifikovat motivy a pluginy. Do souboru wp-config.php přidáte následující kód:
define( ‚DISALLOW_FILE_EDIT‘, true );


15. Zapněte dvoufázové ověření

Dvoufázové ověření většinou známe z internetového bankovnictví, případně z Gmailu. Na WordPressu na to musíte mít plugin. Já osobně tohle nepoužívám, více mi vyhovuje blokace dle ip adres, ale pro někoho to může být vhodnější řešení


16. Pravidelně blog skenujte

Není na místě čekat, až se vám na webu objeví škodlivý kód. Nainstalujte bezpečnostní skenovací pluginy, aby web pravidelně skenovaly a oznamovaly, že se případně něco změnilo. Opět doporučím už zmiňovaný iThemes Security, případně využijte jiný plugin.


17. Skryjte číslo verze WordPressu

Podle mne tohle není úplně zásadní, je to spíše o tom, že si někdo zjistí, která verze měla jakou bezpečnostní díru a snaží se jí využít. Pokud se ale o web staráte, je toto podružné. Abyste skryli číslo verze WordPressu, stačí, když do souboru functions.php používané šablony umístíte tento kód:
remove_action('wp_head', 'wp_generator');
Nezapomeňte odstranit soubory readme.html a license.txt, které zobrazují nainstalovanou verzi WordPressu.


18. Vypněte zprávy PHP o chybách

Informace o nějaké PHP chybě, zahrnuje také úplnou serverovou cestu chyby, prozrazuje tedy informaci, kterou mohou hackeři zneužít proti vám. Ochránit se proti tomu můžete tím, že vypnete chybové reporty PHP. Do svého souboru wp-config.php přidejte toto:
define(‚WP_DEBUG‘, false);
zapnutí: define(‚WP_DEBUG‘, true);


19. Oprávnění přístupu k souborům

Zjistěte si přes FTP klienta, jestli oprávnění ke složkám WordPressu jsou nastavena na 755 nebo 750, oprávnění k souborům na 640 nebo 644, a oprávnění k souboru wp-config.php na 400. Další info např. tady: http://www.cwordpress.cz/navody/chmod-nastaveni-opravneni-k- souborum-a-slozkam.html


20. Další tipy na závěr

Web wpvulndb.com vede databázi zranitelných pluginů, pokud váš webhosting nedělá kontroly automaticky, dělejte to sami, aspoň občas. Brute force útoky na prolomení hesel se dají zjistit v logu serveru a blokovat. Pomůže vám váš webhosting. Blokujte přístup k souboru/skriptu xmlrpc.php pomocí .htaccess souboru (xmlrpc.php slouží pro komunikaci s ostatními aplikacemi – dají se na něj posílat hromadné dotazy na prolomení hesel).


21. Zabezpečení webu a VPN připojení

Se zabezpečením webu a přihlašovacích údajů souvisí i VPN připojení. VPN připojení je šikovným pomocníkem zejména ve chvíli, kdy se ke svému webu připojujete na veřejné WiFi, například na dovolené nebo v kavárně. Pozor na veřejná, ale také na méně zabezpečená WiFi. Další riziko podstupujete, pokud se přihlašujete z veřejného nebo cizího počítače. V takovém případě se vždy odhlašte. Ideálně byste měli použít anonymní okno, které sice není úplně anonymní, ale je to lepší řešení.


22. Pozor na UOOU

Pokud špatně zabezpečíte data svých zákazníků, může to být větší problém něž si myslíte, viz např: ...Kontrolovaný tím spáchal správní delikt podle § 45 odst. 1 písm. h) zákona č. 101/2000 Sb., neboť nepřijal nebo neprovedl opatření pro zajištění bezpečnosti zpracování osobních údajů, za což mu v souladu s § 45 odst. 3 zákona č. 101/2000 Sb. byla uložena pokuta... https://www.uoou.cz/kontrola-zamerena-na-bezpecnost- provozovanych-webovych-stranek/d-6299/p1=3109 Za bezpečnost dat svých zákazníků zodpovídáte vy.


23. Další informace

https://lynt.cz/blog/zranitelnost-ve-wordpress-pluginu-fancybox-for- wordpress-3-0-2
https://lynt.cz/blog/zranitelnost-ve-wordpress-pluginu-slider-revolution- 4-1-4
https://www.root.cz/bezpecnost/

Při vývoji jakéhokoliv webu by mělo být myšleno především na bezpečnost. Existuje nepřeberné množství různých webových útoků. Jedná se například o SQL Injection, Cross.site Scripting, Cross.site Request Forgeries, atd. Všechny bezpečnostní problémy však vycházejí z nekvalitního programování, ale také z uživatelské laxnosti.


24. Otestujte si web sami

https://transparencyreport.google.com/safe-browsing/
https://securityheaders.com/
https://observatory.mozilla.org/



Nevíte si rady se zabezpečením www stránek? info@care4web.cz

LD 2020