Branch was auto-updated.

This commit is contained in:
srv-rr-gh-researchbt
2023-08-18 13:27:39 -07:00
committed by GitHub
26 changed files with 236 additions and 227 deletions
@@ -29,12 +29,12 @@ tags:
asset_type: AWS Account
confidence: 80
impact: 80
message: A new virtual device $virtualMFADeviceName$ is added to user $user_arn$
message: A new virtual device $virtualMFADeviceName$ is added to user $user_arn$
mitre_attack_id:
- T1556
- T1556.006
observable:
- name: user_name
- name: user_arn
type: User
role:
- Victim
@@ -2,7 +2,7 @@ name: Azure Active Directory High Risk Sign-in
id: 1ecff169-26d7-4161-9a7b-2ac4c8e61bea
version: 1
date: '2022-07-11'
author: Mauricio Velazco, Splunk
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
status: production
type: TTP
description: The following analytic triggers on a high risk sign-in against Azure
@@ -10,13 +10,12 @@ description: The following analytic triggers on a high risk sign-in against Azur
sign-in events using heuristics and machine learning to identify potentially malicious
events and categorizes them in three categories high, medium and low.
data_source: []
search: ' `azuread` body.category=UserRiskEvents body.properties.riskLevel=high |
rename body.properties.* as * | stats values(userPrincipalName) by _time, ipAddress,
search: ' `azuread` category=UserRiskEvents properties.riskLevel=high |
rename properties.* as * | stats values(userPrincipalName) as userPrincipalName by _time, ipAddress,
activity, riskLevel, riskEventType, additionalInfo | `azure_active_directory_high_risk_sign_in_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment.
You must be ingesting Azure Active Directory events in your Splunk environment.
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment through an EventHub.
Specifically, this analytic leverages the RiskyUsers and UserRiskEvents log category.
known_false_positives: Details for the risk calculation algorithm used by Identity
Protection are unknown and may be prone to false positives.
@@ -31,7 +30,7 @@ tags:
asset_type: Azure Active Directory
confidence: 90
impact: 60
message: A high risk event was identified by Identify Protection for user $body.properties.userPrincipalName$
message: A high risk event was identified by Identify Protection for user $userPrincipalName$
mitre_attack_id:
- T1586
- T1586.003
@@ -52,13 +51,13 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.category
- body.properties.riskLevel
- body.properties.userPrincipalName
- body.properties.ipAddress
- body.properties.activity
- body.properties.riskEventType
- body.properties.additionalInfo
- category
- properties.riskLevel
- properties.userPrincipalName
- properties.ipAddress
- properties.activity
- properties.riskEventType
- properties.additionalInfo
risk_score: 54
security_domain: identity
tests:
@@ -2,7 +2,7 @@ name: Azure AD Application Administrator Role Assigned
id: eac4de87-7a56-4538-a21b-277897af6d8d
version: 1
date: '2023-04-25'
author: Mauricio Velazco, Splunk
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
status: production
type: TTP
data_source: []
@@ -12,11 +12,11 @@ description: The following analytic identifies the assignment of the Application
been granted access to a resource, such as the ability to create or update User or other objects, then a user assigned to this role could perform those actions while
impersonating the application. This ability to impersonate the applications identity may be an elevation of privilege over what the user can do via their role assignments.
Red teams and adversaries alike may abuse this role to escalate their privileges in an Azure AD tenant.
search: ' `azuread` "body.operationName"="Add member to role" "body.properties.targetResources{}.modifiedProperties{}.newValue"="\"Application Administrator\""
| rename body.properties.* as *
search: ' `azuread` "operationName"="Add member to role" "properties.targetResources{}.modifiedProperties{}.newValue"="\"Application Administrator\""
| rename properties.* as *
| rename targetResources{}.userPrincipalName as userPrincipalName
| rename initiatedBy.user.userPrincipalName as initiatedBy
| stats values(userPrincipalName) by _time, initiatedBy, result, body.operationName
| stats values(userPrincipalName) as userPrincipalName by _time, initiatedBy, result, operationName
| `azure_ad_application_administrator_role_assigned_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase(https://splunkbase.splunk.com/app/3110/#/details).
@@ -57,10 +57,10 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.properties.targetResources{}.userPrincipalName
- body.properties.targetResources{}.type
- body.properties.initiatedBy.user.userPrincipalName
- body.properties.result
- properties.targetResources{}.userPrincipalName
- properties.targetResources{}.type
- properties.initiatedBy.user.userPrincipalName
- properties.result
risk_score: 35
security_domain: endpoint
tests:
@@ -2,7 +2,7 @@ name: Azure AD Authentication Failed During MFA Challenge
id: e62c9c2e-bf51-4719-906c-3074618fcc1c
version: 1
date: '2022-07-14'
author: Mauricio Velazco, Splunk
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
status: production
type: TTP
description: 'The following analytic identifies an authentication attempt event against
@@ -11,12 +11,12 @@ description: 'The following analytic identifies an authentication attempt event
This behavior may represent an adversary trying to authenticate with compromised
credentials for an account that has multi-factor authentication enabled. '
data_source: []
search: ' `azuread` body.category=SignInLogs body.properties.status.errorCode=500121
| rename body.properties.* as * | stats values(userPrincipalName) by _time, ipAddress,
search: ' `azuread` category=SignInLogs properties.status.errorCode=500121
| rename properties.* as * | stats values(userPrincipalName) as userPrincipalName by _time, ipAddress,
status.additionalDetails, appDisplayName, userAgent | `azure_ad_authentication_failed_during_mfa_challenge_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase(https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events in your Splunk environment.
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment through an EventHub.
Specifically, this analytic leverages the SignInLogs log category.
known_false_positives: Legitimate users may miss to reply the MFA challenge within
the time window or deny it by mistake.
@@ -30,7 +30,7 @@ tags:
asset_type: Azure Active Directory
confidence: 90
impact: 60
message: User $body.properties.userPrincipalName$ failed to pass MFA challenge
message: User $userPrincipalName$ failed to pass MFA challenge
mitre_attack_id:
- T1586
- T1586.003
@@ -52,13 +52,13 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.category
- body.properties.status.errorCode
- body.properties.userPrincipalName
- body.properties.ipAddress
- body.properties.status.additionalDetails
- body.properties.appDisplayName
- body.properties.userAgent
- category
- properties.status.errorCode
- properties.userPrincipalName
- properties.ipAddress
- properties.status.additionalDetails
- properties.appDisplayName
- properties.userAgent
risk_score: 54
security_domain: identity
tests:
@@ -14,11 +14,11 @@ description: The following analytic identifies an Azure AD account with concurre
data_source: []
search: ' `azuread` properties.authenticationDetails{}.succeeded=true category=NonInteractiveUserSignInLogs
| rename properties.* as * | bucket span=5m _time | stats dc(ipAddress) AS unique_ips
values(ipAddress) values(appDisplayName) by _time, userPrincipalName | where unique_ips
values(ipAddress) as ipAddress values(appDisplayName) by _time, userPrincipalName | where unique_ips
> 1 | `azure_ad_concurrent_sessions_from_different_ips_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment.
You must be ingesting Azure Active Directory events into your Splunk environment through an EventHub.
Specifically, this analytic leverages the SignInLogs log category.
known_false_positives: A user with concurrent sessions from different Ips may also
represent the legitimate use of more than one device. Filter as needed and/or customize
@@ -13,10 +13,10 @@ description: The following analytic identifies the invitation of an external gue
2022 by security researcher Dirk-Jan during his tall `Backdooring and Hijacking
Azure AD Accounts by Abusing External Identities`
data_source: []
search: '`azuread` "body.operationName"="Invite external user" | rename body.properties.*
search: '`azuread` "operationName"="Invite external user" | rename properties.*
as * | rename targetResources{}.userPrincipalName as userPrincipalName | rename
initiatedBy.user.userPrincipalName as initiatedBy | rename targetResources{}.type
as type | stats values(userPrincipalName) by _time, type, initiatedBy, result, body.operationName
as type | stats values(userPrincipalName) as userPrincipalName by _time, type, initiatedBy, result, operationName
| `azure_ad_external_guest_user_invited_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase(https://splunkbase.splunk.com/app/3110/#/details).
@@ -53,10 +53,10 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.properties.targetResources{}.userPrincipalName
- body.properties.targetResources{}.type
- body.properties.initiatedBy.user.userPrincipalName
- body.properties.result
- properties.targetResources{}.userPrincipalName
- properties.targetResources{}.type
- properties.initiatedBy.user.userPrincipalName
- properties.result
risk_score: 45
security_domain: threat
tests:
@@ -1,6 +1,6 @@
name: Azure AD Global Administrator Role Assigned
id: 825fed20-309d-4fd1-8aaf-cd49c1bb093c
version: 2
version: 3
date: '2022-08-17'
author: Gowthamaraj Rajendran, Mauricio Velazco, Splunk
status: production
@@ -14,14 +14,15 @@ description: The following analytic identifies the assignment of the Azure AD Gl
to gain control of Azure resources. Adversaries and red teams alike may assign this
role to a compromised account to establish Persistence or escalate their privileges in an Azure AD environment.
data_source: []
search: '`azuread` "body.operationName"="Add member to role" "body.properties.targetResources{}.modifiedProperties{}.newValue"="\"Global
Administrator\"" | rename body.properties.* as * | rename targetResources{}.userPrincipalName
as userPrincipalName | rename initiatedBy.user.userPrincipalName as initiatedBy
| stats values(userPrincipalName) by _time, initiatedBy, result, body.operationName
search: '`azuread` operationName="Add member to role" properties.targetResources{}.modifiedProperties{}.newValue="\"Global Administrator\""
| rename properties.* as *
| rename targetResources{}.userPrincipalName as userPrincipalName
| rename initiatedBy.user.userPrincipalName as initiatedBy
| stats values(userPrincipalName) as userPrincipalName by _time, initiatedBy, result, operationName
| `azure_ad_global_administrator_role_assigned_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase(https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment.
You must be ingesting Azure Active Directory events into your Splunk environment through an EventHub.
Specifically, this analytic leverages the AuditLogs log category.
known_false_positives: Administrators may legitimately assign the Global Administrator
role to a user. Filter as needed.
@@ -58,10 +59,10 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.properties.targetResources{}.userPrincipalName
- body.properties.targetResources{}.type
- body.properties.initiatedBy.user.userPrincipalName
- body.properties.result
- properties.targetResources{}.userPrincipalName
- properties.targetResources{}.type
- properties.initiatedBy.user.userPrincipalName
- properties.result
risk_score: 72
security_domain: threat
tests:
@@ -15,7 +15,7 @@ search: ' `azuread` category= SignInLogs properties.status.errorCode=50126 prope
by userPrincipalName, _time | where failed_attempts > 20 | `azure_ad_high_number_of_failed_authentications_for_user_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment.
You must be ingesting Azure Active Directory events into your Splunk environment through an EventHub.
Specifically, this analytic leverages the SignInLogs log category.
known_false_positives: A user with more than 20 failed authentication attempts in
the span of 5 minutes may also be triggered by a broken application.
@@ -13,10 +13,10 @@ description: The following analytic identifies an Ip address failing to authenti
data_source: []
search: ' `azuread` category= SignInLogs properties.status.errorCode=50126 properties.authenticationDetails{}.succeeded=false
| rename properties.* as * | bucket span=5m _time | stats dc(_raw) AS failed_attempts
values(userPrincipalName) by ipAddress, _time | where failed_attempts > 20 | `azure_ad_high_number_of_failed_authentications_from_ip_filter`'
values(userPrincipalName) as userPrincipalName by ipAddress, _time | where failed_attempts > 20 | `azure_ad_high_number_of_failed_authentications_from_ip_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment.
You must be ingesting Azure Active Directory events into your Splunk environment through an EventHub.
Specifically, this analytic leverages the SignInLogs log category.
known_false_positives: An Ip address with more than 20 failed authentication attempts
in the span of 5 minutes may also be triggered by a broken application.
@@ -2,7 +2,7 @@ name: Azure AD Multi-Factor Authentication Disabled
id: 482dd42a-acfa-486b-a0bb-d6fcda27318e
version: 1
date: '2022-08-10'
author: Mauricio Velazco, Splunk
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
status: production
type: TTP
description: The following analytic identifies an attempt to disable multi-factor
@@ -11,14 +11,14 @@ description: The following analytic identifies an attempt to disable multi-facto
and maintain persistence using a valid account. This way the attackers can keep
persistance in the environment without adding new users.
data_source: []
search: '`azuread` body.category=AuditLogs body.operationName="Disable Strong Authentication"
| rename body.properties.* as * | rename targetResources{}.userPrincipalName as
search: '`azuread` category=AuditLogs operationName="Disable Strong Authentication"
| rename properties.* as * | rename targetResources{}.userPrincipalName as
userPrincipalName | rename targetResources{}.type as type | rename initiatedBy.user.userPrincipalName
as initiatedBy | stats values(userPrincipalName) by _time, type, body.operationName,
as initiatedBy | stats values(userPrincipalName) as userPrincipalName by _time, type, operationName,
initiatedBy, result | `azure_ad_multi_factor_authentication_disabled_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase(https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment.
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment through an EventHub.
Specifically, this analytic leverages the AuditLogs log category.
known_false_positives: Legitimate use case may require for users to disable MFA. Filter
as needed.
@@ -54,10 +54,10 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.properties.targetResources{}.userPrincipalName
- body.properties.targetResources{}.type
- body.properties.initiatedBy.user.userPrincipalName
- body.properties.result
- properties.targetResources{}.userPrincipalName
- properties.targetResources{}.type
- properties.initiatedBy.user.userPrincipalName
- properties.result
risk_score: 45
security_domain: identity
tests:
@@ -2,7 +2,7 @@ name: Azure AD Multiple Failed MFA Requests For User
id: 264ea131-ab1f-41b8-90e0-33ad1a1888ea
version: 1
date: '2022-08-25'
author: Mauricio Velazco, Splunk
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
status: production
type: TTP
description: The following analytic identifies multiple failed multi-factor authentication
@@ -18,13 +18,13 @@ description: The following analytic identifies multiple failed multi-factor auth
this technique to bypass multi-factor authentication controls as reported by Mandiant
and others.
data_source: []
search: ' `azuread` body.category=SignInLogs body.properties.status.errorCode=500121
| rename body.properties.* as * | bucket span=10m _time | stats dc(_raw) AS mfa_prompts
values(userPrincipalName) by userPrincipalName, status.additionalDetails, appDisplayName,
search: ' `azuread` category=SignInLogs properties.status.errorCode=500121
| rename properties.* as * | bucket span=10m _time | stats dc(_raw) AS mfa_prompts
values(ipAddress) as ipAddress by userPrincipalName, status.additionalDetails, appDisplayName,
userAgent, _time | where mfa_prompts > 10 | `azure_ad_multiple_failed_mfa_requests_for_user_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment.
You must be ingesting Azure Active Directory events into your Splunk environment through an EventHub.
Specifically, this analytic leverages the SignInLogs log category.
known_false_positives: Multiple Failed MFA requests may also be a sign of authentication
or application issues. Filter as needed.
@@ -40,7 +40,7 @@ tags:
asset_type: Azure Active Directory
confidence: 90
impact: 60
message: Multiple Failed MFA requests for user $body.properties.userPrincipalName$
message: Multiple Failed MFA requests for user $userPrincipalName$
mitre_attack_id:
- T1586
- T1586.003
@@ -62,11 +62,11 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.properties.status.errorCode
- body.category
- body.properties.authenticationDetails
- body.properties.userPrincipalName
- body.properties.ipAddress
- properties.status.errorCode
- category
- properties.authenticationDetails
- properties.userPrincipalName
- properties.ipAddress
risk_score: 54
security_domain: identity
tests:
@@ -2,7 +2,7 @@ name: Azure AD Multiple Users Failing To Authenticate From Ip
id: 94481a6a-8f59-4c86-957f-55a71e3612a6
version: 1
date: '2022-07-12'
author: Mauricio Velazco, Splunk
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
status: production
type: Anomaly
description: 'The following analytic identifies one source Ip failing to authenticate
@@ -15,13 +15,15 @@ description: 'The following analytic identifies one source Ip failing to authent
Azure AD tenants can be very different depending on the organization. Users should
test this detection and customize the arbitrary threshold if needed.'
data_source: []
search: ' `azuread` body.category= SignInLogs body.properties.status.errorCode=50126
body.properties.authenticationDetails{}.succeeded= false | rename body.properties.*
as * | bucket span=5m _time | stats dc(userPrincipalName) AS unique_accounts values(userPrincipalName)
as tried_accounts by _time, ipAddress | where unique_accounts > 30 | `azure_ad_multiple_users_failing_to_authenticate_from_ip_filter`'
search: ' `azuread` category=SignInLogs properties.status.errorCode=50126 properties.authenticationDetails{}.succeeded=false
| rename properties.* as *
| bucket span=5m _time
| stats dc(userPrincipalName) AS unique_accounts values(userPrincipalName) as userPrincipalName by _time, ipAddress
| where unique_accounts > 30
| `azure_ad_multiple_users_failing_to_authenticate_from_ip_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment.
You must be ingesting Azure Active Directory events into your Splunk environment through an EventHub.
Specifically, this analytic leverages the SignInLogs log category.
known_false_positives: A source Ip failing to authenticate with multiple users is
not a common for legitimate behavior.
@@ -36,7 +38,7 @@ tags:
asset_type: Azure Active Directory
confidence: 90
impact: 70
message: Source Ip $body.properties.ipAddress$ failed to authenticate with 30 users
message: Source Ip $ipAddress$ failed to authenticate with 30 users
within 5 minutes.
mitre_attack_id:
- T1586
@@ -59,17 +61,17 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.properties.status.errorCode
- body.category
- body.properties.authenticationDetails
- body.properties.userPrincipalName
- body.properties.ipAddress
- properties.status.errorCode
- category
- properties.authenticationDetails
- properties.userPrincipalName
- properties.ipAddress
risk_score: 63
security_domain: identity
tests:
- name: True Positive Test
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1110.003/azuread/azure-audit.log
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1110.003/password_spraying_azuread/azuread_signin.log
source: mscs:azure:eventhub
sourcetype: mscs:azure:eventhub
update_timestamp: true
@@ -2,7 +2,7 @@ name: Azure AD New Custom Domain Added
id: 30c47f45-dd6a-4720-9963-0bca6c8686ef
version: 1
date: '2022-09-02'
author: Mauricio Velazco, Splunk
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
status: production
type: TTP
description: The following analytic identifies the addition of a new custom domain
@@ -19,10 +19,10 @@ description: The following analytic identifies the addition of a new custom doma
persistence and be able to authenticate to Azure AD impersonating any user and bypassing
the requirement to have a valid password and/or perform MFA.
data_source: []
search: ' `azuread` body.operationName="Add unverified domain" "body.properties.result"=success
| rename body.properties.* as * | rename body.callerIpAddress as callerIpAddress
search: ' `azuread` operationName="Add unverified domain" "properties.result"=success
| rename properties.* as * | rename callerIpAddress as callerIpAddress
| rename initiatedBy.user.userPrincipalName as initiatedBy | rename targetResources{}.displayName
as domain | stats values(domain) by _time, initiatedBy, result, body.operationName,
as domain | stats values(domain) by _time, initiatedBy, result, operationName,
callerIpAddress | `azure_ad_new_custom_domain_added_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
@@ -58,11 +58,11 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.operationName
- body.properties.result
- body.callerIpAddress
- body.properties.targetResources{}.displayName
- body.properties.initiatedBy.user.userPrincipalName
- operationName
- properties.result
- callerIpAddress
- properties.targetResources{}.displayName
- properties.initiatedBy.user.userPrincipalName
risk_score: 54
security_domain: threat
tests:
@@ -2,7 +2,7 @@ name: Azure AD New Federated Domain Added
id: a87cd633-076d-4ab2-9047-977751a3c1a0
version: 1
date: '2022-09-02'
author: Mauricio Velazco, Splunk
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
status: production
type: TTP
description: The following analytic identifies the addition of a new federated domain
@@ -19,10 +19,10 @@ description: The following analytic identifies the addition of a new federated d
persistence and be able to authenticate to Azure AD impersonating any user and bypassing
the requirement to have a valid password and/or perform MFA.
data_source: []
search: ' `azuread` body.operationName="Set domain authentication" "body.properties.result"=success
| rename body.properties.* as * | rename body.callerIpAddress as callerIpAddress
search: ' `azuread` operationName="Set domain authentication" "properties.result"=success
| rename properties.* as * | rename callerIpAddress as callerIpAddress
| rename initiatedBy.user.userPrincipalName as initiatedBy | rename targetResources{}.displayName
as domain | stats values(domain) by _time, initiatedBy, result, body.operationName,
as domain | stats values(domain) by _time, initiatedBy, result, operationName,
callerIpAddress | `azure_ad_new_federated_domain_added_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
@@ -57,11 +57,11 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.operationName
- body.properties.result
- body.callerIpAddress
- body.properties.targetResources{}.displayName
- body.properties.initiatedBy.user.userPrincipalName
- operationName
- properties.result
- callerIpAddress
- properties.targetResources{}.displayName
- properties.initiatedBy.user.userPrincipalName
risk_score: 81
security_domain: threat
tests:
@@ -11,11 +11,11 @@ description: The following analytic identifies the registration of a new Multi F
data_source: []
search: ' `azuread` category=AuditLogs operationName="User registered security info"
properties.operationType=Add | rename properties.* as * | rename targetResources{}.*
as * | stats values(userPrincipalName) by _time, resultDescription, result, callerIpAddress
as * | stats values(userPrincipalName) as userPrincipalName by _time, resultDescription, result, callerIpAddress
| `azure_ad_new_mfa_method_registered_for_user_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment.
You must be ingesting Azure Active Directory events into your Splunk environment through an EventHub.
Specifically, this analytic leverages the AuditLogs log category.
known_false_positives: Newly onboarded users who are registering an MFA method for
the first time will also trigger this detection.
@@ -2,7 +2,7 @@ name: Azure AD Privileged Authentication Administrator Role Assigned
id: a7da845d-6fae-41cf-b823-6c0b8c55814a
version: 1
date: '2023-04-25'
author: Mauricio Velazco, Splunk
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
status: production
type: TTP
data_source: []
@@ -10,11 +10,11 @@ description: The following analytic identifies the assignment of the Privileged
methods for any user in Azure Active Directory, including privileged roles like Global Administrators. Users with this role can change credentials for people who may have access to sensitive
or private information or critical configuration inside and outside of Azure Active Directory. Changing the credentials of a user may mean the ability to assume that users identity and permissions.
Red teams and adversaries alike may abuse this role to escalate their privileges.
search: ' `azuread` "body.operationName"="Add member to role" "body.properties.targetResources{}.modifiedProperties{}.newValue"="\"Privileged Authentication Administrator\""
| rename body.properties.* as *
search: ' `azuread` "operationName"="Add member to role" "properties.targetResources{}.modifiedProperties{}.newValue"="\"Privileged Authentication Administrator\""
| rename properties.* as *
| rename targetResources{}.userPrincipalName as userPrincipalName
| rename initiatedBy.user.userPrincipalName as initiatedBy
| stats values(userPrincipalName) by _time, initiatedBy, result, body.operationName
| stats values(userPrincipalName) as userPrincipalName by _time, initiatedBy, result, operationName
| `azure_ad_privileged_authentication_administrator_role_assigned_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
@@ -51,10 +51,10 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.properties.targetResources{}.userPrincipalName
- body.properties.targetResources{}.type
- body.properties.initiatedBy.user.userPrincipalName
- body.properties.result
- properties.targetResources{}.userPrincipalName
- properties.targetResources{}.type
- properties.initiatedBy.user.userPrincipalName
- properties.result
risk_score: 50
security_domain: identity
tests:
@@ -2,7 +2,7 @@ name: Azure AD Privileged Role Assigned
id: a28f0bc3-3400-4a6e-a2da-89b9e95f0d2a
version: 1
date: '2022-08-29'
author: Mauricio Velazco, Splunk
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
status: production
type: TTP
description: The following analytic identifies the assignment of sensitive and privileged
@@ -10,14 +10,14 @@ description: The following analytic identifies the assignment of sensitive and p
may assign these roles to a compromised account to establish Persistence in an Azure
AD environment.
data_source: []
search: ' `azuread` "body.operationName"="Add member to role" | rename body.properties.* as *
search: ' `azuread` "operationName"="Add member to role" | rename properties.* as *
| rename targetResources{}.userPrincipalName as userPrincipalName
| rename initiatedBy.user.userPrincipalName as initiatedBy
| rename targetResources{}.modifiedProperties{}.newValue as roles
| eval role=mvindex(roles,1)
| lookup privileged_azure_ad_roles azureadrole AS role OUTPUT isprvilegedadrole description
| search isprvilegedadrole = True
| stats values(userPrincipalName) by _time, initiatedBy, result, body.operationName, role, description
| stats values(userPrincipalName) as userPrincipalName by _time, initiatedBy, result, operationName, role, description
| `azure_ad_privileged_role_assigned_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
@@ -58,10 +58,10 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.properties.targetResources{}.userPrincipalName
- body.properties.targetResources{}.type
- body.properties.initiatedBy.user.userPrincipalName
- body.properties.result
- properties.targetResources{}.userPrincipalName
- properties.targetResources{}.type
- properties.initiatedBy.user.userPrincipalName
- properties.result
risk_score: 63
security_domain: audit
tests:
@@ -14,14 +14,16 @@ description: The following analytic identifies the creation of a Service Princip
access may create a Service Principal to establish Persistence and obtain single-factor
access to an Azure AD environment.
data_source: []
search: '`azuread` "body.operationName"="Add service principal" "body.properties.initiatedBy.user.id"=*
| rename body.properties.* as * | rename targetResources{}.displayName as displayName
| rename initiatedBy.user.userPrincipalName as initiatedBy | rename targetResources{}.type
as type | stats values(displayName) by _time, type, initiatedBy, result, body.operationName
search: '`azuread` operationName="Add service principal" properties.initiatedBy.user.id=*
| rename properties.* as *
| rename targetResources{}.displayName as displayName
| rename initiatedBy.user.userPrincipalName as initiatedBy
| rename targetResources{}.type as type
| stats values(displayName) as displayName by _time, type, initiatedBy, result, operationName
| `azure_ad_service_principal_created_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase(https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment.
You must be ingesting Azure Active Directory events into your Splunk environment thorough an EventHub.
Specifically, this analytic leverages the AuditLogs log category.
known_false_positives: Administrator may legitimately create Service Principal. Filter
as needed.
@@ -55,10 +57,10 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.properties.targetResources{}.displayName
- body.properties.targetResources{}.type
- body.properties.initiatedBy.user.userPrincipalName
- body.properties.result
- properties.targetResources{}.displayName
- properties.targetResources{}.type
- properties.initiatedBy.user.userPrincipalName
- properties.result
risk_score: 45
security_domain: threat
tests:
@@ -2,7 +2,7 @@ name: Azure AD Service Principal New Client Credentials
id: e3adc0d3-9e4b-4b5d-b662-12cec1adff2a
version: 2
date: '2022-08-17'
author: Mauricio Velazco, Splunk
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
status: production
type: TTP
description: The following analytic identifies the addition of new credentials for Service
@@ -16,9 +16,9 @@ description: The following analytic identifies the addition of new credentials f
with privileged access, attackers may also escalate their privileges in an Azure AD environment by adding new credentials and
logging in as the service principal.
data_source: []
search: ' `azuread` body.category=AuditLogs body.operationName="Update application*Certificates
and secrets management " | rename body.* as * | rename properties.* as * | rename
targetResources{}.* as * | stats values(displayName) by _time, initiatedBy.user.userPrincipalName,
search: ' `azuread` category=AuditLogs operationName="Update application*Certificates
and secrets management " | rename * as * | rename properties.* as * | rename
targetResources{}.* as * | stats values(displayName) as displayName by _time, initiatedBy.user.userPrincipalName,
modifiedProperties{}.newValue | `azure_ad_service_principal_new_client_credentials_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
@@ -40,7 +40,7 @@ tags:
asset_type: Azure Active Directory
confidence: 50
impact: 70
message: New credentials added for Service Principal $body.properties.targetResources{}.displayName$
message: New credentials added for Service Principal $properties.targetResources{}.displayName$
mitre_attack_id:
- T1098
- T1098.001
@@ -59,11 +59,11 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.category
- body.operationName
- body.properties.initiatedBy.user.userPrincipalName
- body.properties.targetResources{}.displayName
- body.properties.targetResources{}.modifiedProperties{}.newValue
- category
- operationName
- properties.initiatedBy.user.userPrincipalName
- properties.targetResources{}.displayName
- properties.targetResources{}.modifiedProperties{}.newValue
risk_score: 35
security_domain: threat
tests:
@@ -2,7 +2,7 @@ name: Azure AD Service Principal Owner Added
id: 7ddf2084-6cf3-4a44-be83-474f7b73c701
version: 2
date: '2022-08-30'
author: Mauricio Velazco, Splunk
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
status: production
type: TTP
description: The following analytic identifies the addition of a new owner for a Service
@@ -15,15 +15,18 @@ description: The following analytic identifies the addition of a new owner for a
and obtain single-factor access to an Azure AD environment. Attackers who are looking to
escalate their privileges by leveraging a Service Principals permissions may also add a new owner.
data_source: []
search: ' `azuread` body.operationName="Add owner to application" | rename body.properties.*
as * | rename initiatedBy.user.userPrincipalName as initiatedBy | rename targetResources{}.userPrincipalName
as newOwner | rename targetResources{}.modifiedProperties{}.newValue as displayName
| eval displayName = mvindex(displayName,1) | where initiatedBy!=newOwner | stats
values(displayName) by _time, initiatedBy, result, body.operationName, newOwner
search: ' `azuread` operationName="Add owner to application"
| rename properties.* as *
| rename initiatedBy.user.userPrincipalName as initiatedBy
| rename targetResources{}.userPrincipalName as newOwner
| rename targetResources{}.modifiedProperties{}.newValue as displayName
| eval displayName = mvindex(displayName,1)
| where initiatedBy!=newOwner
| stats values(displayName) as displayName by _time, initiatedBy, result, operationName, newOwner
| `azure_ad_service_principal_owner_added_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase(https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment.
You must be ingesting Azure Active Directory events into your Splunk environment through an EventHub.
Specifically, this analytic leverages the AuditLogs log category.
known_false_positives: Administrator may legitimately add new owners for Service Principals.
Filter as needed.
@@ -54,11 +57,11 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.operationName
- body.properties.initiatedBy.user.userPrincipalName
- body.properties.targetResources{}.userPrincipalName
- body.properties.targetResources{}.modifiedProperties{}.newValue
- body.propertiesresult
- operationName
- properties.initiatedBy.user.userPrincipalName
- properties.targetResources{}.userPrincipalName
- properties.targetResources{}.modifiedProperties{}.newValue
- properties.result
risk_score: 54
security_domain: audit
tests:
@@ -14,11 +14,11 @@ description: The following analytic identifies an Azure AD account successfully
data_source: []
search: ' `azuread` properties.authenticationDetails{}.succeeded=true category=SignInLogs
| rename properties.* as * | bucket span=5m _time | stats dc(ipAddress) AS unique_ips
values(ipAddress) values(appDisplayName) by _time, userPrincipalName | where unique_ips
values(ipAddress) as ipAddress values(appDisplayName) by _time, userPrincipalName | where unique_ips
> 1 | `azure_ad_successful_authentication_from_different_ips_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment.
You must be ingesting Azure Active Directory events into your Splunk environment through an EventHub.
Specifically, this analytic leverages the SignInLogs log category.
known_false_positives: A user with successful authentication events from different
Ips may also represent the legitimate use of more than one device. Filter as needed
@@ -2,7 +2,7 @@ name: Azure AD Successful PowerShell Authentication
id: 62f10052-d7b3-4e48-b57b-56f8e3ac7ceb
version: 1
date: '2022-07-13'
author: Mauricio Velazco, Splunk
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
status: production
type: TTP
description: The following analytic identifies a successful authentication event against
@@ -11,13 +11,13 @@ description: The following analytic identifies a successful authentication event
and red teams alike will perform enumeration and discovery techniques. One method
of executing these techniques is leveraging the native PowerShell modules.
data_source: []
search: ' `azuread` body.category=SignInLogs body.properties.authenticationDetails{}.succeeded=true
body.properties.appDisplayName="Azure Active Directory PowerShell" | rename body.properties.*
as * | stats values(userPrincipalName) by _time, ipAddress, appDisplayName, userAgent
search: ' `azuread` category=SignInLogs properties.authenticationDetails{}.succeeded=true
properties.appDisplayName="Microsoft Azure PowerShell" | rename properties.*
as * | stats values(userPrincipalName) as userPrincipalName by _time, ipAddress, appDisplayName, userAgent
| `azure_ad_successful_powershell_authentication_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase(https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events in your Splunk environment.
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment through an EventHub.
Specifically, this analytic leverages the SignInLogs log category.
known_false_positives: Administrative users will likely use PowerShell commandlets
to troubleshoot and maintain the environment. Filter as needed.
@@ -32,7 +32,7 @@ tags:
asset_type: Azure Active Directory
confidence: 90
impact: 60
message: Successful authentication for user $body.properties.userPrincipalName$
message: Successful authentication for user $userPrincipalName$
using PowerShell.
mitre_attack_id:
- T1586
@@ -54,12 +54,12 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.properties.appDisplayName
- body.category
- body.properties.userPrincipalName
- body.properties.ipAddress
- body.properties.appDisplayName
- body.properties.userAgent
- properties.appDisplayName
- category
- properties.userPrincipalName
- properties.ipAddress
- properties.appDisplayName
- properties.userAgent
risk_score: 54
security_domain: identity
tests:
@@ -2,7 +2,7 @@ name: Azure AD Successful Single-Factor Authentication
id: a560e7f6-1711-4353-885b-40be53101fcd
version: 1
date: '2022-07-12'
author: Mauricio Velazco, Splunk
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
status: production
type: TTP
description: The following analytic identifies a successful authentication event against
@@ -10,13 +10,13 @@ description: The following analytic identifies a successful authentication event
This could be evidence of a missconfiguration, a policy violation or an account
take over attempt that should be investigated
data_source: []
search: ' `azuread` body.category=SignInLogs body.properties.authenticationRequirement=singleFactorAuthentication
body.properties.authenticationDetails{}.succeeded=true | rename body.properties.*
as * | stats values(userPrincipalName) by _time, ipAddress, appDisplayName, authenticationRequirement
search: ' `azuread` category=SignInLogs properties.authenticationRequirement=singleFactorAuthentication
properties.authenticationDetails{}.succeeded=true | rename properties.*
as * | stats values(userPrincipalName) as userPrincipalName by _time, ipAddress, appDisplayName, authenticationRequirement
| `azure_ad_successful_single_factor_authentication_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase(https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events in your Splunk environment.
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment through an EventHub.
Specifically, this analytic leverages the SignInLogs log category.
known_false_positives: Although not recommended, certain users may be required without
multi-factor authentication. Filter as needed
@@ -30,7 +30,7 @@ tags:
asset_type: Azure Active Directory
confidence: 90
impact: 50
message: Successful authentication for user $body.properties.userPrincipalName$
message: Successful authentication for user $userPrincipalName$
without MFA
mitre_attack_id:
- T1586
@@ -52,12 +52,12 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.category
- body.properties.authenticationRequirement
- body.properties.authenticationDetails
- body.properties.userPrincipalName
- body.properties.ipAddress
- body.properties.appDisplayName
- category
- properties.authenticationRequirement
- properties.authenticationDetails
- properties.userPrincipalName
- properties.ipAddress
- properties.appDisplayName
risk_score: 45
security_domain: identity
tests:
@@ -1,8 +1,8 @@
name: Azure AD Unusual Number of Failed Authentications From Ip
id: 3d8d3a36-93b8-42d7-8d91-c5f24cec223d
version: 1
version: 2
date: '2022-07-11'
author: Mauricio Velazco, Splunk
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
status: production
type: Anomaly
description: 'The following analytic identifies one source Ip failing to authenticate
@@ -21,16 +21,18 @@ description: 'The following analytic identifies one source Ip failing to authent
coverage. A similar analytic following the threshold model is `Azure AD Multiple
Users Failing To Authenticate From Ip`.'
data_source: []
search: ' `azuread` body.category=SignInLogs body.properties.status.errorCode=50126
body.properties.authenticationDetails{}.succeeded= false | rename body.properties.*
as * | bucket span=5m _time | stats dc(userPrincipalName) AS unique_accounts values(userPrincipalName)
as tried_accounts by _time, ipAddress | eventstats avg(unique_accounts) as ip_avg
, stdev(unique_accounts) as ip_std by ipAddress | eval upperBound=(ip_avg+ip_std*3)
| eval isOutlier=if(unique_accounts > 10 and unique_accounts >= upperBound, 1,
0) | where isOutlier = 1 | `azure_ad_unusual_number_of_failed_authentications_from_ip_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase(https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events in your Splunk environment.
search: ' `azuread` category=SignInLogs properties.status.errorCode=50126 properties.authenticationDetails{}.succeeded=false
| rename properties.* as *
| bucket span=5m _time
| stats dc(userPrincipalName) AS unique_accounts values(userPrincipalName) as userPrincipalName by _time, ipAddress
| eventstats avg(unique_accounts) as ip_avg, stdev(unique_accounts) as ip_std by ipAddress
| eval upperBound=(ip_avg+ip_std*3)
| eval isOutlier=if(unique_accounts > 10 and unique_accounts >= upperBound, 1,0)
| where isOutlier = 1
| `azure_ad_unusual_number_of_failed_authentications_from_ip_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment through an EventHub.
Specifically, this analytic leverages the SignInLogs log category.
known_false_positives: A source Ip failing to authenticate with multiple users is
not a common for legitimate behavior.
@@ -45,7 +47,7 @@ tags:
asset_type: Azure Active Directory
confidence: 90
impact: 60
message: Possible Password Spraying attack against Azure AD from source ip $body.properties.ipAddress$
message: Possible Password Spraying attack against Azure AD from source ip $ipAddress$
mitre_attack_id:
- T1586
- T1586.003
@@ -67,17 +69,17 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.properties.status.errorCode
- body.category
- body.properties.authenticationDetails
- body.properties.userPrincipalName
- body.properties.ipAddress
- properties.status.errorCode
- category
- properties.authenticationDetails
- properties.userPrincipalName
- properties.ipAddress
risk_score: 54
security_domain: access
tests:
- name: True Positive Test
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1110.003/azuread/azure-audit.log
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1110.003/password_spraying_azuread/azuread_signin.log
source: mscs:azure:eventhub
sourcetype: mscs:azure:eventhub
update_timestamp: true
@@ -2,7 +2,7 @@ name: Azure AD User Enabled And Password Reset
id: 1347b9e8-2daa-4a6f-be73-b421d3d9e268
version: 1
date: '2022-08-29'
author: Mauricio Velazco, Splunk
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
status: production
type: TTP
description: The following analytic identifies an Azure AD user enabling a previously
@@ -10,12 +10,12 @@ description: The following analytic identifies an Azure AD user enabling a previ
represent an adversary who has obtained administrative access and is trying to establish
a backdoor identity within an Azure AD tenant.
data_source: []
search: ' `azuread` (body.operationName="Enable account" OR body.operationName="Reset
password (by admin)" OR body.operationName="Update user") | transaction body.properties.targetResources{}.userPrincipalName
startsWith=(body.operationName="Enable account") endsWith=(body.operationName="Reset
password (by admin)") maxspan=2m | rename body.properties.* as * | rename targetResources{}.userPrincipalName
search: ' `azuread` (operationName="Enable account" OR operationName="Reset password (by admin)"
OR operationName="Update user") | transaction properties.targetResources{}.userPrincipalName
startsWith=(operationName="Enable account") endsWith=(operationName="Reset password (by admin)") maxspan=2m
| rename properties.* as * | rename targetResources{}.userPrincipalName
as userPrincipalName | rename initiatedBy.user.userPrincipalName as initiatedBy
| stats values(body.operationName) values(initiatedBy) by _time, userPrincipalName,
| stats values(operationName) values(initiatedBy) as initiatedBy by _time, userPrincipalName,
result | `azure_ad_user_enabled_and_password_reset_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase(https://splunkbase.splunk.com/app/3110/#/details).
@@ -31,12 +31,12 @@ tags:
asset_type: Azure Active Directory
confidence: 90
impact: 50
message: A user account, $displayName$, was enabled and its password reset within
message: A user account, $userPrincipalName$, was enabled and its password reset within
2 minutes by $initiatedBy$
mitre_attack_id:
- T1098
observable:
- name: displayName
- name: userPrincipalName
type: Other
role:
- Victim
@@ -50,10 +50,10 @@ tags:
- Splunk Cloud
required_fields:
- _time
- body.operationName
- body.properties.targetResources{}.userPrincipalName
- body.properties.initiatedBy.user.userPrincipalName
- body.properties.result
- operationName
- properties.targetResources{}.userPrincipalName
- properties.initiatedBy.user.userPrincipalName
- properties.result
risk_score: 45
security_domain: identity
tests:
@@ -2,7 +2,7 @@ name: Azure AD User ImmutableId Attribute Updated
id: 0c0badad-4536-4a84-a561-5ff760f3c00e
version: 1
date: '2022-09-02'
author: Mauricio Velazco, Splunk
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
status: production
type: TTP
description: The following analytic identifies the modification of the SourceAnchor
@@ -20,12 +20,12 @@ description: The following analytic identifies the modification of the SourceAnc
to Azure AD impersonating any user and bypassing the requirement to have a valid
password and/or perform MFA.
data_source: []
search: ' `azuread` body.operationName="Update user" body.properties.targetResources{}.modifiedProperties{}.displayName=SourceAnchor
| rename body.properties.* as * | rename targetResources{}.userPrincipalName as
search: ' `azuread` operationName="Update user" properties.targetResources{}.modifiedProperties{}.displayName=SourceAnchor
| rename properties.* as * | rename targetResources{}.userPrincipalName as
userPrincipalName | rename initiatedBy.user.userPrincipalName as initiatedBy | rename
body.callerIpAddress as callerIpAddress | rename targetResources{}.modifiedProperties{}.newValue
as modifiedProperties | stats values(userPrincipalName) values(modifiedProperties)
by _time, initiatedBy, callerIpAddress, result, body.operationName | `azure_ad_user_immutableid_attribute_updated_filter`'
callerIpAddress as callerIpAddress | rename targetResources{}.modifiedProperties{}.newValue
as modifiedProperties | stats values(userPrincipalName) as userPrincipalName values(modifiedProperties)
by _time, initiatedBy, callerIpAddress, result, operationName | `azure_ad_user_immutableid_attribute_updated_filter`'
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
Cloud Services from Splunkbase(https://splunkbase.splunk.com/app/3110/#/details).
You must be ingesting Azure Active Directory events into your Splunk environment.