Try in Splunk Security Cloud


The following analytic detects addition of new service principal accounts added to O365 tenants. Attackers can abuse service principals in Office 365 (now known as Microsoft 365) to gain unauthorized access and perform malicious actions within an organization's environment. Service principals are essentially non-human accounts used by applications, services, or scripts to access resources and interact with APIs on behalf of the organization.

  • Type: TTP
  • Product: Splunk Enterprise, Splunk Enterprise Security, Splunk Cloud

  • Last Updated: 2023-08-02
  • Author: Rod Soto, Splunk
  • ID: 1668812a-6047-11eb-ae93-0242ac130002




ID Technique Tactic
T1136.003 Cloud Account Persistence
T1136 Create Account Persistence
Kill Chain Phase
  • Installation
  • DE.CM
  • CIS 10
`o365_management_activity` Workload=AzureActiveDirectory Operation="*Add service principal*" OR (Operation = "*principal*" AND action = "created") 
| stats count values(ModifiedProperties{}.NewValue) as new_value by src_user src_user_type action Operation authentication_service Workload 
| `security_content_ctime(firstTime)` 
| `security_content_ctime(lastTime)` 
| `o365_added_service_principal_filter`


The SPL above uses the following Macros:

:information_source: o365_added_service_principal_filter is a empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.

Required fields

List of fields required to use this analytic.

  • _time
  • Workload
  • signature
  • src_user
  • src_user_type
  • action
  • Operation
  • authentication_service

How To Implement

You must install splunk Microsoft Office 365 add-on. This search works with o365:management:activity

Known False Positives

The creation of a new Federation is not necessarily malicious, however these events need to be followed closely, as it may indicate federated credential abuse or backdoor via federated identities at a different cloud provider.

Associated Analytic Story


Risk Score Impact Confidence Message
42.0 70 60 User $src_user$ has created new service principal $new_value$ in AzureActiveDirectory

:information_source: The Risk Score is calculated by the following formula: Risk Score = (Impact * Confidence/100). Initial Confidence and Impact is set by the analytic author.


Test Dataset

Replay any dataset to Splunk Enterprise by using our tool or the UI. Alternatively you can replay a dataset into a Splunk Attack Range

source | version: 3