Fixace relace

V zabezpečení počítačové sítě útoky Fixace relace zneužívají zranitelnost systému, který umožňuje někomu nastavit (určit) identifikátor relace (SID nebo ID relace ) jiné osoby. Většina z těchto útoků se odehrává na webu a pochází z přijímání SID v adrese URL (řetězec požadavku) nebo v datech POST.

Scénáře útoku

Alice má účet v bance http://unsafe/. Alice bohužel neví o bezpečnosti.

Mallory má v úmyslu získat Alice peníze z této banky.

Alice má přiměřenou úroveň důvěry v Mallory a navštíví dluhopisy, které jí Mallory pošle.

Jednoduchý scénář útoku

Přímý scénář:

  1. Mallory zjistil, že http://unsafe/přijímá jakýkoli SID, přijímá SID v řetězcích a nemá proces ověření SID. Proto http://unsafe/není bezpečný.
  2. Mallory pošle Alici e-mail: „Hele, podívej se na to, v naší bance je nová funkce, http://unsafe/?SID=JE_VAIS_CONNAITRE_LE_SID“. Mallory se pokusí nastavit SID JE_VAIS_CONNAITRE_LE_SID.
  3. Alice má zájem a návštěvy http://unsafe/?SID=JE_VAIS_CONNAITRE_LE_SID. Zobrazí se obvyklá přihlašovací stránka a Alice se přihlásí.
  4. Mallory navštěvuje http://unsafe/?SID=JE_VAIS_CONNAITRE_LE_SIDa nyní má neomezený přístup k účtu Alice.

Útok generováním SID na serveru

Mylná představa je, že server, který přijímá pouze SID generovaná serverem, není ohrožen opravou. To je špatně .

Scénář:

  1. Mallory navštíví http://vulnerablea vezme na vědomí vrácený SID. Například server může znovu odeslat Set-Cookie: SID=0D6441FEA4496C2.
  2. Mallory nyní může poslat e-mail Alice: „Podívejte se na tuto novou funkci v naší bance http://vulnerable/?SID=0D6441FEA4496C2.
  3. Alice se přihlásí a nastaví její SID na 0D6441FEA4496C2.

Útok pomocí vaření napříč weby

Další útok na fixaci relace, vaření mezi weby , využívá chyby zabezpečení prohlížeče. To umožňuje webu http://mechant/ukládat soubory cookie v prohlížeči Alice v doméně souborů cookie jiného serveru, například tomu http://gentil/, kterému Alice důvěřuje. Tento útok může fungovat, i když v něm není žádná chyba zabezpečení http://gentil/, protože http://gentil/lze předpokládat, že zpracování souborů cookie prohlížečem Alice je zabezpečené.

Scénář:

  1. Mallory pošle Alici e-mail: „Hele, podívej se na tento web, http://mechant/“.
  2. Alice návštěvy http://mechant/, která nastaví cookie SID s hodnotou JE_VAIS_CONNAITRE_LE_SIDv doméně http://gentil/.
  3. Alice poté obdrží e-mail od Mallory: „Hej, podívej se na svůj bankovní účet http://gentil/.“
  4. Alice se přihlásí, Mallory může používat svůj účet pomocí nastaveného SID.

Útok pomocí vaření napříč subdoménami

Tato technika je identická s útokem při použití vaření napříč weby, kromě toho, že se nespoléhá na zranitelnost prohlížeče. Je založen na skutečnosti, že soubory cookie se zástupnými znaky může vytvářet jedna subdoména, což ovlivňuje další subdomény.

Scénář:

  1. Web www.example.composkytuje subdomény třetím stranám, kterým nedůvěřuje.
  2. Jedna z těch částí, Mallory, která ovládá, mechant.example.compřitahuje Alice na její stránky.
  3. Alice návštěva mechant.example.comvytvoří cookie relace s doménou .example.comv prohlížeči Alice.
  4. Při návštěvě Alice www.example.combude tento soubor cookie odeslán s požadavkem a Alicina relace bude specifikována souborem Mallory.
  5. Pokud se Alice přihlásí, může Mallory použít svůj účet.

Každý z těchto scénářů útoku byl výsledkem zvýšení úrovně privilegií , kdy Mallory získala přístup k funkcím a datům obvykle vyhrazeným pro Alici.

Scénář alternativního útoku nevyžaduje, aby se Alice připojila k webu. Spíše jednoduše opravením relace může Mallory špehovat Alici a využít výhod dat, která posílá. Například Mallory může použít výše uvedené útoky, aby poskytla Alici vlastní ověřenou relaci - takže Alice začne používat web s ověřením Mallory. Pokud se Alice rozhodne něco z tohoto webu koupit a zadá číslo své kreditní karty, může být Mallory schopna data načíst nahlédnutím do historie dat uložených pro daný účet.

Prostředky boje

Nevytvářejte kontext uživatele na straně serveru z SID generovaného uživatelem

Kontext uživatele představuje všechny informace na straně serveru týkající se uživatele, který je ověřen (relace) a ke kterému je SID propojen. To zejména umožňuje serveru identifikovat práva odesílatele požadavku na řízení přístupu.

Nepřijímejte SID proměnných GET / POST

SID v URL (proměnné GET) nebo v proměnných POST se nedoporučují, protože tento útok zjednodušují. Vytváření odkazů nebo formulářů, které určují proměnné GET / POST, je snadné.

Používejte soubory cookie HTTP moudře

V moderních systémech je SID ve výchozím nastavení uložen v souboru cookie HTTP, což představuje průměrnou úroveň zabezpečení, pokud systém pro správu relací nezohledňuje proměnné GET / POST. Toto řešení je však zranitelné útokem CSRF (Cross-Site Request Forgery) a nerespektuje omezení bezstavové architektury REST .

PS: Je důležité chránit tyto cookies pomocí různých atributů, kterým běžné prohlížeče rozumějí (nesouvisí přímo se zranitelností „Session fixation“):

  • Zajistit
  • Pouze Http
  • SameSite

Znovu vygenerujte (na straně serveru) SID pokaždé, když se změní kontextová oprávnění uživatele

Každá změna kontextových oprávnění obecně odpovídá autentizaci, při které uživatel poskytne své tajemství. Běžně najdeme ověřovací stránky, kde se kontext mění z „oprávnění neověřeného uživatele“ na „oprávnění ověřeného uživatele“ (je třeba vzít v úvahu další případy, jako je druhé ověřování pro přístup k administraci aplikací).

Regenerace SID umožňuje zmírnit riziko, že uživatel předem umístil / přečetl SID této změny oprávnění, a může tak těžit z těchto nových oprávnění, aniž by musel znát tajemství.

Funkce odhlášení

Platnost starých SID

Zničte relaci, pokud je Referer podezřelý

Zkontrolujte, zda jsou další informace konzistentní po celou dobu relace

Uživatelský agent

Obrana do hloubky

Podívejte se také