09.09.2016

Hacker našel další způsob, jak se dostat do vašeho účtu na Facebooku

Zranitelnost byla nalezena, nahlášena. Příslušný nálezce dostal svou odměnu, tým programátorů opravil chybu a svět je zase o něco bezpečnější. Konec příběhu… opravdu? Podívejme se na celou věc ještě jednou.

Cover

V minulém článku jsme psali o zranitelnosti, díky které bylo možné získat přístup k libovolnému účtu na Facebooku. Stačilo jen u daného uživatele požádat o resetování hesla a na vhodné nezabezpečené subdoméně poté prozkoušet všechny možné kombinace ověřovacího kódu. Tým Facebooku tuto zranitelnost zaregistroval a opravil. Přesněji, rozšířil svůj zabezpečovací systém i na danou zapomenutou subdoménu a nyní již i na ní budete po několika pokusech o uhodnutí ověřovacího kódu zablokováni.

Je taková oprava dostatečná? Nad touto otázkou se nedávno zamyslel další white hat hacker, Gurkirat Singh. Vyšel z toho, že stále ještě nebyla ošetřena jedna ze základních slabin, a to příliš malý rozsah ověřovacího kódu. Šest číslic, tedy milion kombinací, je v dnešní době už poměrně jednoduché překonat. Jen je třeba vymyslet nový způsob, jak této vlastnosti využít. Je jasné, že zvolit si uživatelské jméno a prozkoušet všechny možné kombinace ověřovacího kódu již jednoduše nepůjde. Ale mohl by možná fungovat opačný přístup - zvolit si ověřovací kód a k němu dohledat příslušného uživatele!

Tento přístup zafungoval. Totiž, ověřovací kód má pouze milion kombinací a je generován náhodně, pokud tedy milion různých uživatelů po sobě zažádá o resetování svého hesla, je velmi pravděpodobné, že některému z těch uživatelů bude přiřazeno heslo 123456. Přesněji, ta pravděpodobnost je zhruba 63 %. Gurkirat tedy pro jistotu zvolil vzorek 2 milionů uživatelů (pravděpodobnost vzroste na 86 %) a doufal, že bude mít štěstí.

V prvé řadě tedy začal zkoušet jednotlivá Facebook ID počínaje číslem 100000000000000 (Facebook ID všech uživatelů jsou 15 míst dlouhá) a pomocí Facebook Graph API určil ta, která odpovídají reálným uživatelům. Když jich nasbíral požadované dva miliony, dostal se do druhé fáze, a to resetování hesel. A ano, v této fázi náhodným dvěma milionům reálných uživatelů přišlo do jejich e-mailové schránky upozornění, že se jim někdo snaží změnit jejich heslo.

Resetování hesla je přece jen na Facebooku poměrně dobře chráněno, aby se zamezilo podobným pokusům, Gurkirat musel tedy překonat několik bezpečnostních opatření, simulovat uživatelské chování a použít několik tisíc různých IP adres. Snaha se mu však vyplatila, některému uživateli bylo opravdu přiděleno ID, které se shodovalo s tím, které si Gurkirat pevně zvolil a Facebook mu tak umožnil získat přístup do cizího účtu. Za celou odvedenou práci však dostal “pouze” $500 (oproti minulým $15,000). Jedním z důvodů může být fakt, že v podmínkách Bug Bounty programu je výslovně zakázáno testovat útoky na reálných uživatelích.
Více na hackernoon.com

Kam dál?