Co když se přihlásíte na skutečný web Microsoftu, potvrdíte MFA, a přesto otevřete svůj firemní účet útočníkovi? Právě na tom stojí Device Code Phishing. Technika nezneužívá falešný formulář, ale legitimní mechanismus přihlašování Microsoft Entra ID.
Tohle není klasický phishing
Při klasickém phishingu útočník často napodobuje přihlašovací stránku a snaží se získat jméno a heslo, nebo i MFA. Tady je ale situace zákeřnější – přihlašovací stránka může být skutečná a vícefaktorové ověření může proběhnout správně. Jenže uživatel přitom schvaluje přístup aplikaci, která běží u útočníka. Pravá doména jako proof že je všechno v cajku tak sama o sobě nestačí.
K čemu je Device Code Flow dobrý?
Device Code Flow, přesněji OAuth 2.0 Device Authorization Grant, řeší přihlašování zařízení, která jsou bez klávesnice nebo prohlížeče. Typicky jde o chytré televize, kiosky, nebo konferenční zařízení v zasedačkách. Zařízení zobrazí kód, uživatel ho na jiném zařízení zadá na ověřovací stránce a tím potvrdí přihlášení. První zařízení, které zobrazilo kód, pak získá oprávnění pro danou aplikaci (login).
Z pohledu uživatele je to praktické. Z pohledu útočníka je zásadní, že někdo jiný může schválit autorizační relaci spuštěnou na jeho počítači. Nejde tedy o bezpečnostní chybu samotného protokolu, ale o zneužití důvěry a kontextu přihlášení – tedy můj oblíbený social engeneering smíchaný s trochou technologické magie.
Jak útok probíhá v šesti krocích
- Útočník ve své aplikaci zahájí přihlašování přes Device Code Flow.
- Microsoft Entra ID vygeneruje uživatelský kód a samostatný device code pro aplikaci.
- Útočník oběti předá uživatelský kód – třeba v pozvánce na schůzku nebo přes chat.
- Oběť na skutečné přihlašovací stránce Microsoftu zadá kód, přihlásí se a případně i schválí MFA.
- Autorizační server zpřístupní tokeny aplikaci, která požadavek spustila.
- Útočník s vydanými tokeny získá přístup k povoleným službám, třeba e-mailu či souborům.
Oběť útočníkovi neodevzdala heslo. Sama dokončila jeho přihlašovací požadavek.

Skutečné zdokumentované případy
Volexity, únor 2025 – úspěšná kompromitace Microsoft 365
Volexity popsala útok, v němž osoba vydávající se za zástupce ukrajinského ministerstva obrany kontaktovala cíl přes Signal a navedla ho k přihlášení v souvislosti s komunikační aplikací Element. Oběť zadala kód a schválila MFA. Útočník následně získal přístup k firemním datům v OneDrivu. Jméno napadené organizace nebylo zveřejněno. Zdroj: Volexity.
Storm-2372, únor 2025 – cílení na evropské organizace
Microsoft informoval o kampani Storm-2372, která zasahovala mimo jiné státní instituce, obranný průmysl a další organizace v Evropě. Útočníci používali sociální inženýrství a device code k získání přístupu k účtům. Veřejný popis nejmenuje konkrétní českou napadenou firmu. Zdroj: Microsoft Threat Intelligence.
Evropské bezpečnostní akce a falešné pozvánky
Volexity později popsala cílené kampaně napodobující evropské bezpečnostní konference a registrace na akce. Podvržený registrační proces přiváděl oběti k autentizaci Microsoft 365. Je nutné rozlišovat prokázané použití této techniky od veřejně potvrzeného úspěšného průniku u konkrétní firmy. Zdroj: Volexity.
Česká republika
NÚKIB před Device Code Phishingem veřejně varoval, ale v ověřených podkladech nemáme jednoznačně veřejně potvrzenou konkrétní českou firmu napadenou touto metodou. Nebudu proto tvrdit, že nějaká známá česká společnost byla obětí bez důkazu, i když jsem o tom od kolegů slyšel.

Technicky: co se děje pod kapotou?
Na začátku aplikace kontaktuje autorizační endpoint Microsoftu a předá identifikátor klienta (client_id) a požadovaná oprávnění (scope). Dostane user_code pro člověka a device_code pro vlastní kontrolu dokončení přihlášení. Dál pravidelně zjišťuje stav autorizace, dokud neobdrží token nebo nevyprší časový limit.
POST https://login.microsoftonline.com/{tenant}/oauth2/v2.0/devicecode
Přístupový token (access_token) funguje jako časově omezená vstupenka ke konkrétnímu API podle schválených oprávnění. Za určitých okolností lze vydat i obnovovací token (refresh_token). Krátká platnost původního device code tedy neznamená, že přístup útočníka po několika minutách automaticky zmizí. Rozsah škody závisí na oprávněních aplikace, zásadách organizace a typu služby.
Proč je to tak účinné?
- Oběť pracuje s legitimní přihlašovací stránkou Microsoftu.
- Útočník nemusí přímo znát heslo.
- MFA může ověřit uživatele, aniž by vyřešilo podvodný kontext požadavku.
- Není nutné instalovat malware.
- Útočníci dokážou v krátkém čase automaticky generovat a předávat nové kódy.
Jak se bránit jako běžný uživatel
Nikdy nezadávejte přihlašovací kód, který vám někdo nevyžádaně poslal, pokud jste sami vědomě nezahájili přihlášení konkrétního zařízení nebo aplikace. Pokud vás k tomu někdo tlačí během schůzky, chatu nebo telefonátu, ověřte jeho požadavek jiným kanálem. Po podezřelém schválení ihned kontaktujte IT. A hlavně mějte na paměti, že správná URL a úspěšné MFA ještě nedokazují, že schvalujete správnou aplikaci!
Pro administrátory Microsoft 365: blokace přes Conditional Access
V Microsoft Entra ID lze vytvořit zásadu Conditional Access → Authentication flows → Device code flow → Block access. Doporučeným výchozím stavem je tok blokovat, pokud jej organizace nepotřebuje. Politiku nejprve spusťte v režimu Report-only a ověřte dopady na reálná zařízení a uživatele. Výjimky musí být úzké a zdokumentované. Pro Conditional Access je potřeba odpovídající licence Entra ID.
Příklad konfigurace:
Users: All users (s výjimkou vhodně chráněných nouzových účtů a schválených provozních výjimek).
Target resources: All resources.
Conditions: Authentication flows → Device code flow.
Grant: Block access. Po vyhodnocení v report-only teprve přepněte na On.
Kdy ponechat výjimku
Tam, kde je Device Code Flow skutečně potřeba – například u vybraných konferenčních zařízení, specifických registračních procesů nebo nástrojů bez dostupného interaktivního prohlížeče. Výjimka pro účet však nemusí automaticky znamenat omezení jen na jednu konkrétní aplikaci. Pravidelně kontrolujte její rozsah.
Jak vyhledat podezřelá přihlášení
V Entra sign-in logs lze filtrovat autentizační protokol Device code. Samotný výskyt není důkaz útoku a IOC. Korelujte souvislost s IP adresami, aplikacemi, geografickou polohou, oprávněními a následnými přístupy k datům.
SigninLogs
| where TimeGenerated > ago(30d)
| where AuthenticationProtocol =~ "deviceCode"
| project TimeGenerated, UserPrincipalName, AppDisplayName, IPAddress, Location, ResultType, ConditionalAccessStatus, CorrelationId
| order by TimeGenerated desc
Co dělat po potvrzení úspěšného napadení
- Podle situace dočasně zablokovat kompromitovaný účet a zabránit dalšímu zneužití toku.
- Odvolat přihlašovací relace a refresh tokeny – nezapomínat na možnou zbytkovou platnost access tokenů.
- Prověřit Exchange Online, OneDrive, SharePoint, Microsoft Graph a auditní logy.
- Zkontrolovat nová pravidla pošty, přeposílání (přeposílání v rámci BEC), souhlasy aplikacím a registrace zařízení.
- Vyhodnotit odcizená data, další šíření a nezbytné incidentní notifikace.
Závěr
Device Code Phishing ukazuje, že útočníci dnes nemusejí krást hesla ani vytvářet dokonalé kopie přihlašovacích stránek. Někdy stačí přesvědčit člověka, aby sám dokončil přihlášení cizí aplikace. Nejde jen o to, kde se přihlašuji. Jde i o to, komu tím dávám přístup.
Tyhle věci v BOITu školíme na našich cybersec workshopech pro zaměstnance i management. Pokud tedy chcete moderní školení pro zvýšení odolnosti proti aktuálním hrozbám, dejte vědě!
🔥 Čaj, všiml/a sis, že tenhle web je bez reklam? 🤔 💸 Nesbírám a neprodávám data návštěvníků. 💸 🕵️♂️ Respektuji Vaše soukromí. 🕵️♂️ 🌎 Píšu pro dobro lidstva. 🌎 ❤️ Líbil se ti článek? ❤️
Nebo pošli BTC:bc1qzcu2325kc89lx7zf07vaud8yqx04aemu8aygguZjistěte více z Spajkovo postřehy z kyberprostoru 👾
Přihlaste se k odběru a dostávejte nejnovější příspěvky do své e-mailové schránky.
