Detection: O365 Excessive SSO logon errors
Description
The following analytic detects accounts experiencing a high number of Single Sign-On (SSO) logon errors. It leverages data from the o365_management_activity dataset, focusing on failed user login attempts with SSO errors. This activity is significant as it may indicate brute-force attempts or the hijacking/reuse of SSO tokens. If confirmed malicious, attackers could potentially gain unauthorized access to user accounts, leading to data breaches, privilege escalation, or further lateral movement within the organization.
Search
1`o365_management_activity` Workload=AzureActiveDirectory LogonError=*Sso* Operation=UserLoginFailed
2
3| stats count min(_time) as firstTime max(_time) as lastTime values(user) as user
4 BY src vendor_account vendor_product
5 dest signature user_agent
6
7| where count >= 5
8
9| `security_content_ctime(firstTime)`
10
11| `security_content_ctime(lastTime)`
12
13| `o365_excessive_sso_logon_errors_filter`
Data Source
Macros Used
o365_excessive_sso_logon_errors_filter is an empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.
Annotations
| ID |
Technique |
Tactic |
| T1556 |
Modify Authentication Process |
Credential Access |
Exploitation
Installation
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 Finding (Notable) |
No |
| Creates Intermediate Finding (Risk Event) |
Yes |
Anomaly detections generate Intermediate Findings (Risk Events). They do not generate a Finding (Notable) directly.
Implementation
You must install splunk Microsoft Office 365 add-on. This search works with o365:management:activity
Known False Positives
Logon errors may not be malicious in nature however it may indicate attempts to reuse a token or password obtained via credential access attack.
Associated Analytic Story
| Message |
Entity Field |
Entity Type |
Risk Score |
| Excessive number of SSO logon errors from $src$ using UserAgent $user_agent$. |
user |
user |
20 |
Threat Objects
| Field |
Type |
| src |
ip_address |
References
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: 12