4.10 Module Assessment

60 minutes · Module 4 · Free

Module 4 — Final Assessment

Key takeaways

  • Sign-in data lives in TWO tables — SigninLogs (interactive) and AADNonInteractiveUserSignInLogs (token-based). Always check both.
  • Token replay appears only in the non-interactive table — missing it means missing the compromise
  • The 8-field checklist: ResultType, IPAddress, Location, TimeGenerated, AppDisplayName, ClientAppUsed, ConditionalAccessStatus, MfaDetail
  • Memorize the five error codes: 0 (success), 50126 (wrong password), 50053 (locked), 50074 (MFA incomplete), 53003 (CA blocked)
  • Brute force: summarize by UserPrincipalName. Password spray: summarize by IPAddress. Same operators, different grouping.
  • Legacy authentication (IMAP, POP3, SMTP) bypasses MFA entirely — block it in conditional access
  • The anti-join pattern (non-interactive IPs not in interactive baseline) is the primary token replay detection
  • ConditionalAccessStatus = "notApplied" means zero protection — these are your conditional access gaps
  • Build user baselines proactively for VIP accounts — IP, location, application, and time-of-day patterns
  • Every baseline query can be promoted to a Sentinel analytics rule for automated detection

Final assessment (12 questions)

1. A user's SigninLogs show a successful sign-in from New York at 09:14. AADNonInteractiveUserSignInLogs shows successful token refreshes from Lagos starting at 09:22. What happened?

The user is using a VPN
Normal token refresh behavior
Token replay — an attacker captured the session token (likely via AiTM) and is replaying it from Lagos. The legitimate user signed in from New York; the attacker's token activity appears from a completely different location.

2. ResultType 50126 appears 342 times from IP 203.0.113.45 targeting the account s.williams@. What attack is this?

Brute force — many failures from one IP targeting one account, all with error 50126 (invalid credentials)
Password spray
Token replay

3. IP 203.0.113.45 shows 50 failures across 40 different user accounts. What attack is this?

Brute force
Password spray — one IP targeting many accounts (dcount of UserPrincipalName is high), with 1-2 attempts per account (below lockout thresholds)
DDoS

4. A sign-in shows ClientAppUsed = "IMAP4" with ResultType = 0 from an unfamiliar IP. Why is this critical?

IMAP is outdated but harmless
IMAP sign-ins are always suspicious
IMAP does not support MFA — the attacker authenticated with stolen credentials via a legacy protocol, bypassing all modern authentication controls. They have direct mailbox access.

5. ConditionalAccessStatus = "notApplied" on a successful sign-in to Azure Portal. What does this mean?

The sign-in was blocked by CA
CA evaluated and passed
No conditional access policy evaluated — this sign-in had zero protection beyond credentials. An attacker with stolen credentials accesses Azure Portal unimpeded. This is a critical gap.

6. What is the purpose of the anti-join pattern in token replay detection?

It finds non-interactive sign-in IPs that have NO corresponding interactive sign-in for the same user — IPs where the token was used but never earned through a login page
It finds matching IPs across both tables
It counts sign-ins per IP

7. You see a successful sign-in at 2:14 AM for a 9-to-5 employee from an unfamiliar IP. What is your assessment?

Probably working late
Scheduled task running
Strong compromise indicator — off-hours activity from an unfamiliar IP suggests the legitimate user is asleep while an attacker operates in their account. Check the non-interactive logs for the same IP.

8. Your application baseline query shows a finance user suddenly accessing Azure Key Vault. Why investigate?

A finance user has no legitimate reason to access Key Vault (secrets, certificates, encryption keys). This is either a compromised account or an insider exploring resources beyond their role — both require investigation.
Key Vault access is always suspicious
The user was probably curious

9. A report-only conditional access policy shows it would have blocked 340 sign-ins this week. What should you do?

Leave it in report-only indefinitely
Analyze the 340 sign-ins — if they are predominantly risky or anomalous activity (not legitimate business), move the policy to enforced mode. If enforcement would disrupt legitimate operations, adjust the policy scope first.
Delete the policy

10. You want to convert your "sign-in from new country" baseline query into an automated detection. What do you do?

Save it as a scheduled Sentinel analytics rule with entity mapping to the user account and IP address, appropriate severity, and a lookback window matching your baseline period
Run it manually every morning
Add it to a workbook

11. Why must you check BOTH SigninLogs and AADNonInteractiveUserSignInLogs during every compromise investigation?

They contain different column schemas
Microsoft requires it
Token replay (the most dangerous post-compromise technique) appears ONLY in non-interactive logs. Checking only SigninLogs misses stolen token usage entirely — you would see the legitimate sign-in but not the attacker's activity.

12. What is the single highest-impact hardening action for most organizations that have not yet done it?

Deploy SIEM
Block legacy authentication via conditional access — it eliminates the entire class of MFA-bypass attacks via IMAP, POP3, and SMTP with a single configuration change
Increase password complexity requirements