ID | Technique | Tactic |
---|---|---|
T1110.001 | Password Guessing | Credential Access |
T1110 | Brute Force | Credential Access |
Detection: High Number of Login Failures from a single source
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.
Search
1`o365_management_activity` Workload=AzureActiveDirectory Operation=UserLoginFailed record_type=AzureActiveDirectoryStsLogon
2| bucket span=5m _time
3| stats dc(_raw) AS failed_attempts values(user) as user values(LogonError) as LogonError values(signature) as signature values(UserAgent) as UserAgent by _time, src_ip
4| where failed_attempts > 10
5| `high_number_of_login_failures_from_a_single_source_filter`
Data Source
Name | Platform | Sourcetype | Source |
---|---|---|---|
O365 UserLoginFailed | N/A | 'o365:management:activity' |
'o365' |
Macros Used
Name | Value |
---|---|
o365_management_activity | sourcetype=o365:management:activity |
high_number_of_login_failures_from_a_single_source_filter | search * |
high_number_of_login_failures_from_a_single_source_filter
is an empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.
Annotations
Default Configuration
This detection is configured by default in Splunk Enterprise Security to run with the following settings:
Setting | Value |
---|---|
Disabled | true |
Cron Schedule | 0 * * * * |
Earliest Time | -70m@m |
Latest Time | -10m@m |
Schedule Window | auto |
Creates Risk Event | True |
Implementation
You must install the Splunk Microsoft Office 365 Add-on and ingest Office 365 management activity events. Adjust the threshold value to suit the specific environment, as environments with naturally higher login failures might generate false positives at a lower threshold.
Known False Positives
An Ip address with more than 10 failed authentication attempts in the span of 5 minutes may also be triggered by a broken application.
Associated Analytic Story
Risk Based Analytics (RBA)
Risk Message | Risk Score | Impact | Confidence |
---|---|---|---|
Ip address $src_ip$ failed to authenticate more than 10 times in a 5 minute | 25 | 50 | 50 |
References
-
https://docs.microsoft.com/en-us/security/compass/incident-response-playbook-password-spray
-
https://docs.microsoft.com/azure/active-directory/reports-monitoring/reference-sign-ins-error-codes
Detection Testing
Test Type | Status | Dataset | Source | Sourcetype |
---|---|---|---|---|
Validation | ✅ Passing | N/A | N/A | N/A |
Unit | ✅ Passing | Dataset | o365 |
o365:management:activity |
Integration | ✅ Passing | Dataset | o365 |
o365:management:activity |
Replay any dataset to Splunk Enterprise by using our replay.py
tool or the UI.
Alternatively you can replay a dataset into a Splunk Attack Range
Source: GitHub | Version: 4