An employee receives a document invitation, follows the sign-in instructions, and lands on a genuine Microsoft page. The address looks right. The employee completes authentication successfully. The missing question is whose application receives the access that authentication approves.
Device code phishing exploits that gap. For a company assessing its Microsoft 365 exposure, checking whether employees recognize a fake login domain is only part of the problem. The assessment also needs to examine which authentication flows the organization permits and how it handles an unauthorized grant.
Understand the decision behind the code
Device authorization lets a user complete sign-in on another device for a client that cannot conveniently collect input itself. In a phishing scenario, the attacker supplies a code associated with the attacker’s client. The victim’s interaction with a legitimate identity provider can complete that client’s authorization.
Microsoft’s September 22 EvilTokens research documents campaigns abusing this flow to obtain tokens and access organizational accounts. The practical lesson is to connect a sign-in to the application or device the employee actually intended to authorize. Familiar branding does not establish that connection.
An illustrative finance employee might be told to enter a code to view a supplier’s revised invoice. Opening an invoice and registering a new client session are different actions. Employee guidance should make that distinction concrete: a code provided by an unsolicited message needs verification through the known business workflow before it is entered.
Find the legitimate uses before changing policy
Ask the identity administrator to identify current device-code use, the accounts involved, and the business owner for each case. Meeting-room hardware or a specific administrative tool may have a legitimate dependency. A broad exception for every employee is a different choice from an exception for a documented device group.
Microsoft’s authentication-flow documentation describes reviewing sign-in logs and using report-only Conditional Access policies to understand impact. It recommends allowing device code flow only where needed. Treat report-only results as impact evidence, not as proof that a blocking control is already active.
For a review, produce a small exception register. Each exception needs a purpose, owner, scope, and review date. Ask what prevents an attacker from using the same exception with a different client or destination resource. If the answer is unknown, keep that uncertainty in the assessment rather than treating the exception as automatically safe.
Test the policy with accounts created for the assessment
Use a test identity, synthetic mailbox content, and an approved test client. Establish a permitted baseline, then exercise a flow the policy is intended to deny. Do not ask an employee to authorize a real attacker-controlled application as a demonstration.
Record the client identity, target resource, policy result, and whether a usable session was created. Repeat the test with an account inside and outside the approved exception. If the design permits a narrowly defined device workflow, also confirm that the workflow still works under the enforced policy.
This creates two meaningful outcomes: legitimate business access remains possible, and the excluded path is rejected. A screenshot of a policy’s configuration establishes intent. These results establish its behavior for the tested cases.
Rehearse containment beyond a password change
If unauthorized access occurs, the response owner needs to consider issued sessions, refresh tokens, added authentication methods, application permissions, and activity in the affected services. The correct actions depend on the evidence and the identity platform’s behavior. Do not assume resetting a password proves every issued access path has stopped.
For a tabletop exercise, create a synthetic timeline with a sign-in, mailbox access, and a suspicious rule change. Ask the team to identify which logs it needs, who can revoke access, and how it would verify containment. Check the retention period before an incident, since a missing log cannot be recovered by writing a better response procedure later.
Measure the handoff between help desk, identity administrator, and incident response. The employee’s report needs a route to someone with the authority to investigate. A technically correct control can still leave a damaging delay if every team expects another team to act.
Where this fits in a Ceron assessment
For Ceron, agree whether the engagement covers identity configuration, an authorized authentication-flow test, or the customer application that trusts the resulting identity. These scopes require different access and evidence. A website’s HTTPS or security-header results do not establish whether Microsoft 365 sign-in policies are effective.
The useful report connects permitted flows, documented exceptions, actual policy decisions, and the containment exercise. It should give the business a clear next action for each unresolved path and a retest condition for closure.
Device code phishing is an access-authority problem presented as a routine sign-in. Review the authority and test the policy, and the conversation becomes much more useful than asking whether a login page looks authentic.
Further Ceron reading
Session revocation after compromise explains why issued access deserves separate verification. The finance and incident scenarios above are illustrative assessment designs.