V září 2022 se útočník, který si koupil heslo jednoho z externích dodavatelů Uberu, pokoušel znovu a znovu přihlásit. Každý pokus poslal dodavateli žádost o schválení druhým faktorem. První z nich útočníka zablokovaly. Pak jednu dodavatel přijal a útočník byl uvnitř (bezpečnostní zpráva Uberu). O měsíc dříve popsalo Cisco tentýž vzorec u vlastního průniku: telefonáty od někoho, kdo se vydával za podporu, a záplavu push výzev, dokud jednu z nich zaměstnanec nepřijal (Cisco Talos).
Obě společnosti měly vícefaktorové ověřování zapnuté. Útočníci druhý faktor neprolomili; obešli ho pomocí technik, které fungují právě proto, že zavedené MFA nutí unaveného člověka učinit bezpečnostní rozhodnutí v tu nejnevhodnější chvíli.
Pokud je vaším MFA kód přes SMS nebo jednodotykové „Schválit?“, stojí to za deset minut vaší pozornosti. Tyto dvě metody dnes patří mezi ty, které útočníci obcházejí, nikoli mezi ty, které je zastaví.
Tři útoky, které porazí „nějaké MFA“
- Push-bombing (únava z MFA, MFA bombing, 2FA bombing). Útočník už heslo má (z uniklé databáze, z phishingu nebo z jeho opakovaného použití). Spouští jedno přihlášení za druhým a chrlí na telefon uživatele proud výzev ke schválení, dokud někdo ze zmatku, nebo prostě jen aby to přestalo, neklepne na Schválit. Jedno klepnutí a jsou uvnitř.
- Výměna SIM (SIM swapping). SMS nikdy nebyla navržena jako bezpečnostní kanál. Útočník, který přesvědčí (nebo podplatí) mobilního operátora, aby přenesl číslo na novou SIM, dostává každý jednorázový kód, který na ně přijde. Žádný škodlivý kód, žádná phishingová stránka – jen telefonát na zákaznickou linku.
- Adversary-in-the-middle (AiTM). Přesvědčivá falešná přihlašovací stránka v reálném čase zprostředkovává tu skutečnou. Oběť zadá heslo, skutečný systém si vyžádá druhý faktor a oběť ho poskytne, protože se opravdu snaží přihlásit. Útočníkova proxy si odnese výslednou relaci. MFA „fungovalo“. Účet je přesto ztracen.
Americká agentura pro kybernetickou bezpečnost CISA ve svých doporučeních jmenuje všechny tři a stanoví jasnou hranici: za odolné vůči phishingu považuje pouze FIDO/WebAuthn a ověřování veřejným klíčem (PKI), protože klíč je vázán na adresu skutečného webu a podvržená stránka ho nemůže použít. Schvalování push výzvou na tomto seznamu není, a to ani s porovnáváním čísel (number matching) (informační list CISA).
Co zastaví který útok
Každý z těchto útoků má jiné slabé místo, a proto se vyplatí být přesný v tom, co porazí který.
- Výměna SIM a zachycení kódu: odstraňte kód. Pokud se klíč uživatele generuje v zabezpečeném hardwaru telefonu a nikdy ho neopustí, neexistuje žádné sdílené tajemství v databázi a přes SMS nic nepřichází. Není co zachytit a převedení telefonního čísla nepřenese nic, co by útočník mohl použít.
- Push-bombing: nechte uživatele přečíst, co schvaluje. Jakmile výzva dorazí na telefon, nepomůže žádný klíč ani biometrie, protože útok jednoduše žádá uživatele, aby řekl ano. Biometrie pouze potvrdí, že klepe majitel telefonu, nikoli že je přihlášení legitimní. Co funguje, je výzva, která nese konkrétní, čitelný popis přesně toho, co se schvaluje: která služba, která akce, odkud. Výzva, kterou uživatel sám nevyvolal, je viditelně cizí, a proto ji odmítne. Vypršení platnosti výzev a omezení toho, jak často je lze spouštět, připravují útok o množství výzev, na kterém stojí.
- Adversary-in-the-middle: samotné schválení ho nezastaví. Zde uživatel není oklamán, aby schválil cizí přihlášení. Schvaluje své vlastní, jen na nesprávném webu. Pomáhá ukázat, odkud požadavek přišel: pokud schválení uvádí adresu, ze které přihlášení dorazilo, proxy v jiné zemi padne do oka uživateli, který se podívá. To zvyšuje náklady útoku; nemožným ho to nečiní. Tam, kde model hrozeb vyžaduje odolnost vůči phishingu v přísném smyslu, jsou odpovědí klíče FIDO vázané na konkrétní web, spolu s krátkou životností relací a zásadami přihlašování, které omezují, kde lze relace použít.
To je rozdíl mezi MFA, které útočník už obchází skriptem, a MFA, které každý z těchto útoků zviditelní nebo zbaví smyslu.
Kde do toho zapadá Notakey
Notakey odstraňuje kód a každé schválení činí čitelným.
- Klíč uživatele se generuje uvnitř zabezpečeného hardwaru telefonu a nikdy ho neopustí. Není tu žádná SMS k zachycení ani kód k přeposlání.
- Notifikace je jen zvonek u dveří. Když uživatel otevře aplikaci, ta si stáhne schvalovací kartu přes HTTPS ze serveru, u kterého byla zaregistrována. To, co uživatel čte, tedy pochází z vašeho serveru, nikoli z notifikace, a jeho podpis se vztahuje právě k tomuto požadavku.
- Proti push-bombingu je obranou to, co si uživatel přečte: karta ukazuje, která služba žádá a co se schvaluje, takže výzvu, kterou nikdo nevyvolal, lze na první pohled poznat a uživatel ji odmítne. Požadavky mají omezenou platnost a vestavěný omezovač určuje, jak často je lze spustit, takže záplava výzev, na které útok stojí, je utnuta.
- Proti adversary-in-the-middle lze server nakonfigurovat tak, aby na kartě zobrazoval IP adresu, ze které požadavek přichází, název služby nebo URL, takže uživatel vidí, odkud přihlášení skutečně přichází. Víc tvrdit nebudeme: uživateli, který se podívá, to proxy odhalí; nemožným to útok nečiní.
- Pokrývá cesty, které útočníci skutečně používají; viz praktické návody pro 2FA na VPN přes RADIUS, vzdálenou plochu Windows a Linux SSH.
Přesvědčte se sami
Nejrychlejší způsob, jak ten rozdíl pocítit, je schválit transakci, kterou si můžete skutečně přečíst: konkrétní akci podepsanou z vlastního telefonu, místo klepnutí na výzvu bez kontextu.
Vyzkoušejte živé demo a podepište jednu asi za dvě minuty, nebo požádejte o demo a my namapujeme vaše přihlášení k VPN, SSO nebo Windows na pilotní provoz na vaší vlastní infrastruktuře.