Press "Enter" to skip to content

OWASP WSTG: Testování slabých funkcí změny nebo obnovení hesla (WSTG-ATHN-09)

Níže nabízím překlad z Home > Stable > 4-Web Application Security Testing > 04-Authentication Testing > Testing for Weak Password Change or Reset Functionalities

Shrnutí

Funkce změny a resetu hesla v aplikaci je samoobslužný mechanismus pro změnu nebo reset hesla pro uživatele. Tento samoobslužný mechanismus umožňuje uživatelům rychle změnit nebo resetovat své heslo bez zásahu administrátora. Když jsou hesla změněna, obvykle jsou změněna v rámci aplikace. Když jsou hesla resetována, jsou buď zobrazena v rámci aplikace, nebo zaslána uživateli e-mailem. To může naznačovat, že hesla jsou uložena v čistém textu nebo ve formátu, který lze dešifrovat.

Cíle testu

  • Určit odolnost aplikace proti manipulaci s procesem změny účtu, která by umožnila někomu změnit heslo účtu.
  • Určit odolnost funkce resetování hesla vůči odhadu nebo obcházení.

Jak testovat

Pro změnu i reset hesla je důležité zkontrolovat následující:

  • Zda uživatelé, kromě administrátorů, mohou změnit nebo resetovat hesla pro jiné účty než své vlastní.
  • Zda uživatelé mohou manipulovat s procesem změny nebo resetu hesla, aby změnili nebo resetovali heslo jiného uživatele nebo administrátora.
  • Zda je proces změny nebo resetu hesla zranitelný vůči CSRF.

Testování resetu hesla

Kromě výše uvedených kontrol je důležité ověřit následující:

  • Jaké informace jsou vyžadovány k resetování hesla?Prvním krokem je ověřit, zda jsou vyžadovány tajné otázky. Odeslání hesla (nebo odkazu na reset hesla) na e-mailovou adresu uživatele bez předchozího dotazu na tajnou otázku znamená 100% spolehnutí se na bezpečnost této e-mailové adresy, což není vhodné, pokud aplikace vyžaduje vysokou úroveň bezpečnosti.Na druhé straně, pokud jsou použity tajné otázky, dalším krokem je posoudit jejich sílu. Tento konkrétní test je podrobně diskutován v části Testování slabých bezpečnostních otázek/odpovědí této příručky.
  • Jak jsou resetovaná hesla sdělena uživateli?Nejzranitelnější scénář je, když nástroj pro reset hesla zobrazí heslo; to dává útočníkovi možnost přihlásit se do účtu, a pokud aplikace neposkytuje informace o posledním přihlášení, oběť by nevěděla, že její účet byl kompromitován.Méně zranitelný scénář je, když nástroj pro reset hesla nutí uživatele okamžitě změnit heslo. I když to není tak nenápadné jako první případ, umožňuje to útočníkovi získat přístup a zablokovat skutečného uživatele.Nejlepší bezpečnosti je dosaženo, když je reset hesla proveden prostřednictvím e-mailu zaslaného na adresu, kterou uživatel původně zaregistroval, nebo na jinou e-mailovou adresu; to nutí útočníka nejen hádat, na jaký e-mailový účet byl reset hesla odeslán (pokud aplikace tuto informaci nezobrazuje), ale také kompromitovat tento e-mailový účet, aby získal dočasné heslo nebo odkaz na reset hesla.
  • Jsou resetovaná hesla generována náhodně?Nejzranitelnější scénář je, když aplikace odešle nebo zobrazí staré heslo v čistém textu, protože to znamená, že hesla nejsou uložena v hashované formě, což je samo o sobě bezpečnostní problém.Nejlepší bezpečnosti je dosaženo, když jsou hesla generována náhodně pomocí bezpečného algoritmu, který nelze odvodit.
  • Žádá funkce resetu hesla potvrzení před změnou hesla?Aby se omezily útoky typu denial-of-service, měla by aplikace odeslat uživateli odkaz s náhodným tokenem, a teprve pokud uživatel navštíví odkaz, proces resetu bude dokončen. To zajistí, že aktuální heslo bude stále platné, dokud nebude reset potvrzen.

Testování změny hesla

Kromě výše uvedeného testu je důležité ověřit následující:

  • Je pro dokončení změny vyžadováno staré heslo?Nejzranitelnější scénář je, když aplikace povoluje změnu hesla, aniž by vyžadovala aktuální heslo. Pokud by totiž útočník získal kontrolu nad platnou relací, mohl by snadno změnit heslo oběti. Viz také odstavec Testování slabé politiky hesel této příručky.

Náprava

Funkce změny nebo resetu hesla je citlivá funkce a vyžaduje určitou formu ochrany, jako je požadavek na opětovnou autentizaci uživatelů nebo zobrazení potvrzovacích obrazovek během procesu.

Odkazy

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *