Přeskočit na hlavní obsah

Selhání identifikace a autentizace

🔴 Potvrzujte identitu uživatele a ověřujte session pro ochranu před útoky souvisejícími s autentizací.

  • Slabiny v autentizaci mohou nastat, pokud aplikace
    • umožňuje automatizované útoky jako je například credential stuffing, kdy má útočník k dispozici seznam platných uživatelských jmen a hesel,
    • umožňuje útoky hrubou silou (brute force) nebo jiné automatizované útoky,
    • povoluje výchozí, slabá nebo dobře známá hesla a kombinace (admin / admin),
    • používá slabé nebo neúčinné procesy obnovy credentials a zapomenutých hesel, jako jsou odpovědi na kontrolní otázky, které nelze zabezpečit,
    • používá plain text nebo hesla slabě hashuje (viz cryptographic failures),
    • nemá vícefaktorové ověření (MFA), nebo je neúčinné,
    • vystavuje session ID v URL,
    • opakovaně používá stejné session ID po úspěšném přihlášení,
    • nezneplatňuje session ID,
    • nezneplatňuje nebo špatně zneplatňuje sessions a tokeny (především SSO tokeny) v případě odhlášení uživatele nebo jeho neaktivity.

Jak zranitelnosti předcházet

🔴 Implementujte vícefaktorové přihlášení, abyste zabránili automatizovaným útokům typu credential stuffing, brute force a opakovanému použití ukradených credentials.

🔴 Nenasazujte aplikaci s žádnými výchozími credentials, zejména ne pro admin uživatele.

🔴 Zaveďte kontrolu slabých hesel, například podle seznamu 10.000 nejhorších hesel.

🔴 Sjednoťte zásady délky a rotace hesel na základě pokynů NIST.

🔴 Zajistěte, aby registrace, obnovení credentials a API byly zabezpečeny proti enumeration útokům.

🔴 Omezte, nebo stále více oddalujte neúspěšné pokusy o přihlášení.

  • Dávejte pozor, abyste nevytvořili scénář, kdy služba nepůjde použít.

🔴 Logujte všechna nezdařilá přihlášení a upozorňujte správce, pokud objevíte útoky typu credential stuffing, brute force nebo jiné.

🔴 Použijte zabezpečený integrovaný session manager na straně serveru, který po přihlášení vygeneruje nové náhodné session ID s vysokou entropy.

  • Session identifikátor by neměl být v URL adrese, měl by být bezpečně uložen a zneplatněn po odhlášení, nečinnosti a absolutním časovém limitu.

Příklad zneužití zranitelnosti

  1. Běžným útokem je tzv. credential stuffing - používání seznamu známých hesel. Předpokládejme, že aplikace neimplementuje automatickou ochranu proti těmto hrozbám. V takovém případě je možné aplikaci opakovaně posílat přihlašovací jména a hesla a ověřit tak jejich platnost.
  2. K většině autentizačních útoků dochází kvůli neustálému používání hesel jako jediného faktoru. Požadavky na střídání hesel a jejich složitost, které byly kdysi považovány za osvědčené postupy, podněcují uživatele k opakovanému používání slabých hesel. Organizacím se doporučuje tyto postupy podle normy NIST 800-63 ukončit a používat vícefaktorové přihlášení.
  3. Časové limity sessions aplikace nejsou nastaveny správně. Uživatel používá k přístupu k aplikaci veřejný počítač v knihovně. Místo toho, aby vybral možnost "Odhlásit se", zavře kartu prohlížeče a odejde. Útočník použije stejný počítač o hodinu později a uživatel je stále přihlášený.

Kam dál

Cheat sheety

Checklisty

Další