co-su-cookies

Čo sú cookies, na čo slúžia a máme sa ich báť?

V tomto blogu vám chceme popísať princípy cookies vo webových prehliadačoch a ako cookies súvisia s IT bezpečnosťou. Ak je vám problematika cookies aspoň trochu známa, odporúčame prejsť priamo na kapitolu „Cookies z pohľadu IT bezpečnosti“.

Čo sú to cookies?

Cookies si možno predstaviť ako malé súbory, ktoré sa uložia na váš počítač alebo mobilné zariadenie v prípade, že tak určí webová stránka, ktorú navštívite. Tieto súbory obsahujú informácie o tom, z ktorej webovej stránky pochádzajú, ako dlho majú byť uložené na vašom zariadení a taktiež uchovávajú nejakú hodnotu, napríklad zvolený jazyk stránky. Moderné webové prehliadače majú cookies implementované vo forme SQLite databázy, pričom jeden záznam v tejto databáze predstavuje jednu cookie.

Prečo som zrazu odhlásený na všetkých portáloch po tom, čo som si zmazal cookies?

Internetové stránky väčšinou používajú cookies na identifikáciu používateľa. Keď prídete na stránku prvýkrát, vytvorí sa cookie s hodnotou X, ktorá je unikátna práve pre vaše zariadenie (samozrejme v praxi sa používa hodnota s viacerými znakmi, aby ju nebolo možné uhádnuť). Táto cookie sa nazýva relačná. Ak túto stránku navštívite znovu, váš prehliadač odošle relačnú cookie s hodnotou X a server s danou stránkou bude vedieť, že ste to práve vy, pretože iba vaša relačná cookie má hodnotu X.

Často nájdete na stránkach s prihlasovacím formulárom možnosť „zostať prihlásený“. Ak potvrdíte túto možnosť, tak stačí, že sa pri ďalšej návšteve tejto stránky preukážete vašou relačnou cookie a server vás prihlási automaticky bez nutnosti opätovného zadania prihlasovacieho mena a hesla. Ak si ale zmažete cookies pre túto stránku, tak pri najbližšej návšteve sa už váš prehliadač nedokáže preukázať relačnou cookie a tak vás server neprihlási automaticky. Musíte teda znovu zadať vaše prihlasovacie meno a heslo.

Čo ak nechcem používať cookies?

V prípade, že nechcete používať cookies, môžete si ich jednoducho vypnúť v nastaveniach vášho obľúbeného webového prehliadača. V takomto prípade vám ale viaceré internetové stránky nepôjdu, pretože podporu cookies vyžadujú. Ak nechcete, aby nejaká stránka ukladala na vašom zariadení cookies, odporúčame ju navštíviť v tzv. „inkognito móde“ vášho prehliadača. Prehliadač v tomto móde síce podporuje cookies, ale hneď ako ho zatvoríte, tak sa všetky vytvorené cookies zmažú.

Cookies z pohľadu IT bezpečnosti

Ako sme už spomínali, vďaka cookies sa môžeme identifikovať voči nejakej webovej stránke. Ak by teda útočník dokázal získať vašu relačnú cookie, jednoducho si ju dokáže importovať do svojho prehliadača, navštívi stránku, pre ktorú je táto cookie určená a tým získa prístup do vášho konta na stránke. Samozrejme platí to iba za predpokladu, že ste na tejto stránke zostali prihlásený. V opačnom prípade útočník musí počkať, kým sa na stránku prihlásite a musí dúfať, že vaša relačná cookie sa po prihlásení nezmenila.

Našťastie cookies, ktoré určujú našu identitu na webových stránkach, sú dostatočne dlhé a majú dostatočnú entropiu. Útočník ich len tak ľahko neuhádne. Taktiež sú chránené webovými princípmi bezpečnosti, akým je napríklad „Same Origin Policy“. Tento princíp hovorí, že stránka A dokáže čítať a nastavovať cookies pre stránku B, iba ak sú tieto stránky na rovnakej doméne, pristupujeme k nim na rovnakom porte a s rovnakým protokolom.

V praxi to znamená, že ak máte na vašej stránke iframe z domény facebook.com (napríklad „like button“), tak tento iframe nedokáže čítať cookies, ktoré boli nastavené vašou stránkou (samozrejme, ak vaša stránka sídli na doméne facebook.com, tak to celkom nie je pravda).

Čo pri cookies znamenajú príznaky Secure a HttpOnly?

Napriek tomu, že bezpečnostný model cookies je navrhnutý celkom rozumne, existujú útoky, pomocou ktorých je možné cookies ukradnúť. V prípade útoku MITM (Man in the middle) dokáže útočník odchytávať komunikáciu medzi klientom a serverom, čím dokáže ukradnúť aj cookies. V prípade, že je táto komunikácia šifrovaná pomocou protokolu HTTPS, útočník nevie jednoducho získať hodnotu ukradnutých cookies.

Problémom je, keď server síce podporuje komunikáciu cez HTTPS, ale používateľ použije HTTP protokol. Navštívi teda stránku http://stranka.sk a spolu s požiadavkou na server jeho prehliadač odošle aj cookies, ktoré útočník dokáže odchytiť a získať ich obsah. Príznak Secure pri cookie slúži na to, aby prehliadač spolu s požiadavkou na server poslal aj danú cookie iba v prípade, že komunikácia je šifrovaná pomocou protokolu HTTPS.

Cookies je možné ukradnúť aj pomocou útoku XSS (Cross Site Scripting). Tento útok spočíva v tom, že obeť nevedome vykoná podstrčený JavaScriptový kód. Tento kód môže napríklad poslať útočníkovi získané cookies, keďže z JavaScriptu k nim vieme jednoducho pristupovať. Tento scenár však možno jednoducho vyriešiť tým, že relačným a iným dôležitým cookies nastavíme príznak „HttpOnly“. Tento príznak určuje, že danú cookie je možné čítať iba na strane servera.

O autorovi

Tomáš Melicher
Etický hacker
Pár rokov som pracoval ako web developer na rozsiahlych projektoch pre verejnú správu a finančný sektor. Na vyvíjaný softvér som sa vždy snažil pozrieť s akýmsi nadhľadom v zmysle "čo ak by to chcel niekto pokaziť". Tento prístup má postupne priviedol do Citadelo, kde robíme plno zaujímavých vecí. Keď práve nehackujem nejakú banku, tak ma môžete nájsť pri pingpongovom stole alebo cvičiť na nejakej preliezke.
Zobraziť viac od autora

Podobné blogy

Bezpečnosť na internete - Viete sa správať v online priestore bezpečne?

blog |
Priemerný človek strávi na internete každý deň 3 hodiny a 20 minút. Okrem užitočných informácií a zábavy ale na nás čaká v online svete aj veľké množstvo hrozieb.
Zobraziť

Citadelo na novom a ešte bezpečnejšom webe

Blog | | Michaela Gallee
Naša požiadavka na bezpečný web sa môže niekomu zdať prehnaná, nie sme predsa svetová banka. To však nič nemení na tom, že našou víziou je bezpečný internet a preto naša priorita bola kladená na bezpečnosť.
Zobraziť

Ako si objednať pentest- kompletný návod

Blog | | Martin Hanic
Hoci ľuďom z IT bezpečnostnej branže môže táto otázka pripadať rovnako triviálna ako "Ako si objednať nabíjačku na telefón", pre mnohých však spísanie objednávky na pentest predstavuje podobnú úlohu ako navrhnutie jadrovej elektrárne.
Zobraziť

Hackeri radia ako ukryť svoju identitu v online prostredí

Blog | | Citadelo
Potreba ochrany svojho súkromia v spoločnosti existuje od nepamäti, no s príchodom moderných komunikačných prostriedkov nabrala nový rozmer. O svoje súkromie na internete dbala donedávna len veľmi malá skupina ľudí.
Zobraziť