Shrnutí
Často nazývané „tajné“ otázky a odpovědi, bezpečnostní otázky a odpovědi se často používají k obnovení zapomenutých hesel (viz Testování na slabé změny nebo resetu hesla) nebo jako dodatečná bezpečnost nad rámec hesla.
Obvykle jsou generovány při vytváření účtu a vyžadují, aby uživatel vybral některou z předem vygenerovaných otázek a poskytl odpovídající odpověď. Mohou uživateli také umožnit vytvořit vlastní dvojici otázky a odpovědi. Obě metody jsou náchylné k nedostatkům. Ideálně by bezpečnostní otázky měly generovat odpovědi, které jsou známy pouze uživateli a nejsou odhadnutelné ani zjistitelné nikým jiným. To je však těžší, než to zní. Bezpečnostní otázky a odpovědi spoléhají na utajení odpovědi. Otázky a odpovědi by měly být vybrány tak, aby odpovědi byly známy pouze držiteli účtu. Ačkoli mnoho odpovědí nemusí být veřejně známo, většina otázek, které webové stránky implementují, podporuje odpovědi, které jsou pseudo-soukromé.
Předem vygenerované otázky
Většina předem vygenerovaných otázek je poměrně jednoduché povahy a může vést k nebezpečným odpovědím. Například:
- Odpovědi mohou znát členové rodiny nebo blízcí přátelé uživatele, např. „Jaké je příjmení vaší matky za svobodna?“, „Jaké je vaše datum narození?“
- Odpovědi mohou být snadno odhadnutelné, např. „Jaká je vaše oblíbená barva?“, „Jaký je váš oblíbený baseballový tým?“
- Odpovědi mohou být hádatelné hrubou silou, např. „Jaké je křestní jméno vašeho oblíbeného učitele na střední škole?“ – odpověď pravděpodobně bude na nějakém snadno stažitelném seznamu oblíbených křestních jmen, a proto lze jednoduše nascriptovat útok hrubou silou.
- Odpovědi mohou být veřejně zjistitelné, např. „Jaký je váš oblíbený film?“ – odpověď lze snadno najít na stránce uživatelského profilu na sociálních médiích.
Vlastní otázky
Problém s tím, že uživatelé generují vlastní otázky, je, že jim to umožňuje vytvářet velmi nebezpečné otázky nebo dokonce obejít smysl bezpečnostní otázky úplně. Zde jsou některé příklady z reálného světa, které to ilustrují:
- „Kolik je 1+1?“
- „Jaké je vaše uživatelské jméno?“
- „Moje heslo je S3cur ty!“
Cíle testu
- Určit složitost a přímočarost otázek.
- Zhodnotit možné odpovědi uživatele a schopnosti útoku hrubou silou.
Jak testovat
Testování slabých předem vygenerovaných otázek
Zkuste získat seznam bezpečnostních otázek vytvořením nového účtu nebo následováním procesu „Nepamatuji si své heslo“. Pokuste se vygenerovat co nejvíce otázek, abyste získali dobrý přehled o typu bezpečnostních otázek, které jsou kladeny. Pokud některá z bezpečnostních otázek spadá do kategorií popsaných výše, jsou náchylné k útokům (odhadování, hrubá síla, dostupné na sociálních médiích atd.).
Testování slabých vlastních otázek
Zkuste vytvořit bezpečnostní otázky vytvořením nového účtu nebo nakonfigurováním vlastností pro obnovení hesla ve vašem stávajícím účtu. Pokud systém umožňuje uživateli generovat vlastní bezpečnostní otázky, je zranitelný vůči vytváření nebezpečných otázek. Pokud systém používá vlastní bezpečnostní otázky během funkce zapomenutého hesla a pokud lze uživatelská jména odhadovat (viz Testování na odhadnutí účtu), mělo by být pro testera snadné získat několik vlastních otázek. Lze očekávat, že pomocí této metody najdete několik slabých vlastních otázek.
Testování na odhadnutelné odpovědi hrubou silou
Použijte metody popsané v Testování slabého mechanismu blokování, abyste zjistili, zda určité množství nesprávně dodaných bezpečnostních odpovědí spouští mechanismus blokování.
První věc, kterou je třeba vzít v úvahu při pokusu o zneužití bezpečnostních otázek, je počet otázek, které je třeba zodpovědět. Většina aplikací vyžaduje, aby uživatel odpověděl pouze na jednu otázku, zatímco některé kritické aplikace mohou vyžadovat, aby uživatel odpověděl na dvě nebo dokonce více otázek.
Dalším krokem je posoudit sílu bezpečnostních otázek. Mohly by být odpovědi získány jednoduchým vyhledáním na Google nebo pomocí útoku sociálního inženýrství? Jako penetrační tester zde je krok za krokem průvodce zneužitím schématu bezpečnostní otázky:
- Umožňuje aplikace koncovému uživateli zvolit otázku, na kterou je třeba odpovědět? Pokud ano, zaměřte se na otázky, které mají:
- „Veřejnou“ odpověď; například něco, co lze najít jednoduchým dotazem ve vyhledávači.
- Faktickou odpověď, například „první škola“ nebo jiná fakta, která lze vyhledat.
- Málo možných odpovědí, například „Jaký model bylo vaše první auto“. Tyto otázky by poskytly útočníkovi krátký seznam možných odpovědí, a na základě statistik by útočník mohl řadit odpovědi od nejpravděpodobnějších k nejméně pravděpodobným.
- Zjistěte, kolik máte možných pokusů o odhad, pokud je to možné.
- Umožňuje obnovení hesla neomezené pokusy?
- Je po X nesprávných odpovědích blokována možnost pokusů? Pamatujte, že blokovací systém může být sám o sobě bezpečnostním problémem, protože ho může útočník využít k zahájení útoku Denial of Service proti legitimním uživatelům.
- Vyberte vhodnou otázku na základě analýzy z výše uvedených bodů a proveďte výzkum, abyste zjistili nejpravděpodobnější odpovědi.
Klíčem k úspěšnému zneužití a obejití slabého schématu bezpečnostních otázek je najít otázku nebo sadu otázek, které dávají možnost snadno zjistit odpovědi. Vždy hledejte otázky, které vám dávají největší statistickou šanci na uhodnutí správné odpovědi, pokud si žádnou z odpovědí nejste jisti. Nakonec je schéma bezpečnostních otázek silné pouze tak, jak silná je nejslabší otázka.