High Number of Login Failures from a single source
The following analytic detects multiple failed login attempts in Office365 Azure Active Directory from a single source IP address. It leverages Office365 management activity logs, specifically…
Description
The following analytic detects multiple failed login attempts in Office365 Azure Active Directory from a single source IP address. It leverages Office365 management activity logs, specifically AzureActiveDirectoryStsLogon records, aggregating these logs in 5-minute intervals to count failed login attempts. This activity is significant as it may indicate brute-force attacks or password spraying, which are critical to monitor. If confirmed malicious, an attacker could gain unauthorized access to Office365 accounts, leading to potential data breaches, lateral movement within the organization, or further malicious activities using the compromised account.
Detection logic
Detection requirements
- Platform
- ContainersESXiIaaSIdentity ProviderLinuxmacOSNetwork DevicesOffice SuiteSaaSWindows
The rule states no platform. This is derived from the ATT&CK technique it maps to.
- Log source category
- o365_userloginfailed
Known benign triggers
- An Ip address with more than 10 failed authentication attempts in the span of 5 minutes may also be triggered by a broken application.
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 |
|---|---|
| attack.mitre.org/techniques/T1110/001/ | 5 |
| docs.microsoft.com/azure/active-directory/reports-monitoring/reference-sign-ins-error-codes | 6 |
| docs.microsoft.com/en-us/security/compass/incident-response-playbook-password-spray | 7 |
| www.cisa.gov/uscert/ncas/alerts/aa21-008a | 11 |
From the source
- At source
- Open at source
- Upstream identifier
- 7f398cfb-918d-41f4-8db8-2e2474e02222
- Tagged by the source as
- Office 365 Account TakeoverO365 TenantcloudSplunk CloudSplunk EnterpriseSplunk Enterprise Securitythreat
Licence
- Published under
- Apache License 2.0Read the licence
- Attribution
- Required
- Obtained under
- Apache-2.0Read the origin licence
Authorship
- Written by
- Published
- Aug 26, 2026
- Version
- 1