Dvoufaktorová autentizace se původně vyskytovala jen ve vysoce zabezpečených scénářích vlád a korporací, ale nyní ji používají běžní lidé při autentizaci pro webové stránky a účty. 2FA ale může riziko hacknutí pouze snížit.
Příliš mnoho lidí vkládá do zabezpečení poskytovaného pomocí 2FA nepřiměřeně vysokou důvěru. Myslí si, že je 2FA neprolomitelná a neporazitelná, ale to jednoznačně není pravda.
Lidé si myslí, že 2FA zastaví útoky APT (Advanced Persistent Threats), porazí phishing a sociální inženýrství a že zastaví veškeré hrozby, ačkoli k tomu nikdy nebyla navržena.
2FA trpí tím, že se nesprávně vnímá, a v důsledku toho se jí připisuje větší kredit, než si zaslouží. Lze ji, a často se to také děje, překonat mnoha způsoby včetně těch, které jsou stručně nastíněné níže.
1. Útoky MITM
Pokud vás dokáže útočník využívající útok MITM (Man-In-The-Middle, člověk uprostřed) podvést, abyste navštívili jeho podvrženou stránku, a vyzve vás k zadání vašich přihlašovacích údajů 2FA, je to v podstatě konec.
Útočník MITM totiž může napodobit web, kterému důvěřujete a kde 2FA používáte. Klamem od vás získá vaši odpověď na výzvu, a ukradne tak vaše přihlašovací údaje dvoufaktorové autentizace.
Ještě častějším případem je, že po úspěšném ověření pomocí 2FA může dojít ke krádeži výsledného tokenu, který již nepotřebuje 2FA. Zde je skvělá videoukázka tohoto typu útoku: (blog.knowbe4.com/heads-up-new-exploit-hacks-linkedin-2-factor-auth.-see-this-kevin-mitnick-video).
Většina lidí nerozumí tomu, že jakmile dojde k ověření pomocí 2FA (bez ohledu na způsob – ať už je biometrický, hardwarovým tokenem nebo čipovou kartou), začne operační systém ke správě vašich oprávnění k povoleným objektům používat sekundárně vytvořený softwarový token.
Tento token ale lze ukrást a znovu použít. Například váš notebook se systémem Windows může vyžadovat otisk prstu k ověření a přihlášení. Jakmile k tomu úspěšně dojde, začnou se často v zákulisí používat tokeny NTLM (NT Lan Manager) nebo Kerberos.
Způsob autentizace má obvykle malý vliv na to, jak následně probíhá autorizace přístupu k objektům. Pokud chcete dobře rozumět zabezpečení počítačů, musíte pochopit tento koncept i jeho dopady. Jsou obrovské.
2. Útoky typu „člověk v koncovém bodě“
Podobně jako u útoků MITM, pokud dokáže hacker dostat svůj škodlivý software do vašeho počítače, může upravit software, který se používá ve vašem procesu 2FA, a to buď k odcizení tajemství chráněných tokenem 2FA, nebo k použití již schválené autentizace pro přístup k něčemu v zákulisí.
Bankovní trojské koně to dělají od počátku tisíciletí. V podstatě tyto trojské koně čekají na úspěšnou autentizaci a poté zahájí skryté škodlivé akce v pozadí. Myslíte si, že jen kontrolujete svůj bankovní zůstatek, ale trojský kůň v zákulisí posílá všechny vaše peníze na zahraniční bankovní účet.
Banky si myslely, že tyto typy trojských koní porazily vytvořením sekundárního kódu 2FA, který je tvořen z údajů o transakci a je pro takovou transakci jedinečný.
Tvůrci bankovních trojských koní na to však zareagovali odposlechnutím původně požadované transakce, vytvořením a zasláním své mnohem větší transakce a jejím odesláním do banky.
Banka, aniž ví, že je nová transakce falešná, vytvoří sekundární transakční 2FA s použitím podvodných údajů a pošle je oprávněnému uživateli. Legitimní uživatel zadá sekundární kód 2FA, aniž ví, že jemu zaslaný kód platí jen pro skrytou zločinnou transakci, která mu krade všechny jeho peníze.
V reakci na tyto nové typy útoků banky začaly se zasíláním transakční částky (a dalších souvisejících podrobností) uživateli, aby je uživatelé potvrdili zadáním kódu 2FA.
Bankovní domy však překvapilo zjištění, že mnoho jejich klientů nevěnuje při zadávání kódu pozornost podrobnostem o transakci a jejímu obsahu. Bankovní trojské koně tak dokázaly v mnoha případech ukrást peníze.
Nehledě na způsob, jak prokazujete svou totožnost vůči svému počítači či zařízení, ať už s využitím 2FA, nebo ne, jakmile dojde k úspěšné autentizaci, může skrytý zločinný uživatel nebo malwarový program dělat vše, co se mu zachce.
Jen čeká ve vašemu počítači na přestávku – na čas, kdy pravděpodobně spíte nebo zamknete obrazovku. Dokonce i v době, kdy je uzamčena obrazovka, jsou vaše autentizační a autorizační tokeny aktivní a lze je opětovně používat.
3. Kompromitovaný software 2FA
Specializovaný útok typu „člověk v koncovém bodu“ může mít podobu kompromitace softwaru souvisejícího se zařízením 2FA. Například k použití čipové karty v zařízení je potřebný software pro čipové karty, který čipovou kartu obsluhuje a rozumí jí.
Dodavatel čipových karet vám může poskytnout software k instalaci nebo může být v operačním systému nebo zařízení, které používáte, předinstalován obecný ovladač.
Pokud umožníte hackerovi nainstalovat škodlivý software, může změnit nebo nahradit legitimní software související s 2FA.
V případě příkladu čipové karty by software mohl při následujícím použití čipové karty požádat čipovou kartu, aby mu vydala uložená tajemství nebo aby token, který označuje úspěšnost autentizace, zůstal aktivní v paměti mnohem delší dobu, než by legitimní software normálně dovolil, což umožňuje hackerovi krást nebo opakovat transakce.
V některých scénářích by mohly být záškodnické programy využity k úplnému odcizení čipových karet a nahrazení čipové karty v zařízení zločinců (tedy ke zkopírování).
4. Krádež a znovupoužití generátoru hesel
Mnoho hardwarových a softwarových tokenů 2FA generuje jednorázový kód, který je pro daného uživatele a zařízení jedinečný.
Autentizační software i zařízení uživatele mohou současně generovat jednorázový kód a poté porovnat kód odeslaný uživatelem s kopií vygenerovanou ověřovacím systémem, aby se ověřilo, zda jsou totožné.
Ve většině případů se jednorázové kódy generují trvale ze sdílené náhodné „počáteční“ hodnoty jedinečné pro každé 2FA zařízení a uživatele a pak se všechny následující kódy generují zpočátku v předem nastavených časových intervalech pomocí sdíleného algoritmu.
Jde o typ 2FA tokenu, kde je uživatel vyzván k zadání jednorázového kódu a má čas od 30 sekund do několika minut na to, aby zareagoval, než dojde k vygenerování nové hodnoty.
Tokeny SecureID od společnosti RSA zpopularizovaly tyto typy zařízení 2FA, dnes existují desítky, ne-li stovky podobných hardwarových tokenů a stovky, ne-li tisíce softwarových verzí.
(Obecně platí, že varianty založené jen na softwaru nejsou ani zdaleka tak bezpečné jako hardwarové verze, protože softwarové lze mnohem snáze zkompromitovat. Ke kompromitaci hardwarových tokenů je obvykle nutný fyzický přístup k nim.)
Hackeři už dávno zjistili, že pokud dokážou získat původní počáteční hodnotu a znají algoritmus generování založený na časové synchronizaci, mohou poté generovat stejný jednosměrný kód stejně přesně jako skutečný systém a zařízení 2FA.
Některá 2FA zařízení používají tak slabé generátory jednorázových kódů, že útočníci mohou zachytit libovolnou z jednorázových hodnot a pak vygenerovat všechny budoucí hodnoty.
Pokud se to může stát bez znalosti původní počáteční náhodné hodnoty, není použitý algoritmus kryptograficky příliš spolehlivý. Neměli byste být schopni zachytit jednu náhodně generovanou hodnotu a použít ji ke snadnějšímu nalezení další „náhodně generované“ hodnoty.
Obvyklé běžně používané nástroje pro každodenní hackování obsahují související funkce, takže když dokáže hacker získat počáteční hodnotu, může vytvořit kopii zařízení 2FA.
Tyto typy útoků používají hackeři při útocích APT. Nejznámějším příkladem je situace, kdy čínští hackeři napadli společnost RSA, aby získali počáteční hodnoty firmy Lockheed Martin, do které pak pomocí nich pronikli.
5. 2FA se nepožaduje
Mnoho služeb včetně populárních webových stránek, které umožňují používat 2FA, ji nevyžadují, což ale samotný účel zavedení 2FA sabotuje.
Většina uživatelů si totiž myslí, že jakmile se zapne 2FA, musí se použít vždy, ale to často není pravda. Větší část webů umožňuje uživatelům zadat své heslo, odpovědět na otázky týkající se resetování hesla nebo zavolat na technickou podporu, aby obešli požadavek 2FA.
Na webech, které umožňují uživatelům přihlásit se pomocí několika metod včetně 2FA, ale nedovolují oprávněnému uživateli vynucovat 2FA, se hackeři začnou zabývat sociálním inženýrstvím zaměřeným na technickou podporu těchto webů s cílem dosáhnout resetu hesla uživatele. Anebo hackeři prostě zjistí odpovědi na otázky týkající se resetování hesla.
Co se týče samotné problematiky resetování hesla, je vždy mnohem snadnější odhadnout přednastavenou odpověď než heslo, které mají chránit. Otázky týkající se resetování hesla se často považují za pohromu oboru autentizace.
Hackeři se také mohou pokusit získat heslo uživatele pomocí sociálního inženýrství a poté použít heslo namísto 2FA. Když web s povolenou technologií 2FA nevyžaduje takové přihlášení ve všech případech, opět to sabotuje účel existence 2FA.
Pokud prostředí vaší firmy využívá technologii 2FA, ale není zapnutá na všech stránkách a službách, znamená to, že máte i přihlašovací jméno a heslo, což významným způsobem degraduje 2FA, minimálně na stránkách, které akceptují přihlášení bez 2FA.
6. Napodobení subjektu
Existuje malé špinavé tajemství, které před vámi chtějí dodavatelé čipových karet tajit – každé zařízení/software 2FA jsou svázané s identitou uživatele/zařízení. Tato identita musí být v rámci autentizačního systému jedinečná.
V mnoha systémech typu 2FA, zejména využívajících čipové karty, platí, že pokud můžete změnit identitu osoby, a to i dočasně, můžete použít libovolné zařízení 2FA, dokonce spojené s jinou osobou, a použít ho k autentizaci, jako by šlo o cílového uživatele. Tady je příklad.
Předpokládejme, že je vaše čipová karta připojena k identitě nazvané uzivatel_1@priklad.com.
Hacker, který získá jakoukoli jinou čipovou kartu a PIN (řekněme od uživatele_2), může v autentizačním systému změnit totožnost uživatele_1 na uživatele_2 a naopak. Potom se může přihlásit jako uživatel_2 pomocí čipové karty a PIN uživatele_2, systém ho přihlásí a bude ho sledovat v auditovacím procesu, jako by šlo o uživatele_1.
Poté, co hackeři dokončí své záškodnické aktivity, mohou jednoduše přepnout identity zpět, aniž kdy budou znát PIN uživatele_1, a bez potřeby mít k dispozici čipovou kartu uživatele_1, který přitom nic netuší. Čipové karty jsou ideální prostředek pro vnitřní útoky na 2FA.
Platí to pro mnoho zařízení 2FA. Cokoliv se používá k jedinečné identifikaci uživatele/zařízení, propojuje zařízení 2FA s tímto uživatelem/zařízením. Pokud má někdo oprávnění změnit něčí totožnost, může doslova zaměnit totožnost uživatele/zařízení za libovolné jiné zařízení 2FA (nad kterým má kontrolu).
Veškeré změny atributů totožnosti je potřebné kontrolovat a auditovat stejně důkladně jako změny hesel.
7. Ukradená biometrie
Vaše atributy biometrické totožnosti (např. otisky prstů nebo sken sítnice) lze ukrást a opakovaně používat. Přitom je velmi těžké bránit útočníkovi, aby je používal.
Existuje mnoho dalších problémů týkajících se biometrických identit (jako je vysoká míra falešně negativních a falešně pozitivních rozpoznání), ale největší je, že pokud dojde k jejich krádeži, jsou zkompromitované navždy.
Ukradené heslo můžete jednoduše změnit, otisky prstů a sken sítnice však lehce změnit nejde.
8. Sdílená, integrovaná autentizace
Dnes jsou populární sdílená integrovaná autentizační schémata, jako je například oAuth, která umožňují uživateli přihlásit se jednou a znovu použít toto pověření (často v pozadí) k přihlášení k dalším službám a webovým stránkám.
Při použití integrované sdílené autentizace se součást 2FA, která byla požadována při původní autentizaci, často už znovu nevyžaduje pro druhé a další následující přihlášení, a to i v případě, že by následné přihlášení jinak vyžadovalo přihlášení 2FA.
Integrované sdílené přihlašování často používá pro další přihlašování již autentizovaný token.
9. Sociální inženýrství
Jak stále více webových stránek umožňuje nebo vyžaduje 2FA, hackeři se naučili, jak to vyřešit pomocí sociálního inženýrství.
Tyto útoky mohou být podobné útokům MITM a „člověk v koncovém bodu“, jak je popsané výše, ale mohou být i mnohem propracovanější a zahrnovat nezamýšlenou účast 2FA dodavatele.
Zde je příklad takového útoku: (krebsonsecurity.com/2016/09/the-limits-of-sms-for-2-factor-authentication/). Stručně řečeno – vaše používání 2FA vám negarantuje, že se nenecháte podvodem o tuto výhodu připravit.
10. Útoky hrubou silou na 2FA
Ztráta 2FA tokenů a jejich získání hackery není nic nového. Pokud web nebo služba používající přihlášení 2FA nepoužívá kontrolu špatných pokusů o přihlášení, mohou se útočníci pokoušet uhádnout PIN kód pro 2FA opakovaným zkoušením, dokud se netrefí.
Většina webů 2FA používá kontrolu blokováním, ale ne všechny.
11. Implementace obsahující chyby
Je realističtější předpokládat, že je více webů a softwaru s přihlašováním 2FA, které obsahují chyby umožňující obejít 2FA, než webů, jež jsou zcela bezpečné. Zde je příklad (www.zdnet.com/article/uber-security-flaw-two-factor-login-bypass/), ale existují stovky dalších příkladů implementací 2FA s chybami.
Jak se bránit proti 2FA útokům?
Přihlašování do systému 2FA sice lze úspěšně napadnout, ale vy se můžete bránit tím, že to ztížíte. Zde je několik doporučení pro blokaci útoků na 2FA, z nichž mnohé byste již měli používat:
- Školení administrátorů a uživatelů o hrozbách a útocích na 2FA.
- Zeptejte se svého dodavatele na to, jak dobře řeší každý z výše uvedených scénářů hrozby útoku, pokud se vztahují k vašemu použití 2FA.
- Zajistěte, aby systémy používaly aktuální antivirový software k detekci a prevenci malwaru a útoků hackerů, kteří by se mohli pokusit krást vaše přihlašovací údaje 2FA.
- Zajistěte, aby vaši uživatelé chápali a byli školeni, jak odolávat scénářům útoků na 2FA přes sociální inženýrství. Neměli by být ochotni předávat svá čísla PIN pro 2FA nebo použít svá zařízení či software 2FA na každém webu a e-mailu, který o to požádá.
- Pokud web nebo služba umožňují použití 2FA, používejte ji. Pokud to lze udělat a můžete zapnout vyžadování 2FA pro přihlášení, tak to zapněte.
- Zjistěte, jaké možnosti dodavatel 2FA nabízí pro obejití 2FA. Lze obejít 2FA pomocí sociálního inženýrství?
- Zeptejte se svého poskytovatele 2FA, zda při vývoji hardwaru a softwaru používali osvědčené postupy SDL (Secure Development Lifecycle) pro psaní kódu.
- Chraňte a prověřujte atributy totožnosti používané technologií 2FA pro jednoznačnou identifikaci přihlášení 2FA.
- Nepoužívejte adekvátní odpovědi na otázky používané k resetování hesla.
- Povzbuzujte a používejte weby či služby s použitím dynamické autentizace, která zvyšuje počet otázek či potřebných faktorů, když dochází k požadavku na přihlášení z nového zařízení nebo za neobvyklých okolností (např. cizí lokalita nebo neobvyklý čas).
Zdravé chápání a skepse ohledně toho, před čím dokáže přihlašování 2FA chránit a před čím ne, nemohou nikomu ublížit.
2FA je určitě lepší a bezpečnější než použití jednofaktorové ochrany, jako jsou hesla, ale není to všelék. Lze ji prolomit.
Tyto technologie mohou pomoci při mnoha scénářích snahy o průlom, ale ani v těchto případech nejsou dokonalé. Používejte je s přesvědčením, ale ne s nepřiměřeným optimismem, jak to mnozí dělají.
Tento příspěvek vyšel v Security Worldu 2/2018. Časopis (starší čísla i předplatné těch nadcházejících) si můžete objednat na adrese našeho vydavatelství.