Web11: HTTP Cookies a některé bezpečnostní problémy

Web11: HTTP Cookies a některé bezpečnostní problémy

1. Úvod

Cookie , nebo HTTP cookie, web cookie, cookie prohlížeče je malá část dat odeslaná z webové stránky a uložená v prohlížeči uživatele při procházení této webové stránky. Pokaždé, když uživatel načte webovou stránku, prohlížeč automaticky odešle soubory cookie na webový server, aby upozornil web na předchozí akce uživatele.

Soubory cookie jsou navrženy jako spolehlivý mechanismus, který pomáhá webovým stránkám zapamatovat si informace o stavu (jako jsou položky v nákupním košíku) nebo ukládat aktivity uživatele (včetně kliknutí), odkaz, přihlašovací údaje, stránky navštívené během týdne, měsíce nebo roku,... ).

Přestože soubory cookie nemohou přenášet viry ani nemohou instalovat malware do vašeho počítače, použití sledovacích souborů cookie a zejména souborů cookie třetích stran je považováno za způsob, jak identifikovat osobní údaje z historie prohlížení uživatelů. Soubory cookie mohou ukládat hesla nebo obsah, který uživatelé zadávají do html formulářů, jako jsou čísla kreditních karet nebo osobní adresy.

Když uživatel poprvé navštíví webovou stránku, odešle se cookie z webového serveru do prohlížeče a uloží se do jeho počítače. Poté, když se vrátí na webovou stránku, webová stránka ho rozpozná díky informacím uloženým v cookie.

Autentizační soubory cookie jsou běžnou metodou používanou k určení, zda je uživatel na webové stránce přihlášen či nikoli. Bez takového mechanismu bude pro web obtížné vědět, kdy má uživateli odeslat osobní údaje, a donutit uživatele k vícenásobnému přihlášení. Autentizační soubory cookie, i když jsou velmi pohodlné, vytvářejí příležitosti pro hackery číst citlivá data v souborech cookie, a tím provádět akce, které poškozují uživatele.

2. Přehled HTTP Cookies

2.1. Dějiny

Termín cookie je odvozen od termínu magické cookie, což je neměnná část dat odeslaná a přijatá počítačovým programem. Programátor jménem Lou Montuli přišel s nápadem používat magické cookies ve webové komunikaci v roce 1994. V té době pracoval pro Netscape Communications na projektu vývoje aplikací pro e-commerce pro MCI. Soubory cookie byly použity jako řešení při vytváření virtuálních nákupních košíků, které serverům MCI pomáhají, aby nemusely ukládat stav transakcí, ale místo toho se ukládají na počítač uživatele.

Společně s Johnem Giannandreou napsal Montuli první specifikaci souborů cookie Netscape. Verze 0.0beta Mosaic Netscape, vydaná 13. října 1994, podporovala soubory cookie. První použití cookies (mimo laboratoř) zkontrolovalo, zda zákazník navštěvující webovou stránku Netscape již dříve navštívil či nikoli. Montuli získal patent na soubory cookie v roce 1995. A Internet Explorer verze 2 (vydaný v říjnu 1995) začlenil použití souborů cookie.

Zavedení cookies nebylo v této době rozšířené. Zejména cookies jsou standardně přijímány, uživatelé nejsou o jejich přítomnosti upozorňováni. Veřejnost se o cookies dozvěděla až poté, co o nich 12. února 1996 vyšel článek ve Financial Times. Od té doby se cookies těší velké pozornosti, zejména soukromým informacím v nich obsaženým. Soubory cookie byly diskutovány na dvou slyšeních americké Federální obchodní komise v letech 1996 a 1997.

První diskuse o formální specifikaci souborů cookie začala v dubnu 1995. Za účelem provedení této práce byla vytvořena zvláštní skupina v rámci Internet Engineering Task Force (IETF). Specifikace byla konečně publikována skupinou v únoru 1997. Specifikace definovala soubory cookie třetích stran jako buď nepřijatelné pro všechny, nebo alespoň jako výchozí povoleny. V dubnu 2011 byla v dokumentu RFC 6265
zveřejněna standardní specifikace pro soubory cookie v praxi .

2.2. Terminologie

Soubory cookie relací

Soubory cookie relace, nazývané také soubory cookie v paměti nebo dočasné soubory cookie, existují pouze v dočasné paměti, když uživatel přejde na webovou stránku. Pokud není v době vytvoření souboru cookie nastaveno datum vypršení platnosti nebo interval platnosti, bude nastaven soubor cookie relace. Za normálních okolností webové prohlížeče automaticky odstraní soubory cookie relace, když uživatel zavře prohlížeč.

Trvalé soubory cookie

Trvalé soubory cookie prodlužují relaci uživatele. Pokud je trvalý soubor cookie nastaven na maximální věk 1 rok, pak během tohoto období bude počáteční hodnota nastavená v souboru cookie odeslána serveru pokaždé, když uživatel navštíví webovou stránku. Lze jej použít k zaznamenání důležitých informací, například jak uživatel poprvé navštívil web. Z tohoto důvodu se trvalé soubory cookie také nazývají sledovací soubory cookie.

Zabezpečené soubory cookie

Secure cookie je bezpečnostní atribut povolený při používání HTTPS, který zajišťuje, že cookie je vždy zašifrována při přenosu z klienta na server, což pomáhá zabránit odposlechu a odhalení informací. Kromě toho musí všechny soubory cookie splňovat zásady stejného původu prohlížeče.

Soubory cookie HttpOnly

Atribut souborů cookie HttpOnly podporuje většina prohlížečů. Soubor cookie relace HttpOnly bude použit pouze v jednom požadavku HTTP (nebo HTTPS), čímž se omezí přístup jiným než HTTP API, jako je Javascript. Toto omezení zmírňuje, ale neeliminuje krádež souborů cookie prostřednictvím chyb zabezpečení Cross-site scripting (XSS).

Soubory cookie třetích stran

Cookies první strany jsou soubory cookie patřící do stejné domény (nebo subdomén v rámci stejné domény) zobrazené v adresním řádku prohlížeče. Soubory cookie třetích stran jsou soubory cookie patřící různým doménám zobrazeným v adresním řádku prohlížeče. Webové stránky mohou mít obsah z domén třetích stran (např. bannerové reklamy), ze kterých lze sledovat historii procházení uživatelů. Většina nastavení ochrany osobních údajů prohlížečů blokuje sledovací soubory cookie třetích stran.

Předpokládejme například, že uživatel navštíví web example1.com . Tento web obsahuje reklamu z ad.foxytracking.com. Po načtení se soubory cookie ad.foxytracking.com uloží. Poté navštíví další webovou stránku (example2.com), která také obsahuje reklamu z ad.foxytracking.com, a ta také nastaví cookie patřící k ad.foxytracking.com. Nakonec budou oba tyto soubory cookie odeslány inzerentovi při načítání reklam nebo přístupu na jejich webové stránky. Inzerenti mohou tyto soubory cookie použít k vytvoření historie procházení uživatele na všech webových stránkách obsahujících jejich reklamy.

V roce 2014 existovalo několik webových stránek, které nastavovaly soubory cookie, které bylo možné číst více než 100 doménami třetích stran. V průměru bude mít webová stránka nastaveno asi 10 souborů cookie, přičemž maximální počet souborů cookie je vyšší než 800.

Supercookie

Supercookie je soubor cookie pocházející z domény nejvyšší úrovně, jako je .com, nebo veřejná přípona, jako je .co.uk. Je důležité, aby byly supercookies blokovány prohlížeči kvůli některým bezpečnostním problémům. Pokud dojde k odblokování, může útočník ovládající škodlivý web nastavit supercookie, aby se mohl vydávat za požadavky uživatelů a odesílat požadavky na jiné weby sdílející stejnou doménu nejvyšší úrovně nebo veřejnou příponu. Například supercookie pocházející z domény .com by mohl poškodit požadavky na example.com, i když soubor cookie nepocházel z example.com. Lze jej zneužít k falešným přihlášením nebo změně uživatelských informací.

Zombie sušenky

Zombie cookies jsou cookies, které se automaticky znovu vytvoří poté, co je uživatel smaže. To se provádí skriptem, který ukládá obsah souboru cookie na jiné místo, jako je úložiště obsahu Flash, úložiště HTML5 nebo jiný mechanismus na straně klienta.

2.3. Struktura souborů cookie

Soubor cookie o velikosti 4 kB obsahuje 7 hlavních součástí:

  1. název
  2. Hodnota
  3. Vyprší (datum vypršení platnosti)
  4. Cesta (cesta k platnému souboru cookie, „/“ znamená, že soubor cookie je platný na jakékoli cestě)
  5. Doména
  6. Zajistit
  7. Pouze HTTP

První dvě složky (název a hodnota) jsou povinné.

2.4. Použití

Správa relace

Soubory cookie lze použít k udržování údajů souvisejících s uživatelem při více návštěvách webových stránek. Soubory cookie jsou řešením pro vytvoření nákupního košíku, virtuálního nákupního košíku, který uživatelům pomáhá ukládat položky, které si vyberou při procházení produktů.

Současné aplikace nákupních košíků často ukládají seznam položek v košíku do databáze na straně serveru, místo aby jej ukládaly do souboru cookie na straně klienta. Webový server normálně odešle cookie obsahující identifikátor relace – ID relace (které je jedinečné). Webový prohlížeč vrátí toto ID relace s každým uživatelským nákupním požadavkem.

Umožnění uživatelům přihlásit se na webové stránky je další aplikací souborů cookie. Normálně při prvním přihlášení webový server odešle klientovi cookie obsahující ID relace. Uživatelé odešlou své informace a webová aplikace ověří relaci a poté umožní uživateli používat její služby.

Soubory cookie poskytují rychlý a pohodlný mechanismus interakce klient/server. Jednou z výhod souborů cookie je, že ukládají informace o uživateli do souboru umístěného v počítači uživatele. To výrazně snižuje úložný prostor serveru a dobu zpracování.

Personalizované

Soubory cookie lze použít k zapamatování osobních údajů uživatele, když navštíví webovou stránku, k zobrazení relevantnějšího obsahu tomuto uživateli pokaždé, když web znovu navštíví.

Výrazným příkladem je funkce doporučení knih na webu amazon.com. Když uživatel klikne na knihu, Amazon mu navrhne další knihy, které by si měl uživatel prohlédnout. Tyto návrhy jsou založeny na tom, které knihy si uživatelé dříve prohlíželi a které knihy se rozhodli zakoupit.

Dalším příkladem je funkce návrhů vyhledávání ve Vyhledávání Google. Když se přihlásíte pomocí svého osobního účtu a provedete vyhledávání, Google bude poskytovat návrhy „jen pro vás“ a požadované výsledky se vždy zobrazí na začátku seznamu.

Monitor

Sledovací soubory cookie lze použít ke sledování historie procházení uživatele. To lze také provést pomocí adresy IP počítače, který odesílá požadavek na webovou stránku, nebo se spoléhat na pole Referrer v záhlaví požadavku HTTP, ale soubory cookie poskytují větší přesnost. To se provádí následovně:

  1. Pokud uživatel navštíví webovou stránku, ale tento požadavek neobsahuje soubor cookie, server bude předpokládat, že toto je první návštěva uživatele na této webové stránce; Server vygeneruje náhodný řetězec a odešle jej jako cookie zpět do prohlížeče spolu s požadovanou webovou stránkou.
  2. Od tohoto okamžiku bude prohlížeč cookie automaticky odesílat na server pokaždé, když je požadována nová webová stránka na této webové stránce, server vrátí požadovanou webovou stránku jako obvykle, ale s adresou URL této webové stránky a Přístup bude uložen do souboru protokolu. Analýzou informací uložených v tomto souboru protokolu bude odhalena historie prohlížení, často navštěvované webové stránky a zvyky při prohlížení.

2.5. Rozvinutí

Web11: HTTP Cookies a některé bezpečnostní problémy

Cookies jsou data odesílaná ze serveru do prohlížeče. Prohlížeč jej poté odešle zpět na server, aniž by změnil obsah uvnitř, pokaždé, když uživatel odešle požadavek na webovou stránku. Soubory cookie lze nastavit také skriptovacím jazykem, jako je Javascript.

Každý webový prohlížeč může uložit minimálně 300 cookies do 4KB souboru a minimálně 20 cookies na server nebo doménu.

Nastavte soubory cookie

Webový server a prohlížeč spolu komunikují prostřednictvím HTTP (HyperText Transfer Protocol). Například pro přístup na stránku http://www.example.org/index.html se prohlížeč připojí k serveru odesláním požadavku HTTP, jako je tento:

Web11: HTTP Cookies a některé bezpečnostní problémy

Server odpoví zasláním jednoduchého textového paketu prohlížeči, který se nazývá HTTP odpověď. Tento paket může obsahovat řádek obsahující obsah souboru cookie:

Web11: HTTP Cookies a některé bezpečnostní problémy

Set-Cookie je pole, které dává prohlížeči pokyn, aby soubor cookie uložil a odeslal jej na server v budoucnu pokaždé, když na server dojde k požadavku (pokud cookie stále vypršela). Prohlížeč například odešle požadavek na adresu http://www.example.org/spec.html odesláním požadavku HTTP takto:

Web11: HTTP Cookies a některé bezpečnostní problémy

Toto je požadavek na jinou stránku patřící ke stejnému serveru. V tomto případě server pochopí, že tento požadavek souvisí s předchozím požadavkem, a odpoví odesláním požadované webové stránky do prohlížeče, případně přidáním dalších hodnot cookie.

Hodnotu cookie může server upravit odesláním pole Set-Cookie: název=hodnota v HTTP odpovědi do prohlížeče. Prohlížeč poté nahradí starou hodnotu souboru cookie touto novou hodnotou.

Hodnota cookie může obsahovat jakýkoli tisknutelný znak ASCII kromě „,“, „;“ a bílé místo. Názvy souborů cookie také nemohou obsahovat znak '=', protože to je znak, který odděluje název a hodnotu.
Termín drobenka se někdy používá k označení dvojice název-hodnota souboru cookie.

Soubory cookie mohou být také nastaveny pomocí Javascriptu nebo podobného skriptovacího jazyka. V Javascriptu se k nastavení cookies používá objekt document.cookie. Atribut HttpOnly je zodpovědný za zabránění špatným skriptům ve čtení obsahu cookie.

Vlastnosti souborů cookie

Kromě dvojice název-hodnota může server nastavit také řadu dalších vlastností cookie: Domain, Path, Expirse, Max-Age, Secure a HttpOnly. Prohlížeč tyto atributy nepošle serveru, pouze odešle pár název-hodnota. Tyto atributy používá prohlížeč k určení, kdy smazat soubory cookie, zablokovat soubory cookie nebo odeslat soubory cookie na server.

Doména a cesta

Doména a cesta určují rozsah souboru cookie. Umožňují prohlížeči určit, kdy má odeslat soubory cookie na server. Pokud není zadán, použijí výchozí doménu a cestu požadovaného objektu. Existuje však rozdíl mezi souborem cookie pro foo.com bez atributu domain a souborem cookie s atributem domain foo.com. V prvním případě bude soubor cookie odeslán pouze v případě požadavku na foo.com. V druhém případě bude soubor cookie odeslán do všech subdomén foo.com. Následuje příklad direktivy Set-Cookie z webové stránky po přihlášení uživatele, z požadavku na docs.foo.com:

Web11: HTTP Cookies a některé bezpečnostní problémy

První LSID souboru cookie nemá atribut domény a má cestu /accounts. Prohlížeč odešle soubory cookie pouze tehdy, když je požadovaná stránka obsažena na docs.foo.com/accounts. Zbývající dva soubory cookie, HSID a SSID, jsou odeslány zpět na server, pokud existuje požadavek na jakoukoli subdoménu foo.com.
Cookies lze také nastavit pouze pro top doménu a její subdomény. Nastavení cookies na www.foo.com z www.bar.com nebude z bezpečnostních důvodů povoleno.

Vyprší a Max-Age

Atribut Expires říká prohlížeči, kdy má soubor cookie smazat. Datum v Expires vypadá takto: „Wdy, DD Mon YYYY HH:MM:SS GMT“. Max-Age se také používá k označení data vypršení platnosti souboru cookie. Podívejme se na následující příklad:

Web11: HTTP Cookies a některé bezpečnostní problémy

Platnost prvního souboru cookie je nastavena na 15. ledna 2013 a prohlížeč jej použije po uplynutí této doby. Platnost druhého souboru cookie made_write_conn nevyprší a používá se jako soubor cookie relace, bude smazán po vypnutí prohlížeče. Třetí cookie reg_fb_gate, má datum vypršení platnosti v minulosti, bude okamžitě smazáno.

Zabezpečené a pouze HTTP

Vlastnosti Secure a HttpOnly jsou null, místo toho jejich přítomnost znamená, že jsou použity báze Secure a HttpOnly.

Atribut Secure udržuje přenos souborů cookie v rámci šifrovaného připojení. Pokud webový server nastaví cookie s atributem secure z nezabezpečeného připojení, může být cookie stále zachycena útokem typu man-in-the-middle.

Atribut HttpOnly dává prohlížeči pokyn, aby nevystavoval soubory cookie prostřednictvím jiného připojení než HTTP (nebo HTTPS), jako je Javascript, a proto ztěžuje získávání souborů cookie zneužíváním chyb zabezpečení Cross-Site Scripting (XSS).

3. Některé bezpečnostní problémy při používání cookies

Pokud webová stránka používá ID relace k identifikaci relace uživatele, útočník by mohl ukrást soubor cookie a vydávat se za uživatele. Zde jsou některé běžné scénáře krádeže souborů cookie:

Odposlechy

Web11: HTTP Cookies a některé bezpečnostní problémy

Provoz v síti může zachytit a přečíst třetí strana (jiná než příjemce a odesílatel). Tento provoz zahrnuje soubory cookie. Pokud přenos není zašifrován, může útočník číst citlivé informace obsažené v cookie. A s využitím těchto informací se útočníci budou vydávat za uživatele, aby provedli nebezpečné akce, jako jsou bankovní transakce.

Tento problém lze vyřešit použitím zabezpečeného protokolu mezi počítačem uživatele a serverem – protokolem HTTPS. Server může při nastavování cookies použít příznak Secure. Soubor cookie pak bude odeslán pouze přes šifrovaný kanál, jako je připojení SSL.

Skriptování napříč weby

Web11: HTTP Cookies a některé bezpečnostní problémy

Skriptovací jazyky, jako je Javascript, mohou číst hodnoty souborů cookie a odesílat je na libovolné servery.

Předpokládejme, že web má chybu skriptování mezi weby, hackeři mohou vložit škodlivý kód, například následující:

Web11: HTTP Cookies a některé bezpečnostní problémy

Když oběť klikne na výše uvedený odkaz, prohlížeč spustí skript v atributu onclick: odešle cookie oběti na server attacker.com.

Cross-site scripting je jednou z běžných zranitelností webových stránek (v roce 2013 se umístil na třetím místě v top 10 nejčastějších zranitelnosti – podle OWASP).

Riziko této chyby zabezpečení lze omezit nastavením příznaku HttpOnly pro soubory cookie. V té době nebudou soubory cookie přístupné skriptovacím jazykům.

Falšování požadavků napříč weby

CSRF (Cross-site request forgery) neboli útok jedním kliknutím je metoda zneužívání zranitelnosti webových stránek, kdy oběti – uživatelé, kteří jsou autorizováni webem bez jejich vědomí, provádějí neoprávněné příkazy.

CSRF přiměje prohlížeč oběti k odesílání požadavků http webovým aplikacím. V případě, že relace oběti nevypršela, budou výše uvedené požadavky podány s autentizačními právy oběti.

Oběť Bob například provádí transakci na webu určité banky X. Fred je útočník, ten chlap ví, jak funguje web banky X, když chce převést peníze z účtu A na účet B následovně:

http://banka.example.com/vybrat?account=accountA&amount=100&for=accountB

Pošle Bobovi škodlivou zprávu.

Pokud banka X uloží informace o ověření uživatele do souboru cookie a Bob klikne na výše uvedený odkaz, Bobovy peníze budou převedeny Fredovi.

Pro omezení tohoto rizika lze pro soubory cookie nastavit parametry Expires.

4. Závěr

Soubory cookie se dnes používají ve většině webových aplikací. Obsahuje také potenciální rizika, která výrazně ovlivňují uživatele. Na straně vývojáře proto musíme cookies jasně rozumět a vědět, jak nastavit potřebné parametry, aby aplikace mohla být bezpečnější proti útokům hackerů.


Nastavte router Linksys se statickou IP adresou

Nastavte router Linksys se statickou IP adresou

Statická IP adresa je pevná IP adresa nakonfigurovaná v nastavení počítače nebo routeru. Někteří poskytovatelé internetových služeb (ISP) vyžadují zadání statické IP adresy na vašem počítači nebo nastavení TCP/IP routeru, abyste se mohli připojit k internetu.

Jak odstranit prohlížeč únosce PublicBoardSearch

Jak odstranit prohlížeč únosce PublicBoardSearch

Podle způsobu infekce patří PublicBoardSearch do kategorie únosců prohlížeče. Jedná se o typ malwaru navržený tak, aby převzal nastavení známého prohlížeče.

Kolekce tapet Apex Legends s vysokým rozlišením pro počítače

Kolekce tapet Apex Legends s vysokým rozlišením pro počítače

Kolekce tapet s vysokým rozlišením pro uživatele počítačů a notebooků s plným rozlišením od Full HD po 4K.

Co je Localhost? Jak se Localhost liší od 127.0.0.1?

Co je Localhost? Jak se Localhost liší od 127.0.0.1?

Unixový systém, také známý jako „loopback“, může sám sobě posílat a přijímat síťovou komunikaci přes virtuální síťové zařízení. Počítač může posílat zprávy sám sobě, což umožňuje komunikaci bez aktivní sítě.

5 důvodů, proč je v pořádku používat bezplatný antivirový software

5 důvodů, proč je v pořádku používat bezplatný antivirový software

Pravděpodobně jste slyšeli rčení, že dostanete to, za co zaplatíte, ale co když dojde na antivirový software? Měli byste si raději koupit softwarové balíčky, než se rozhodnout pro bezplatná řešení ochrany? Možná tomu tak není a zde je důvod!

Jaký je rozdíl mezi antivirovým softwarem pro Windows a Mac?

Jaký je rozdíl mezi antivirovým softwarem pro Windows a Mac?

V dnešním článku Quantrimang shrne oblíbené značky antivirového softwaru na trhu a zjistí, jak se liší mezi Windows PC a macOS.

4 věci, které uživatelé chtějí vidět ve Windows v roce 2021

4 věci, které uživatelé chtějí vidět ve Windows v roce 2021

Není jasné, co Sun Valley přinese kromě změn a vylepšení uživatelského rozhraní nejvyšší úrovně. Zde je tedy to, co uživatelé doufají, že uvidí od velké aktualizace systému Windows 10 Sun Valley, která bude uvedena v příštím roce.

Jak opravit chybu Spustit jako správce nefunguje ve Windows

Jak opravit chybu Spustit jako správce nefunguje ve Windows

Systém Windows poskytuje možnost Spustit jako správce, která uživatelům umožňuje spouštět aplikace a programy s oprávněními správce. Můžete jej také použít k odstraňování problémů s počítačem. Ale co když tato funkce nefunguje a odebere vám práva správce?

Jak opravit chyby při opravě disku v systému Windows

Jak opravit chyby při opravě disku v systému Windows

Chyby související s jednotkou vašeho počítače mohou zabránit správnému spuštění systému a omezit přístup k vašim souborům a aplikacím.

Modular Malware – Nová metoda tajného útoku ke krádeži dat

Modular Malware – Nová metoda tajného útoku ke krádeži dat

Některé varianty malwaru mohou používat různé moduly ke změně toho, jak ovlivňují cílový systém. Co je tedy modulární malware a jak funguje?