Přeskočit na hlavní obsah

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.

Kam dál

Zranitelnosti

Cheat sheety