Azure AD Graph High 4xx Error Ratio from User
Detects an unusually high ratio of 4xx HTTP responses from Azure AD Graph (graph.windows.net) per calling identity in a short window. Post-identity compromise leading to recon often leaves a tail of 403s and 404s as…
Description
Detects an unusually high ratio of 4xx HTTP responses from Azure AD Graph (graph.windows.net) per calling identity in a short window. Post-identity compromise leading to recon often leaves a tail of 403s and 404s as tooling walks endpoints it does not have permission for, asks for object IDs it does not have, or uses an OAuth client that has been pulled off the AAD Graph allow-list. Surges or an unexpected ratio of 4xx responses concentrated on a single (user and ASN) pair are characteristic of automated tooling rather than human or first-party traffic.
Detection logic
Its licence does not clear it for publishing here
Sunturai publishes a detection's own text where the licence it arrived under has been reviewed and permits it, and Elastic License 2.0 has not. The query as its source wrote it, its canonical form and the hash that pins this revision are in the workspace record.
Detection requirements
- Platform
- ESXiIaaSIdentity ProviderLinuxmacOSOffice SuiteSaaSWindows
The rule states no platform. This is derived from the 2 ATT&CK techniques it maps to.
Known benign triggers
- Authorized red team activity. Document and add exceptions on the user, app ID, or source IP.
- Legacy tooling may still be using AAD Graph. Validate and add exceptions on the calling app ID after review.
- Legitimate first-party clients occasionally hit 4xx responses as part of conditional access flows, transient permission changes, or stale token retries. Tune the threshold for your tenant baseline.
MITRE ATT&CK mappings
0 exclusive techniques.This is coverage no other published rule has; it is not this rule's total technique count.
References
| Reference | Cited by |
|---|---|
| aadinternals.com | Only this detection cites it |
| github.com/dirkjanm/ROADtools | 16from 2 sources |
| learn.microsoft.com/en-us/graph/migrate-azure-ad-graph-overview | 6 |
From the source
- At source
- Open at source
- Upstream identifier
- 8cbc7793-9ce4-4b7d-9c20-a30afbde2a05
- Tagged by the source as
- Data Source: AzureData Source: Azure AD GraphData Source: Azure AD Graph Activity LogsDomain: CloudDomain: IdentityNoise: UnknownPerformance: FastPlatform: Entra IDResources: Investigation GuideRule Type: ES|QLTactic: DiscoveryUse Case: Threat Detection
Licence
- Published under
- Elastic License 2.0Read the licence
- Attribution
- Required
Authorship
- Written by
- Published
- Sep 20, 2026
- Version
- 3