Co jsou cookies, k čemu slouží a máme se jich bát?

Co jsou cookies, k čemu slouží a máme se jich bát?

V tomto blogu vám chceme popsat principy cookies ve webových prohlížečích a jak cookies souvisejí s IT bezpečností. Pokud je vám problematika cookies alespoň trochu známá, doporučujeme přejít přímo na kapitolu “Cookies z pohledu IT bezpečnosti”.

Co jsou to cookies?

Cookies si lze představit jako malé soubory, které se uloží na váš počítač nebo mobilní zařízení v případě, že tak určí webová stránka, kterou navštívíte. Tyto soubory obsahují informace o tom, ze které webové stránky pocházejí, jak dlouho mají být uloženy na vašem zařízení a také uchovávají nějakou hodnotu, například zvolený jazyk stránky. Moderní webové prohlížeče mají cookies implementovány ve formě SQLite databáze, přičemž jeden záznam v této databázi představuje jednu cookie.

Proč jsem najednou odhlášen na všech portálech po tom, co jsem si smazal cookies?

Internetové stránky většinou používají cookies k identifikaci uživatele. Když navštívíte stránku poprvé, vytvoří se cookie s hodnotou X, která je unikátní právě pro vaše zařízení (samozřejmě v praxi se používá hodnota s více znaky, aby ji nebylo možné uhodnout). Tato cookie se nazývá relační. Pokud tuto stránku navštívíte znovu, váš prohlížeč odešle relační cookie s hodnotou X a server s danou stránkou bude vědět, že jste to právě vy, protože pouze vaše relační cookie má hodnotu X.

Často najdete na stránkách s přihlašovacím formulářem možnost “zůstat přihlášen”. Pokud potvrdíte tuto možnost, tak stačí, že se při příští návštěvě této stránky prokážete vaší relační cookie a server vás přihlásí automaticky bez nutnosti opětovného zadání přihlašovacího jména a hesla. Pokud si ale smažete cookies pro tuto stránku, tak při nejbližší návštěvě se už váš prohlížeč nedokáže prokázat relační cookie a tak vás server nepřihlásí automaticky. Musíte tedy znovu zadat vaše přihlašovací jméno a heslo.

Co když nechci používat cookies?

V případě, že nechcete používat cookies, můžete si je jednoduše vypnout v nastavení vašeho oblíbeného webového prohlížeče. V takovém případě vám ale několik internetových stránek nepůjde, protože podporu cookies vyžadují. Pokud nechcete, aby nějaká stránka ukládala na vašem zařízení cookies, doporučujeme ji navštívit v tzv. “Inkognito módu” vašeho prohlížeče. Prohlížeč v tomto módu sice podporuje cookies, ale jakmile ho zavřete, tak se všechny vytvořené cookies smažou.

Cookies z pohledu IT bezpečnosti

Jak jsme již zmínili, díky cookies se můžeme identifikovat vůči nějaké webové stránce. Pokud by tedy útočník dokázal získat vaši relační cookie, jednoduše si ji dokáže importovat do svého prohlížeče, navštíví stránku, pro kterou je tato cookie určena a tím získá přístup do vašeho účtu na stránce. Samozřejmě to platí pouze za předpokladu, že jste na této stránce zůstali přihlášeni. V opačném případě útočník musí počkat, dokud se na stránku přihlásíte a musí doufat, že vaše relační cookie se po přihlášení nezměnila.

Naštěstí cookies, které určují naši identitu na webových stránkách, jsou dostatečně dlouhé a mají dostatečnou entropii. Útočník je jen tak lehce neuhodne. Rovněž jsou chráněny webovými principy bezpečnosti, jakým je například “Same Origin Policy”. Tento princip říká, že stránka A dokáže číst a nastavovat cookies pro stránku B, pouze pokud jsou tyto stránky na stejné doméně, přistupujeme k nim na stejném portu a se stejným protokolem.

V praxi to znamená, že pokud máte na vaší stránce iframe z domény facebook.com (například “like button”), tak tento iframe nedokáže číst cookies, které byly nastaveny vaší stránkou (samozřejmě, pokud vaše stránka sídlí na doméně facebook.com, tak to není úplně pravda).

Co u cookies znamenají příznaky Secure a HttpOnly?

Přestože bezpečnostní model cookies je navržen zcela rozumně, existují útoky, pomocí kterých lze cookies ukrást. V případě útoku MITM (Man in the middle) dokáže útočník odchytávat komunikaci mezi klientem a serverem, čímž dokáže ukrást i cookies. V případě, že je tato komunikace šifrovaná pomocí protokolu HTTPS, útočník neumí získat hodnotu ukradených cookies.

Problémem je, když server sice podporuje komunikaci přes HTTPS, ale uživatel použije HTTP protokol. Navštíví tedy stránku http://stranka.sk a spolu s požadavkem na server jeho prohlížeč odešle i cookies, které útočník dokáže odchytit a získat jejich obsah. Příznak Secure u cookie slouží k tomu, aby prohlížeč spolu s požadavkem na server poslal i danou cookie pouze v případě, že komunikace je šifrována pomocí protokolu HTTPS.

Cookies lze ukrást i pomocí útoku XSS (Cross Site Scripting). Tento útok spočívá v tom, že oběť nevědomě provede podstrčený JavaScriptový kód. Tento kód může například poslat útočníkovi získané cookies, jelikož z JavaScriptu k nim umíme jednoduše přistupovat. Tento scénář však lze jednoduše vyřešit tím, že relačním a jiným důležitým cookies nastavíme příznak “HttpOnly”. Tento příznak určuje, že danou cookie je možné číst pouze na straně serveru.

O autorovi

Citadelo
Citadelo
Citadelo je dům plný etických hackerů na vaší straně. Myslíme jako útočník, avšak nezneužíváme toho. Ba naopak, naším hlavním cílem je odhalit zranitelnost bez napáchaných škod. Pro naše klienty připravujeme simulované útoky již od roku 2006. Pomáháme otestovat jejich informační bezpečnost. Podrobte své IT prostředí výzvě a odhalte, do jaké míry jsou vaše citlivá data chráněna.
Zobrazit více od autora

Podobné blogy