Device code phishing: de nieuwe route langs MFA in Microsoft 365

Device code phishing omzeilt MFA via de echte Microsoft-pagina. Lees waarom AitM-detectie het mist en hoe je de aanval blokkeert en detecteert.

Erik Remmelzwaal · CEO

Jarenlang was adversary-in-the-middle (AitM) de gangbare manier om een Microsoft 365-account over te nemen. Een phishingkit zet een nagemaakte inlogpagina neer die alles doorgeeft aan Microsoft. De gebruiker logt in, doet zijn MFA en de kit vangt onderweg de sessiecookie af. Kits als Evilginx maakten dat op grote schaal mogelijk.

Attic vangt die aanvallen al lange tijd op, en dat werkt nog steeds. Alleen schuiven aanvallers op naar een andere techniek: device code phishing. Daar heeft AitM-detectie geen grip op, om een simpele reden. Er is geen nagemaakte pagina om te betrappen.

Hoe Attic AitM-phishing opvangt

In Entra ID kun je de inlogpagina van je organisatie een eigen huisstijl geven, met logo, achtergrond en eigen CSS. Attic gebruikt die CSS als verklikker. In de opmaak zit een verwijzing naar een klein element op een server van Attic, en dat element wordt opgehaald zodra de inlogpagina laadt.

Op de echte inlogpagina van Microsoft gebeurt dat vanaf het domein van Microsoft. Een AitM-kit stuurt de echte pagina door via zijn eigen domein, en de huisstijl van de organisatie gaat gewoon mee. Dan wordt het element opgehaald vanaf een ander domein. Attic ziet dat en slaat alarm, met het domein van de nagemaakte pagina erbij.

Dat werkt omdat AitM altijd een tussenpersoon nodig heeft: een pagina op een domein dat niet van Microsoft is. Precies die afhankelijkheid laat device code phishing weg.

Hoe device code phishing werkt

Een medewerker krijgt een Teams-uitnodiging voor een overleg. Om deel te nemen moet hij een code invullen op een pagina van Microsoft. De pagina is echt, de inlog is echt en de MFA-melding op zijn telefoon ook. Hij keurt goed en gaat verder met zijn werk.

Op dat moment heeft iemand anders een geldig token voor zijn account. Er is geen wachtwoord gestolen en er stond geen nepsite tussen. Dat is device code phishing, en het werkt juist omdat alles wat de medewerker ziet klopt.

De device code flow is bedoeld voor apparaten zonder goed toetsenbord, zoals een vergaderscherm of een smart-tv. Het apparaat toont een code, je vult die code op je laptop of telefoon in op microsoft.com/devicelogin en meldt je daar aan. Daarna is het apparaat ingelogd met jouw account.

Een aanvaller draait dat om:

  1. De aanvaller vraagt zelf een device code aan bij Microsoft, meestal vanuit een script.
  2. De code gaat naar het slachtoffer, verpakt als meeting-ID in een Teams-uitnodiging, een mail of een chatbericht.
  3. Het slachtoffer vult de code in op de echte Microsoft-pagina en doet de MFA zoals altijd.
  4. Microsoft geeft de tokens aan het apparaat dat de code aanvroeg: dat van de aanvaller.

Hier zit het verschil met AitM. De gebruiker staat op de echte Microsoft-pagina, dus de branding laadt vanaf het echte domein en de AitM-detectie ziet een gewone inlog. MFA houdt het ook niet tegen, want de gebruiker doet de MFA zelf.

Microsoft beschreef in februari 2025 een campagne van Storm-2372 die precies zo werkte, met nep-uitnodigingen voor Teams als lokaas (Microsoft Security Blog). Na de eerste toegang stuurden de aanvallers vanuit het overgenomen account nieuwe phishingberichten naar collega's en doorzochten ze de mailbox.

Twee flows naast elkaar: AitM-phishing via een nagemaakte inlogpagina waar Attic alarm slaat, en device code phishing via de echte Microsoft-pagina zonder AitM-alarm.

Bij AitM zit er een vreemd domein tussen de gebruiker en Microsoft, en daar slaat Attic alarm. Bij device code is er geen tussenpersoon: de gebruiker praat met Microsoft zelf, en Microsoft geeft de tokens aan de aanvaller.

Device code flow blokkeren in Microsoft 365

De meeste organisaties gebruiken de device code flow niet, of alleen op een paar vergaderruimtes. Toch staat de flow in een standaard Microsoft 365-tenant open voor iedereen. Microsoft raadt zelf aan de flow te blokkeren waar die niet nodig is (Conditional Access: authentication flows).

Dat is de eerste laag in Attic MDR. Check CHK-1172, Block Device Code Flow Authentication hoort bij de doorlopende hardening van je Microsoft 365-configuratie. Attic controleert of device code authenticatie geblokkeerd is. Is dat niet zo, dan zie je de afwijking en zet Attic de blokkade na jouw akkoord. Heb je wel apparaten die de flow nodig hebben, dan bespreek je die uitzondering vooraf.

Daarmee is de aanval voor de meeste accounts klaar voordat hij begint. De code die de aanvaller verstuurt levert niets meer op.

Device code phishing detecteren

Een blokkade met een uitzondering is nog steeds een uitzondering. En een instelling kan later weer worden aangepast. Daarom kijkt Attic MDR ook naar wat er in de aanmeldingen gebeurt. Drie regels zijn specifiek voor device code phishing gebouwd:

  • RULE-1164, Device code flow sign in on Tier0 account. Wat de regel ziet: een aanmelding via de device code flow op een account met de meeste rechten, zoals een globale beheerder. Waarom dat telt: een overgenomen beheerdersaccount geeft de aanvaller de hele tenant.
  • RULE-1166, Device code sign in with programmatic user agent. Wat de regel ziet: een device code aanmelding vanaf een script of tool in plaats van een gewone browser of app. Waarom dat telt: aanvallers vragen de code aan vanuit een script; een echt vergaderscherm doet dat niet.
  • RULE-1167, Device registered after device code sign in. Wat de regel ziet: een nieuw apparaat dat in Entra ID wordt geregistreerd kort na een device code aanmelding. Waarom dat telt: met een geregistreerd apparaat houdt de aanvaller toegang, ook als het oorspronkelijke token verloopt.

De laatste regel is belangrijk omdat aanvallers hun aanpak bijstellen. Microsoft zag Storm-2372 na de eerste publicatie overstappen op een andere client in de device code flow, juist om een apparaat te kunnen registreren en langer binnen te blijven (Microsoft Security Blog).

Na de melding

Een melding alleen lost niets op. Gaat een van deze regels af, dan onderzoekt IVON, de agentic laag in Attic MDR, de melding zodra die binnenkomt. IVON kijkt naar het account, de aanmelding, het apparaat en wat er daarna met het account is gebeurd. Daarna geeft IVON een oordeel met het bewijs erbij en een advies voor de vervolgstap, bijvoorbeeld de sessies van het account intrekken.

Attic voert dat advies uit, na jouw akkoord of automatisch als je dat hebt aangezet. Bij automatische goedkeuring zit daar consequent minder dan zes minuten tussen.

Blijkt het een collega te zijn die echt een vergaderscherm koppelde, dan zie je dat ook in het oordeel van IVON, met de reden erbij.

Device code aanmeldingen zelf nakijken in Entra ID

Wil je weten hoe dit er in je eigen tenant voor staat? Open in Entra ID de aanmeldlogboeken en filter op het authenticatieprotocol Device code (uitleg bij Microsoft). Staan daar aanmeldingen die je niet kunt verklaren, dan is het tijd om de flow dicht te zetten.

Attic doet die controle doorlopend, samen met de rest van de hardening en de 24/7 detectie. Probeer 14 dagen gratis, of test IVON op een incident uit je eigen omgeving.

Veelgestelde vragen over device code phishing

Wat is device code phishing?

Device code phishing is een aanval waarbij de aanvaller een device code aanvraagt bij Microsoft en het slachtoffer die code laat invullen op de echte inlogpagina. Microsoft geeft daarna de tokens aan het apparaat van de aanvaller.

Helpt MFA tegen device code phishing?

Nee. De gebruiker doet de MFA zelf, op de echte pagina van Microsoft. De aanvaller hoeft MFA dus niet te omzeilen.

Wat is het verschil tussen AitM en device code phishing?

Bij AitM loopt de inlog via een nagemaakte pagina op een ander domein, en de kit steelt de sessiecookie. Bij device code phishing is er geen nagemaakte pagina: het slachtoffer logt in bij Microsoft zelf.

Hoe blokkeer je de device code flow?

In Entra ID kan dat met een Conditional Access-beleid op authenticatiestromen. Blokkeer de flow voor iedereen en maak alleen een uitzondering voor apparaten die de flow echt nodig hebben.

Bronnen

Terug naar blog
Deel dit artikel