Přihlásit se
Ráno si jako obvykle sednete k počítači, spustíte si své stránky a nepoznáváte je. Nějaký D4rk D3v1l vám na nich zanechal vzkaz. Kompletně je změnil a vymazal celý obsah stránek. Tento článek se vám pokusí poradit, co s tím dělat a jak se bránit. Veškeré činnosti musíme rozdělit na dvě fáze - fáze obranná, tedy provedení kroků tak, abychom hackerovi jeho "úsilí" co nejvíce ztížili a fáze po útoku, kdy se snažíme uvést všechno do původního stavu. Vše, co zde bude uvedeno, jsou různé, na internetu i zde na fórech sesbírané tipy a rady, částečně i z vlastní zkušenosti.
 

Krok 1 - Zálohování

Ano, slyšíte to stále dokola, ale svým způsobem je to nejzákladnější a nejjednodušší vyřešení vašeho problému s hackerem. Tedy abych byl přesnější - vyřešení problému s tím, jak co nejrychleji uvést vaše stránky do původního stavu, do stavu před útokem, nikoliv prevence útoku. Čím častěji zálohu provádíte, tím je větší pravděpodobnost, že o nic nepřijdete. Prostě a jednoduše obnovíte stav z poslední možné zálohy.

Zálohování se provádí obvykle ve dvou krocích. Musíte zazálohovat jak kompletní obsah všech složek, ve kterých je Joomla! nainstalována, ale hlavně a především musíte provést zálohování databáze. Existují různé zálohovací komponenty i pro Joomla, jedna je i ve standardní instalaci Joomly. K vaší pozornosti doporučuji cron backup though email (pokud jste na hostingu v Linuxu) nebo Joombackup pokud nevíte. Oba programy vaši DB zazálohují, stránky také, vytvoří komprimovaný archiv a vše pošlou na vámi zadanou emailovou adresu.

Krok 2 - Bezpečnost hesel

Oblast o které se stále mluví - uživatelská hesla. Je to asi nejcitlivější část celé bezpečnosti. Málo kvalitní heslo dokáže způsobit to, že se případný útočník dostane k vašim stránkám a získá tak práva stejná, jakoby byl vámi. Jako správce sítě v jedné firmě vím, že uživatelé (ale v podstatě i já a mí rodinní příslušníci) už otupěli a nebaví je mít na všechno pokaždé jiné heslo. Jen si to vezměte - PIN do mobilu, PIN na bankovní kartu (pokud jich máte několik, jen se to násobí), heslo do internetového bankovnictví, heslo k digitálnímu podpisu, heslo pro přístup k emailu, heslo pro přístup k firemní počítačové síti, heslo k počítačové síti jako správce, heslo k FTP účtu na hosting, heslo k přístup do Joomly! apod. A to jsou jen ty běžně a denně využívané služby.

Je jasné, že každý lidský tvor se bude snažit to nějak sesouladit. A to je právě ta chyba. Velkým nebezpečím je mít jedno heslo pro přístup k mnoha službám. Dalším prohřeškem je mít heslo slabé např. své jméno, manželky, dětí, psa atd. Pokud si nemůžete pomoci, nabízí se takové malé geniální řešení, které s oblibou používám. Jako heslo si zvolím slovo, které si snadno zapamatuji, ale úmyslně v něm zaměním některá písmena za čísla. S oblibou měním písmeno O za 0, I za 1, S za 5, Z za 7, A za 4 takže například heslo joomlaportal by se dalo zapsat jako j00ml4p0rt4l. To už je dost neprůstřelné. V kombinaci s některými velkými a malými znaky už je to dostatečné.

Jednou z oblíbených metod hackerů je totiž tzv. slovníkový útok. Mají k dispozici slovník se slovy a postupně je zkoušejí používat jako hesla. Obsahuje např. názvy měsíců, nejčastější jména lidí i domácích mazlíčků. Pokud slovník selže, následuje útok tzv. "hrubou silou" (anglicky brute force), kdy se útočník pokouší použít hesla tak, že začne nejdříve testovat všechna hesla postupně tj. a, b, c - z, aa, ab, ac, ad až postupně do šířky hesla. Ono se to třeba jednou povede. Je to časově velmi náročné a při vhodně zvolené délce hesla i skoro nezjistitelné. Čím více skupin znaků do hesla zahrnete, tím větší musí být skupina znaků, které se takto testují. Pokud je vaše heslo pouze číselné, ví útočník, že stačí prostřídat jen deset znaků (0 - 9). Pokud přidáte malá písmena, množství se změní na 36 (jestli dobře počítám, že znaků v abecedě je 26), přidáním velkých znaků počet roste na 62 a použitím speciálních znaků jako je spodní podtržítko (_), tečka (.) nebo vykřičník (!) se množství stále zvyšuje.

Krok 3 - Přístupová práva

Jedním ze způsobů, jak se pokusit (ano slovo pokusit je přesné, zabránit tomu opravdu nejde) hackerovi nic nedovolit je omezit přístup k souborům ve složkách, kde je Joomla nainstalována. Obvyklá rada zní - nastavte přístupová práva pomocí příkazu CHMOD na 777, což je plný a neomezený přístup ke všem souborům. To však může být velmi nebezpečné. Chce to ovšem hodně experimentování. I zde se v diskuzích objevili testeři, kteří potvrdili, že i při nastavení CHMOD 666 nebo i CHMOD 664 stránky jely jak měly. Zásada říká - CHMOD 777 používat jen tam, kde je to nezbytně nutné.

Univerzální rada proto neexistuje, ale jedna ze základních by mohla znít, že pokud se do souboru nemusí nic zapisovat, mělo by být toto právo omezeno. Minimálně to můžete udělat tak, že zakážete přístup do souboru configuration.php, což je hlavní "mozek nastavení" celého webového sídla.

Krok 4 - Instalace bezpečnostních aktualizací

Čas od času se někde objeví zrpráva, že ten a ten program obsahuje bezpečnostní díru a že její využití může vést k tomu, že útočník získá plnou kontrolu nad vaším počítačem. Hackery dělíme do několika skupin. Jsou ti slušní, kteří útok provedou a dají vám vědět, že nějaký problém máte. Další skupinou jsou ti, kteří útok provedou a na stránkách o tom dají nějak vědět. Třetí a horší skupnou jsou ti, kteří vaše stránky napadnou a něco na nich pozmění tak, aby to fungovalo jinak. Čtvrtou skupinou jsou ti, kteří veškerý obsah smažou a mají z toho radost. Poslední nejhorší skupinou jsou ti, kteří se sice nabourají k vám do počítače, ale stránky nepozmění a vše se tváří, že se nic nestalo. Kradou vám ale "strojový čas" a přenosové pásmo, takže třeba platíte svému ISP za přenesená data, která ale nepatří vám.. Mohou také nainstalovat  nějaký program, který skrz váš počítač rozesílá spam nebo řídí nějaké nelegální aktivity nebo FTP server na kterém je uložen warez.

Instalovat bezpečnostní záplaty se určitě vyplatí. Je nutno si však uvědomit, že aktualizovat nemůžete jen Joomlu! a musíte se podívat i na ostatní součásti systému jako je webový server, PHP, operační systém a v neposlední řadě i doinstalované komponenty třetích stran. Pokud provozujete něco serioznějšího, mělo by vaše oko alespoň jednou týdně spočinou na stránkách všech nainstalovaných součástí, zda není něco nového.

Má to také svůj rub. S každou nainstalovanou záplatou se systém může stát méně stabilní, takže to chce také trošku experimentovat a mít například testovací prostředí. Nasadit vše rovnou na ostrý server nemusí být u kritických aplikací zrovna to pravé. Je jasné, že komponenty systému či Joomly! starší než jeden rok mohou obsahovat chyby (a zpravidla obsahují), které mohou být těmi potřebnými vstupními vrátky pro hackera. Aktualizace se vyplatí, ale není dobré instalovat ihned každou záplatu, která se objeví. Chce to rozumný kompromis.

Krok 5 - Komponenty třetích stran

Vývojový tým Joomly! se může snažit sebevíc aby byla Joomla! bezpečná, nejzranitelnějším místem se v poslední době stávají komponenty třetích stran. A to je docela velký problém. Nikdy totiž nemůžete vědět, zda vývojář dané komponenty s bepečností počítá nebo ji zcela ignoruje. Existuje několik docela používaných technik, které komponenty používají (např. obligátní řádek defined( '_VALID_MOS' ) or die( 'Restricted access' );) a pokud je komponenta ignoruje, může to být problém.

Nikdy ovšem nevíte, odkud útok přijde. Zkušenosti několika posledních týdnů ukazují, že samotná Joomla! je celkem neprůstřelná, většina úkolů souvisela s několika komponentami, jejichž autoři prostě bezpečnost podcenili. Nejčastěji se mluví o :

  • Simpleboard
  • RS Gallery
  • ExtCalendar
  • PhpBB forum

Jak na to univerzálně nelze říci. Zodpovědný správce prostě neustále monitoruje různá fóra a domovské stránky komponent, které používá. Pokud jsou to vlastní výtvory, měl by sledovat trendy.

Krok 6 - Jak na to?

Bránit se 100% prostě nelze. Můžete se ovšem pokusit útokům předejít nebo se pokusit hackerům nedávat moc zbytečných šancí. Zde je výčet rad, které byste měli dodržet a hackeři se vám snad vyhnou:

  • nastavit správná přístupová práva souborům pomocí CHMOD
  • nastavit si celkem neprůstřelná přístupová hesla
  • kontrolovat systémové logy
  • obloukem se vyhnout komponentám, které neobsahují řádek defined( '_VALID_MOS' ) or die( 'Restricted access' );
  • vypnout Register Globals (nastavit jej na OFF)
  • naučit se využívat soubor .htaccess
  • u vyloženě komerčních webových sídel si nechat provést bezpečnostní audit
  • porvnávat obsah složek v čase tj. zda záhadně nepřibývají soubory nebo složky, což by mohlo nasvědčovat nekalým praktikám hackera

Jak jsem v článku několkrát zminil - boj s hackery je nekonečný. Oni jsou vždy o krok před vámi, protože nejdříve musí něco provést a vy se z toho poučit. Kroky zde jmenované by měly s velkou pravděpodobností útokům zabránit, nikdy však nemůžete říci, že je vyloučí. Vhodnou variantou je přenést část povinností na vašeho hostingového poskytovatele, který se může o aktualizace systémových součástí postarat (a většina jich to dělá).

Ochrana před hackery spočívá hlavně v rozkrývání jejich praktik a informování o tom, jak jejich jednání zabránit. Osobně vím, že hackování se vás netýká do chvíle, než jsou vaše stránky hacknuty. Diskuzní fóra mohou napomoci tomu, že se všichni pokusíme bránit jim v jejich "nekalých rejdech" a oni pak nebudou moci na svých aktivitách profitovat ať už finančně nebo profesně. Máte-li nějaký zajímavý názor, rádi jej v dskuzi pod článkem uvítáme.