The Logs Already Knew
Nothing looked wrong. No high severity alerts. No incidents. Just another quiet day in Microsoft Sentinel… until one successful sign-in raised the real question: what doesn’t fit the pattern?
This is where Microsoft Sentinel and security operations visibility becomes critical — not just reacting to alerts, but understanding behaviour across logs.
Briefing summary
The data was already there. Sentinel didn’t fail. The sign-in looked valid on paper, but deeper hunting across Microsoft security signals exposed impossible travel, token reuse and quiet session hijacking.
What happened
Because even a “normal” sign-in can expose gaps in identity and access in Microsoft Entra ID.
The KQL that changed everything
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
SigninLogs | where ResultType == 0 | extend Country = tostring(LocationDetails.countryOrRegion), City = tostring(LocationDetails.city), AuthRequirement = tostring(AuthenticationRequirement), MFA = tostring(MfaDetail.authMethod), SessionId = tostring(CorrelationId) | summarize SignInCount = count(), Countries = make_set(Country), Cities = make_set(City), IPAddresses = make_set(IPAddress), AuthRequirements = make_set(AuthRequirement), MFAMethods = make_set(MFA), SessionIds = make_set(SessionId) by UserPrincipalName, bin(TimeGenerated, 1d) | where array_length(Countries) > 1
Agent Foskett moment
This is exactly where weak enforcement in identity and access controls allows attackers to operate quietly.
What most environments miss
Related investigations
Final thought
If your logs are already telling the story, the next step is making sure your Azure environment is actually tuned to surface it. 👉 Strengthen Azure security visibility and detection
Develop IT. Protect IT. GEMXIT PTY LTD | GEMXIT UK LTD