Na webových stránkách se nachází mnoho různých typů bezpečnostních zranitelností, jedna zajímavá se nazývá „Session Fixation“. Fixace relace je problém, kdy útočník může ovlivnit identifikátor relace alias id relace uživatele a poté jej použít k získání přístupu ke svému účtu. Existují dva způsoby, jak tento typ zranitelnosti může fungovat, může útočníkovi umožnit buď najít nebo nastavit ID relace jiného uživatele.
Jak se provádí útok fixace relace
ID relace uživatele je často klíčovou součástí autentizace na webu a v mnoha případech je jediným údajem, které identifikuje konkrétního přihlášeného uživatele. Problém je v tom, že pokud útočník může nastavit nebo zjistit ID relace jiného uživatele, může použít token relace a poté být schopen jednat jako uživatel.
Obvykle se to děje tak, že uživatele oklamete, aby klikl na určitý typ phishingového odkazu. Samotný odkaz je zcela legitimní, ale obsahuje proměnnou, která nastavuje zadané ID relace. Pokud se uživatel poté přihlásí pomocí ID relace a server mu nepřidělí nové ID relace přihlášení, může útočník jednoduše nastavit své ID relace na stejné a mít přístup k id oběti účet.
Dalším způsobem, jak může útočník zjistit ID relace oběti, je, že se objeví v adrese URL. Pokud se například útočníkovi podaří oklamat oběť, aby jí poslala odkaz, který obsahuje ID relace oběti, může útočník použít ID relace k přístupu k účtu oběti. V některých případech k tomu může dojít zcela náhodou. Pokud například uživatel zkopíruje adresu URL s ID relace a vloží ji příteli nebo do fóra, každý uživatel, který následuje odkaz, bude přihlášen k účtu uživatele.
Sanace fixace sezení
Existuje několik řešení tohoto problému a jako vždy je nejlepším řešením implementovat co nejvíce oprav v rámci strategie hloubkové ochrany. Prvním řešením je změnit ID relace uživatele při přihlášení. To zabrání útočníkovi, aby kdy mohl ovlivnit ID relace přihlášeného uživatele. Můžete také nakonfigurovat server tak, aby vždy přijímal pouze ID relací, které vygeneroval, a explicitně odmítal všechna ID relací poskytnutá uživatelem.
Web by měl být nakonfigurován tak, aby do adresy URL nikdy nevkládal žádné citlivé údaje o uživateli, jako je ID relace, a měl by je umístit do parametru požadavku GET nebo POST. Tím se zabrání tomu, aby uživatel náhodně narušil své vlastní ID relace. Použitím ID relace i samostatného ověřovacího tokenu zdvojnásobíte množství informací, které útočník potřebuje k získání, a zabráníte útočníkům v přístupu k relacím se známými ID relace.
Je důležité, aby všechna platná ID relací pro uživatele byla po kliknutí na tlačítko odhlášení zrušena. Je možné znovu vygenerovat ID relace u každého požadavku, pokud jsou ID předchozí relace neplatné, zabrání to útočníkům v použití známého ID relace. Tento přístup také výrazně snižuje okno hrozby, pokud uživatel prozradí své vlastní ID relace.
Povolením více těchto přístupů může strategie hloubkové obrany tento problém eliminovat jako bezpečnostní riziko.