Správa session
- Session = způsob uložení uživatelských dat během komunikace se serverem
- Uživatel se např. nemusí přihlašovat pokaždé, kdy chce na webu udělat nějakou akci - uloží se stav, že už je přihlášený.
- Checklist pomáhá s ověřením správy session jako je session binding, odhlašování, cookies a další.
Základy
- Ověřte, zda aplikace nikdy neodhaluje session tokeny v URL parametrech.
Session binding
- Ověřte, zda aplikace při ověřování uživatele generuje nový session token.
- Ověřte, zda session tokeny mají alespoň 64 bitů entropy.
- Ověřte, že aplikace ukládá session tokeny v prohlížeči pouze pomocí zabezpečených metod (cookies, HTML5 session storage…).
- Ověřte, zda jsou session tokeny generovány pomocí schválených kryptografických algoritmů.
Odhlašování a vypršení platnosti
- Ověřte, že odhlášení a vypršení platnosti zneplatní session token tak, že např. tlačítko “zpět” neobnoví ověřenou session.
- Ověřte, zda k opětovnému ověření dochází pravidelně. A to jak při aktivním používání, tak po období nečinnosti, pokud autentizátory umožňují uživatelům zůstat přihlášeni.
- Ověřte, zda aplikace poskytuje možnost ukončit všechny ostatní aktivní relace po úspěšné změně hesla a zda je tato možnost účinná pro celou aplikaci.
- Ověřte, zda uživatelé mohou zobrazit a odhlásit všechny aktivní sessions a zařízení.
Správa session založená na cookies
- Ověřte, zda mají session tokeny nastavený atribut
Secure
. - Ověřte, zda mají session tokeny nastavený atribut
HttpOnly
. - Ověřte, zda session tokeny využívají atribut
SameSite
, aby se zamezilo útokům typu CSRF. - Ověřte, zda session tokeny používají předponu
__Host-
pro zajištění důvěrnosti cookie souborů. - Nastavte atribut cesty v session tokenech pomocí co nejpřesnější cesty, pokud je aplikace publikována pod názvem domény s jinými aplikacemi, které nastavují nebo používají session cookies.
Správa session založená na tokenech
- Ověřte, zda aplikace umožňuje revokovat takové OAuth tokeny, které vytvářejí vztahy důvěrnosti s propojenými aplikacemi.
- Ověřte, že aplikace používá session tokeny namísto statických secrets a API klíčů, s výjimkou starších implementací.
- Ověřte, zda serverless session tokeny používají digitální podpisy, šifrování a další opatření na ochranu proti manipulaci, atd.
Opětovné ověření
- Ověřte, zda odběratelé zadávají poskytovatelům ověřovacích služeb maximální dobu ověřování a zda znovu ověřují účastníka, pokud během této doby session nevyužil.
- Ověřte, zda poskytovatelé certifikačních služeb informují odběratele o poslední události autentizace, aby bylo možné určit, zda je třeba uživatele znovu ověřit.
Obrana proti session exploitům
- Ověřte, zda aplikace zajišťuje úplnou, platnou přishlašovací session, zda vyžaduje opětovné ověření nebo sekundární ověření před povolením jakýchkoli citlivých transakcí nebo úprav.