Že se vám to nestane? :DDDDDDD
Při správě více než 300 webů se mi čas od času přihodí různé mimořádné situace. Někdy bývají dost vyhrocené, často jde však o naprostou banalitu. Pokud vás taky jako mně někdy v minulosti zlákalo programování a taky už dávno víte, že programování je bolest, určitě mi dáte za pravdu.
Když se webová aplikace stane populární, stane se lákavým cílem hackerů. Jejich motivace obvykle není shodit celý web, ba právě naopak. Ve skutečnosti hackeři chtějí, abyste o nich jako správci serveru vůbec nevěděli. Dobrý hacker dlouhé měsíce vyčkává, pozoruje webový server a získává to nejcennější - vaše data.
Abyste své uživatele ochránili, je naprosto nezbytné veškerá data šifrovat a mít více úrovní ochran. Pro hesla používejte některou z pomalých funkcí, jako je například Bcrypt + salt, Argon2, PBKDF2 nebo Scrypt. O hodnocení bezpečnosti už psal Michal Špaček, kterému tímto děkuji za doplnění článku. Jako majitel webu musíte při diskusi s programátorem na správném hashování hesel trvat. Jinak vás čeká pláč stejně, jako řadu lidí před vámi, kteří si také nalhávali, že se jich to netýká.
Vypozoroval jsem, že pokud webový server dosáhne určité hranice návštěvnosti (v České republice to je přibližně nad 50 návštěvníků denně), začne na něj z ničeho nic mířit série útoků. Aby to nebylo lehké, tak má útočník vždy výhodu, protože si může vybrat, na kterou část infrastruktury začne útočit a vy - jako majitel webového serveru - to musíte včas poznat, ubránit a příště se na to lépe připravit.
Kolik na vás mířilo útoků třeba za poslední měsíc? Víte to přesně? Kolik z nich jste ubránili? Má k serveru přístup ještě někdo další?
Co když na vás někdo útočí právě teď? A teď taky... a teď taky...?
Bohužel neexistuje jeden správný univerzální postup, jak útok poznat. Existují však nástroje, které vám dají významnou výhodu.
Co se mi za poslední dobu nejvíc osvědčilo:
Ve skutečnosti chybují i velké firmy a to i na banalitách, jako je útok XSS (cross-site scripting).
Otázka totiž není, jestli vám někdy někdo prolomí web. Otázka je, kdy to bude a jestli budete dostatečně připraveni to řešit. Možná má už hacker přístup do vašeho serveru celé měsíce a vy o tom (zatím) nevíte.
V okamžiku, kdy se o práci hackera dozvíte, je obvykle pozdě a hacker udělal vše, co potřeboval. Velmi pravděpodobně umístil do celého serveru malware a má nad strojem aspoň částečnou kontrolu.
Jedná se o chaotický typ problému a je potřeba jednat rychle.
Protože se jedná o poslední fázi napadení, osobně doporučuji webový server úplně odpojit od internetu a začít postupně zjišťovat, co vše se stalo. Navíc nikdy nebudeme přesně vědět, jestli server neukrývá ještě něco dalšího. Útočník má vždycky značný náskok.
Pokud se rozhodneme na server vrátit poslední funkční zálohu, tak útočníkovi velmi pomůžeme. Ten totiž už zná způsob, jak prolomit váš server a nic mu nebrání v tom, aby to udělal za několik hodin znovu. Navíc záloha pravděpodobně obsahuje malware nebo jiný typ viru.
Ačkoli to je mezi mými klienty velmi nepopulární varianta, tak osobně vždy jako první doporučuji úplně smazat WordPress weby, resp. všechny systémy, které klient neaktualizuje a které mají hodně bezpečnostních hrozeb. Pokud například na jednom serveru hostujete 30 webů se stářím více než 2 roky, máte prakticky jistotu, že minimálně jeden obsahuje nějakou formu zranitelnosti.
Pokud problematice nerozumíte, raději včas kontaktujte vhodného specialistu, který má hluboké znalosti ve vaší problematice a chápe věci v širokém kontextu.
Etická poznámka:
Pokud spravujete web pro klienta, kterému se stal bezpečnostní incident, je vaší povinností ho o tom informovat. Pokud uniknou nějaká data (například hesla, často ale mnohem víc), je nutné informovat také koncové uživatele, že je jejich heslo veřejně známé a měli by si ho všude změnit. Pokud používáte pomalou hashovací funkci (například Bcrypt + salt), tak útočníkovi významným způsobem zkomplikujete prolomení hesel. (Bohužel lze cracknout i hesla v Bcryptu). Pokud si přejete dostávat pravidelné informace o tom, jestli váš účet někde unikl, doporučuji mít registraci ve službě Have i been pwned?. Další informace o porušení zabezpečení najdete na stránkách ÚOOÚ.
V posledním půl roce jsem dočetl knihu Atomové návyky, která mi otevřela oči. Popisuje proces postupného 1% zlepšení každý den, které v dlouhodobém měřítku udělá hodně.
Protože se na mě obrací firmy i jednotlivci v různých fázích technologického dluhu, rád bych souhrnně prošel ty nejhorší věci:
noindex
a nofollow
, aby to nezaindexoval Google. Citlivý obsah, který nesmí znát vaše konkurence musí být zabezpečen heslem.Dalších chyb existuje ještě celá řada a problémy se liší podle konkrétního projektu. Pokud potřebujete provést rychlou kontrolu serveru, doporučuji použít nástroj Maldet a poté si najmou vhodného specialistu, který vám pomůže provést kompletní audit webu a to nejen z důvodu bezpečnosti.
Bezpečnostní techniky jsou jako plasty v oceánu - prostě na vždycky. Zvykejte si.
Určitě jste si také všimli, že příroda používá prakticky vždy reakční princip. To znamená, že se něco v určitém prostředí stane a okolní organismy na to různě reagují. Tento přístup má řadu výhod, ale jednu obrovskou nevýhodu - vždycky budete pozadu.
Jako myslící člověk (projekťák, vývojář, konzultant) máte skvělou výhodu, a to být akční - tedy znát předem určitou část velkých rizik a aktivně zabránit tomu, aby se vůbec nestaly. Sice nikdy nezabráníte všem průšvihům, ale můžete následky aspoň zmírnit, nebo vybudovat takové kontrolní mechanismy, které problémy včas odhalí, abyste získali čas reagovat.
Většina útoků probíhá dlouhou dobu a pokud logujete, obvykle budete mít dost času problém odhalit.
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Nabízím trénink vývojářů, konzultace, školení a analýzu návrhových vzorů. Osobně v Praze nebo online.
Napište mi, pokud si nevíte rady.
Lektor: Jan Barášek
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | cs